Neues Form öffnen in WINCE-Programm fehlerhaft

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Poelser
Beiträge: 55
Registriert: Do 6. Nov 2008, 14:16
OS, Lazarus, FPC: Windows Vista (L 1.0.6 FPC 2.6.0)
CPU-Target: Intel 32 Bit/Arm

Neues Form öffnen in WINCE-Programm fehlerhaft

Beitrag von Poelser »

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 ich 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. :D

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:

Code: Alles auswählen

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. :cry:

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. :x

Für Win32/i386 compiliert läuft auf dem PC einwandfrei!

Irgendwelche Ideen, Anregungen, kann das jemand reproduzieren?

CU, Eddi

Poelser
Beiträge: 55
Registriert: Do 6. Nov 2008, 14:16
OS, Lazarus, FPC: Windows Vista (L 1.0.6 FPC 2.6.0)
CPU-Target: Intel 32 Bit/Arm

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

Beitrag von Poelser »

Moin,

ich bin nun schon einen wesentlichen Schritt weiter. Verantwortlich scheint tatsächlich TEdit zu sein. Nehme ich diese Komponenten vom Formular runter und kommentiere den entsprechenden Code aus, dann sind die Probleme weg.

Ich habe habe nun statt der TEdits einfach TMemos draufgepappt und im OnKeyPress alles rausgefiltert, was eine neue Zeile erzeugen würde. Der User merkt den Unterschied natürlich nicht, und nun gibt's auch keine Schutzverletzungen mehr! :mrgreen:

Also, TEdit für WINCE ist wohl leider noch buggy... :(

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

Beitrag von monta »

TEdit sollte an sich problemlos funktionieren...ist ja auch fast eine der wichtigsten Komponenten.

Es wäre auf jeden Fall interessant, warum das ganze nicht funktioniert.
Was hast du denn mit dem TEdit noch gemacht, was jetzt weggefallen ist?
Johannes

Poelser
Beiträge: 55
Registriert: Do 6. Nov 2008, 14:16
OS, Lazarus, FPC: Windows Vista (L 1.0.6 FPC 2.6.0)
CPU-Target: Intel 32 Bit/Arm

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

Beitrag von Poelser »

monta hat geschrieben:TEdit sollte an sich problemlos funktionieren...ist ja auch fast eine der wichtigsten Komponenten.

Es wäre auf jeden Fall interessant, warum das ganze nicht funktioniert.
Was hast du denn mit dem TEdit noch gemacht, was jetzt weggefallen ist?
Ich habe lediglich myEdit.Text:=EinString gesetzt. Aber auch ohne jeden Code, also nur die simple Anwesenheit eines TEdit auf dem Formular, gab es diese sporadischen Abstürze. Die ganzen Zuweisungen, die vorher an ein TEdit gingen, funktionieren auch mit einem TMemo.

Ich habe mal testweise auf ein anderes Formular (1 TLabel, 1 TListbox) ein TEdit gepappt. Dieses Form funktionierte vorher einwandfrei, jetzt zickt es rum :roll:
Zuletzt geändert von Poelser am Do 13. Nov 2008, 14:13, insgesamt 1-mal geändert.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

Beitrag von Christian »

TEdit oder TDBEdit ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Poelser
Beiträge: 55
Registriert: Do 6. Nov 2008, 14:16
OS, Lazarus, FPC: Windows Vista (L 1.0.6 FPC 2.6.0)
CPU-Target: Intel 32 Bit/Arm

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

Beitrag von Poelser »

Christian hat geschrieben:TEdit oder TDBEdit ?
Nur TEdit draufsteht, ist auch TEdit drin 8)

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

Beitrag von Christian »

Sry hab nur nachgefragt weil du im ersten Post erwähntest das du sqlite benutzt konnt ja nicht ahnen das du dann ein TEdit verwendest
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten