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 008CB04C00
55E8:
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.