Moin zusammen,
zuerst einmal die grobe Konfiguation:
Client-Server-
DB auf dem Desktop mit ZEOS 6.6.3 benutzt als
DB-System Sybase ASA9. Diese Applikation ist mit D7 geschrieben. Nun haben wir eine uraltes WINCE-Programm, welches dateibasiert Daten austauscht. dieses will komplett neu schreiben. Ich mache das mit Lazarus und SQLite. Die
DB-Komponenten (TSQLite3Connection etc.) sind nur in einem Datenmodul, nicht auf Formularen. Das Erzeugen einer SQLite-
DB auf dem PC und rüberschieben auf den PDA funktioniert auch tadellos, die
DB kann auch auf dem PDA benutzt werden.
Doch jetzt kommen die Probleme auf dem PDA:
Das Erzeugen und Öffnen von weiteren Formularen führt manchmal(!) zu seltsamen Fehlermeldungen.
So sieht der Aufruf eines Formulares (Lazarus, nicht Delphi!) aus:
Delphi-Quellcode:
FormPatBemerkung:=TFormPatBemerkung.Create(nil);
try
FormPatBemerkung.patid:=StrToInt(SG.Cells[0, aRow]);
FormPatBemerkung.Caption := SG.Cells[SpalteName, aRow];
Ergebnis:=FormPatBemerkung.ShowModal;
if Ergebnis=mrOK then
begin
SG.Cells[SpalteName+3, aRow]:=FormPatBemerkung.Speichern;
end;
finally
FreeAndNil(FormPatBemerkung);
end;
Jetzt kann dieses Formular mehrfach geöffnet und geschlossen werden, dann gibt es irgendwann plötzlich beim Öffnen eine
Access Violation, manchmal auch eine Meldung "Window Title cannot be set" oder so ähnlich. Das kann man dann wegklicken, und ein neuer Versuch funktioniert wieder. Oder aber das Programm verabschiedet sich sang- und klanglos. Ein ShowMessage hinter dem TFormPatBemerkung.Create zeigt, dass eben dieses Create den Fehler produziert. Wenn es knallt, dann bevor die Testmeldung angezeigt wird.
Ich habe schon experimentiert mit allen möglichen Fenstereinstellungen (bsDialog etc.). Ich benutze Lazarus 0.9.26, habe aber auch schon den Snapshot 0.9.27 vom 04.10.2008 probiert - dieselben Probleme. Lazarus 0.9.27 vom 04.11.2008 führte leider dazu, dass der Programmstart auf dem PDA mit einer Fehlermeldung abgebrochen wird.
[edit] Für
Win32/i386 compiliert läuft auf dem PC einwandfrei! [/edit]
Irgendwelche Ideen, Anregungen, kann das jemand reproduzieren?
CU, Eddi