05. juni 2002 - 10:23Der er
2 kommentarer og 1 løsning
Dynamisk oprettelse af komponenter. (HowTo)
Hej.
Jeg forsøger mig lidt med dynamisk oprettelse af komponenter, men har ikke helt fået det til at virke endnu. Jeg har følgende eksempel som jeg har prøvet lidt med:
MyButton := TButton.Create(self); with MyButton do begin Parent := self; Left := 100; Top := 100; Caption := 'Click me'; OnClick := MyCustomClick; end;
Men hvor skal navnet MyButton erklæres? Delphi skal jo ligesom kende MyButton.
Okay. Men så er det jo heller ikke helt dynamisk! Jeg mener hvis jeg manuelt skal erklære 'et loft' af komponeter som jeg muligvis skal bruge. Private MyButton : TButton;
Hvad nu hvis jeg f.eks har en form, hvor der kan være brug for 10 labels,- måske 50! Så skal jeg da ikke under private oprette 50 linier med Label1 : TLabel; Label2 : TLabel; .. .. Label50 : TLabel;
Måske bliver der kun brug for 10 men jeg har erklæret 50 på forhånd hvis nu. Eller endnu værre.- hvad så hvis jeg pludselig skal bruge 51 labels? Så går det ned! Kan jeg ikke også gøre det automatisk på en eller anden måde? Forstår du hvad jeg mener?
VAR MyButtonArr : array of TButton; Cnt : Integer;
begin SetLength(MyButtonArr,117); for Cnt := Low(MyButtonArr) to High(MyButtonArr) do MyButtonArr[Cnt] := TButton.Create(NIL);
// Eller :
with TButton.Create(NIL) do begin Caption := 'Knap uden VAR'; Parent := Application; end;
end;
/Martin
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.