Zitat:
Wenn der Button über den FormDesigner erstellt und aus der
DFM geladen wurde, dann ist sein Owner "immer" die Form.
Nein es gibt keinen FormDesigner
NonVcl.
Deshalb auch meine Frage im vorherigen Beitrag.
Zitat:
Ist es möglich das es daran liegt das meine Anwendung
Nonvcl ist?
Also keine Componenten in herkömmlichen Style verwendet werden?
Delphi-Quellcode:
function TClsProgBar.AddButton(var oButton: TClsButtonInfo): Bool;
begin
if ButtonExists(oButton.Num) then
RemoveButton(oButton.Num);
FColButtons.Add(oButton);
FColButtons.Insert(oButton.Num, oButton);
Result := True;
end;
Die Button werden in die TObjectList FColButtons gespeichert.
Warum sollte dann hier kein Button existieren.. oder hab ich da nen DenkFehler?
Zitat:
Denn der Code für die For-Schleife befindet sich nicht nur am Anfang der Schleife, sondern auch teilweise danach.
er springt nicht mal in die Bedingung wohlbemerk nach der änderung mit den begin..
if oButton is TClsButtonInfo then
er tickt zweimal die "for oButton" an und springt dann raus.
function Button(Btn: Integer): TClsButtonInfo;
Zitat:
Dann ist halt kein Button der Klasse TClsButtonInfo in der Komponentenliste.
Das ist meine vermutung da
Nonvcl.
Ich glaube das muss ich anders händeln..
So werden die Button erstellt.
Delphi-Quellcode:
procedure TClsControls.AddButton(hMain: HWND; Index: Integer);
begin
btnButtons[Index] := CTRL_PushButtonCreate(hMain, (SKAERO_FOLDER + 'BTN_Push.png'),
' ', 11, 25, 40, 40, ID_BTN_BUTTON + Index, SKAERO_BTNTEXTCOLOR, 1, 5);
SKAERO_SetAnchorMode(btnButtons[Index].Handle, ANCHOR_BOTTOM_RIGHT);
SKAERO_SetZorder(btnButtons[Index].Handle, HWND_TOP);
ShowWindow(btnButtons[Index].Handle, SW_HIDE);
FButtonHandle := btnButtons[Index].Handle;
end;
gruss