Einzelnen Beitrag anzeigen

thomaskroger

Registriert seit: 22. Mär 2009
16 Beiträge
 
#3

AW: Delphi XE6 ComboBox im Frame wirft Exception bei Items

  Alt 12. Feb 2021, 17:08
Danke für den Tipp !

Was ich unterschlagen hatte, waren die folgenden Zeilen nach create:
Delphi-Quellcode:
ProtokollFrame := TblaFrame.create(Self);
...
ProtokollFrame.Load; //irgend eine Fkt in blaFrame in der die ComboBox angesprochen wird.
ProtokollFrame.Parent := PanelStandard; //TPanel
Da create(Self) vor ..Parent:=PanelStandard kommt, wäre es eine Erklärung für "Element 'blaFrame' hat kein übergeordnetes Fenster"
da wegen der ComboBox sowieso eine Exception passiert.

Der Ursprung der Exception ist jedoch die ComboBox mit einem Item, und hier passiert es schon bei create.
Wie der Debugger im CPU-Fenster zeigt, springt er hier auf 004CB08C
Code:
004CB08C 55               push ebp
004CB08D E81AFDFFFF      call HandleException
004CB092 59               pop ecx
004CB093 E89CE9F3FF      call @DoneExcept
004CB098 33C0             xor eax,eax
004CB09A 5A              pop edx
004CB09B 59               pop ecx
004CB09C 59               pop ecx
004CB09D 648910           mov fs:[eax],edx
was jedoch kein gültiger Maschinenbefehl zu sein scheint:004CB087 008CB04C0055E8:

Code:
004CB06C E893E7FFFF      call TReader.PropertyError
004CB071 33C0             xor eax,eax
004CB073 5A              pop edx
004CB074 59               pop ecx
004CB075 59               pop ecx
004CB076 648910           mov fs:[eax],edx
004CB079 EB1D            jmp $004cb098
004CB07B E9C4E5F3FF      jmp @HandleOnException
004CB080 0100             add [eax],eax
004CB082 0000             add [eax],al
004CB084 C0DD41           rcr ch,$41
004CB087 008CB04C0055E8   add [eax+esi*4-$17aaffb4],cl
004CB08E 1AFD            sbb bh,ch
004CB090 FFFF            db $ff $ff
004CB092 59               pop ecx
004CB093 E89CE9F3FF      call @DoneExcept
004CB098 33C0             xor eax,eax

Übrigens, gibt es keine Probleme, wenn alternativ statt der ComboBox eine RadioGroup verwendet wird.

Geändert von thomaskroger (12. Feb 2021 um 17:23 Uhr)
  Mit Zitat antworten Zitat