Sie haben eine Frage zu
Units / Dateien
-
Wie kann ich eine andere Unit (z.B. uTrainigscamp.pas)
hinzufügen?
(Die hier beschriebenen Methoden
gelten nur für Fachklassendateien! Delphi-Formulare lassen sich so nicht hin-
und herkopieren, weil das System dann nicht mehr korrekt arbeitet.)
Ihr Lehrer hat Ihnen eine andere Welt mit einer neuen
Aufgabenstellung zugeschickt. Die Datei sollte den Namen einer
der vorgegebenen Welt haben, weil sie dann aus dem Karel-Menü aufgerufen
werden kann.
Lösung:
Andere Unit hinzufügen |
|
1. Unit
einkopieren |
Unter Windows die
Datei uTrainigscamp.pas in das
Hauptverzeichnis von DelphiKarel kopieren. |
2. Delphi starten |
Datei-Projekt öffnen ... DelphiKarel.dpr |
3. Neue Unit
registrieren |
Projekt-Dem Projekt hinzufügen ... uTrainigscamp.pas |
4. Projekt neu
compilieren,
|
Projekt-DelphiKarel compilieren
(weil Delphi sonst intern die alte Version
verwendet) |

-
Wie kann ich eine Unit sichern?
Sie haben z. B. einen eigenen Roboter entwickelt (z. B. uMyRobot.pas,
der im Hauptverzeichnis steht) und möchten für die aktuelle Version ein
Backup anlegen.
Je nach Voreinstellung legt Delphi zwar ein temporäres Backup für die
Projektdateien an, was aber bei jeder Änderung sofort überschrieben
wird. Deshalb sollten Sie nach jeder größeren Änderung ein eigenes
Backup mit einer Versionsnummer speichern.
Lösung:
Unit sichern
(aus Delphi) |
|
1. Unit öffnen |
Datei-Öffnen
... uMyRobot.pas |
2. Unit speichern
in Backup-
Ordner |
Datei-Speichern unter ... Backup\uMyRobot_2.pas
(Namen ändern mit Versionsnummer)
Delphi registriert sofort die neue Datei mit dem neuen Namen im
Projekt. Deshalb: |
3. Backup aus der
Registrierung nehmen |
Projekt-Aus dem Projekt entfernen ...' uMyRobot_2.pas |
4. Original-Unit
aus dem
Hauptverzeichnis wieder
einbinden |
Projekt-Dem Projekt hinzufügen ...' uMyRobot.pas |
Ein bißchen umständlich zwar, aber sicherer als aus Windows mit
kopieren, umbenennen usw.
Karels Tempo
-
Wie kann ich die Robots schneller machen?
Die Darstellungsgeschwindigkeit hängt einerseits von uGrafik und dem
darin implementierten Modell und zweitens von der
Prozessorgeschwindigkeit ab.
Setzen Sie zunächst die Geschwindigkeit des Objekts herauf mit z. B.
RD1.SetGeschwindigkeit(8);
(max. 10). Wenn das nicht reicht und Sie einen langsamen Rechner haben,
hilft nur noch eine Anpassung im Modul uZeit.pas ==>
Programmiertips
ControlFrm
-
Warum darf die procedure ItemsErzeugen nicht gelöscht werden?
Für das Anzeigen aller Items und der kompletten Welt ist die Unit
uFensterFrm verantwortlich, die sie normalerweise nie sehen. Diese Unit
braucht die procedure ItemsErzeugen für die Anzeige der Welt und
von neuen Objekten, die noch nicht da waren.
ProtBoxFrm
- Was zeigt die Memobox KDR.Actions?
Der erste Eintrag erfolgt, wenn Karel die erste Aktion (Vor oder
Rechtsdrehen) ausgeführt hat.
 |
Action war 'Vor'
--> danach steht Karel auf B 3 |
Die
Startposition wird nicht aufgezeichnet.
Fehlermeldungen / Abstürze
- Warum stürzt das Programm manchmal ab, wenn ich auf einen Button
klicke?
a) Der Standard-Anfänger-Fehler.

Sie haben wahrscheinlich im Button ein neues Objekt angesprochen, was
Sie noch nicht mit 'Create' erzeugt haben.
b) Das kommt auch dann vor, wenn Sie einen Roboter aus der
Welt herauslaufen lassen. Es ist dann aus dem Speicher entfernt und
jeder Versuch, ein nicht existierendes Exemplar anzusprechen, führt den
Compiler zum Stillstand, weil er nicht weiß, was er in dieser Situation
zu tun hat.
(Es ist pure Bosheit, daß diese Exception nicht abgefangen wird, aber
nur um Sie immer wieder daran zu erinnern, daß ein Objekt zuerst mit
Create erzeugt werden muß, bevor man es ansprechen kann..)
c) Sie haben einem Item eine Position gegeben, die OFFLIMITS ist;
d. h. außerhalb von A..N oder 1..12. liegt. --> s.
ERangeError
- Wie kann ich ein abgestürztes Programm wieder in Gang setzen?
Lösung: Klicken Sie zunächst die Fehlermeldung mit OK weg und dann
im
DELPHI-Menü-Start-Programm zurücksetzen

- Was bedeutet diese Fehlermeldung?

Völlig harmlos! - Der Compiler ist in eine Situation gekommen, die er
aufgrund einer unerlaubten Anweisung nicht lösen kann. Deshalb sucht er
nach Code in den Units, die im lib-Verzeichnis stehen. Der Fehler liegt
aber dort nicht.
Lösung: Abbrechen klicken.
- Was bedeutet diese Fehlermeldung? - ERangeError

Völlig harmlos! - Sie haben einem Item eine Position gegeben, die OFFLIMITS ist;
d. h. außerhalb von A..N oder 1..12. liegt.
Lösung: OK klicken und die Bewegung des Roboter oder Lage des (neuen)
Items prüfen.
- Was bedeutet diese Fehlermeldung? - EExternalException

Völlig harmlos! - Sie haben wahrscheinlich nur den Roboter aus der
Welt bewegt (OffLimits) s. oben. Das Objekt existiert nicht (mehr) im
Speicher! Ein typischer Anfängerfehler.
Lösung: OK klicken und den Weg des Roboters prüfen; bzw. nachsehen,
ob das Item mit Create erzeugt wurde.
- Wie kann ich die Zeilen-/Spaltenfonts besser
anpassen?
FensterFrm öffnen
ZeilenLbl aktivieren
Im Objektinspektor-Font anklicken
Anderen Font ausprobieren
das Gleiche für SpaltenLbl
Dateien des Karel D. Robot Projekts ==>
install.htm
Installation ==> install.htm
|