Avatar billede dakine Nybegynder
05. juni 2002 - 10:23 Der 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.
Avatar billede martinlind Nybegynder
05. juni 2002 - 10:58 #1
under Private/Public på den form du vil ha' knappen på, men du kan også lave en var i en alm. unit

/Martin
Avatar billede dakine Nybegynder
05. juni 2002 - 11:16 #2
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?
Avatar billede martinlind Nybegynder
05. juni 2002 - 11:22 #3
100% dynamisk !!!


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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester