Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#6

AW: For each in Delphi

  Alt 25. Aug 2012, 05:58
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

Geändert von EWeiss (25. Aug 2012 um 06:27 Uhr)
  Mit Zitat antworten Zitat