AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen FreePascal Neues Form öffnen in WINCE-Programm fehlerhaft
Thema durchsuchen
Ansicht
Themen-Optionen

Neues Form öffnen in WINCE-Programm fehlerhaft

Ein Thema von Poelser · begonnen am 6. Nov 2008 · letzter Beitrag vom 13. Nov 2008
Antwort Antwort
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#1

Neues Form öffnen in WINCE-Programm fehlerhaft

  Alt 6. Nov 2008, 10:51
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
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

  Alt 6. Nov 2008, 20:50
Warum übergibst du als Owner nil und nicht die Mainform? Oder gibt es keine?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

  Alt 6. Nov 2008, 21:31
Hi,
Zitat von inherited:
Warum übergibst du als Owner nil und nicht die Mainform? Oder gibt es keine?
Könnte ich mal ausprobieren, glaube aber nicht, dass das einen Einfluss hat.

Ich bin bei der Fehlersuche auch schon einen (kleinen) Schritt weiter: Der Start der Applikation auf einem echten Gerät (hatte bisher immer den Emulator von MS benutzt) scheitert mit 0.9.27er Snapshot mit der Meldung "Bus error or misaligned data access". Die 0.9.26er hat dieses Problem nicht, da ist ja das Form-Problem. Und hier gibt es auf dem echten Gerät entweder eine Schutzverletzung - oder eben den Fehler im Alignment!

CU, Eddi

[edit] Hab's getestet, hat keinen Einfluss [/edit]
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

  Alt 6. Nov 2008, 21:41
http://wiki.lazarus.freepascal.org/W...data_access.3F
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

  Alt 7. Nov 2008, 08:17
Zitat von inherited:
http://wiki.lazarus.freepascal.org/Windows_CE_Development_Notes#What_is_misaligned_da ta_access.3F
Danke, kannte ich schon. Hilft mir leider nicht, weil ich für's FormCreate keinen OnCreate-Handler benutze. Daher kommt kein eigener Code in Frage.

Es könnte höchstens noch an den aufgepappten Komponenten liegen, aber ein Zusammenhang mit 5 TEdit und 5 TLabel? Ich habe noch eine zweite Form, die hat 1 TLabel, 1 TComboBox und 1 TMemo. Die rauscht vergleichsweise fast nie ab!

CU, Eddi
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

  Alt 13. Nov 2008, 09:51
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

Also, TEdit für WINCE ist wohl leider noch buggy
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

  Alt 13. Nov 2008, 12:43
Sicher, dass es an den TEdits liegt? Hast du irgendwlechen Code, die die Edits betreffen?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Neues Form öffnen in WINCE-Programm fehlerhaft

  Alt 13. Nov 2008, 13:45
Zitat von inherited:
Sicher, dass es an den TEdits liegt? Hast du irgendwlechen Code, die die Edits betreffen?
Ziemlich sicher. Nehme ich die TEdits vom Formular herunter und kommentiere den betreffenden Code aus, ist die Anwendung stabil.

In einem anderen Testfall hatte ich ein Formular mit je 1 TLabel und TListbox. Das war stabil, bis ich einfach mal ein TEdit auf's Form gepappt hatte. TEdit wieder beseitigt, und schon kann man das Form wieder etliche Male öffnen/schließen ohne Schutzverletzung.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz