OSZ Handel I
Informatik

Karel D. Robot
FAQ - Frequently asked questions

S. Spolwig

[Delphi | OOP]
Startseite

 
Sie haben eine Frage zu
 
Units / Dateien - Wie kann ich eine andere Unit hinzufügen (z.B. ein anderes uTrainingscamp.pas)?
  - Wie kann ich eine Unit sichern (Backup) ?
   
Karels Tempo - Wie kann ich die Robots schneller machen?
   
ControlFrm - Warum darf die procedure ItemsErzeugen nicht gelöscht werden?
ProtBoxFrm - Was zeigt die Memobox KDR.Actions?
   
Fehlermeldungen / - Warum stürzt das Programm manchmal ab, wenn ich auf einen Button klicke?
Abstürze - Wie kann ich ein abgestürztes Programm wieder in Gang setzen?
  - Was bedeutet Quelldatei nicht gefunden?
  - ERangeError
  - EExternalException
   
Bildschirm - Wie kann ich die Zeilen-/Spaltenfonts besser anpassen?

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
 


©  05. April 2006    Siegfried Spolwig

page_top