Avatar billede anold Nybegynder
28. november 2000 - 13:44 Der er 4 kommentarer og
1 løsning

Placering af Label dynamisk

Jeg har før spurgt om hvordan man placer label i forhold til hinanden når de er oprettet dynamisk
http://www.eksperten.dk/spm/32424
Men det svar jeg fik var kun på to labels
derfor vil jeg gerne vide
Hvordan jeg gør når jeg har et X antal DYNAMISK oprettet labels som jeg gerne vil have til og stå under hinanden
Avatar billede delphi Nybegynder
28. november 2000 - 13:57 #1
Hej Anders

Hvad med noget i retning af følgende:

Const
  LeftPos  = 30;
  StartTop = 30;
  YDiff    = 20;

procedure TForm1.Button1Click(Sender: TObject);
Var
  Index  : Integer;
  CurTop  : Integer;
begin
  CurTop := StartTop;
  For Index := 0 To ComponentCount-1 Do
    If Components[Index] is TLabel Then
      With (Components[Index] As TLabel) Do
        Begin
          Left := LeftPos;
          Top  := CurTop;
          Inc(CurTop, YDiff);
        End;
end;

Delphi
Avatar billede anold Nybegynder
28. november 2000 - 14:05 #2
Hej Delphi

Jo det skal da nok virke men det jeg haved tænkt mig var at jeg opretter og placer labeln med det samme under hinanden (JA jeg kan godt se at der står noget andet i mit spørgsmål)
Avatar billede delphi Nybegynder
28. november 2000 - 14:09 #3
Fik du ikke for nogen tid siden et lille test program af mig, hvor jeg gemte/loadede positionen af en stak labels i en INIFile.  I det program er jeg ret sikker på at der ingår en procedure der laver en hel stak dynamiske labels (det er deres positioner jeg gemte/loadede).  Den rutine, sammen med brugen af StartTop og YDiff her fra dette spørgsmål, er lige det du behøver.

Email mig efter test programmet hvis du ikke har det mere.  (np@tagarno.dk)

Delphi
Avatar billede anold Nybegynder
29. november 2000 - 06:57 #4
OK Delphi
Nu har jeg brygget noget sammen af de program stumper jeg har fået af dig og det virker fint når jeg opretter labels på Formens Canvas
så kan jeg godt få dem til at stå pænt under hinanden
Men jeg skal oprette dem på en ScrollBox og så virker det ikke
min kode ser sådan ud :

procedure TFrmpulje.Button1Click(Sender: TObject);
begin
  Flabel := Tlabel.Create(Frmpulje.ScrollBox1);
  Flabel.parent := Frmpulje.ScrollBox1;
  Flabel.Top := 10;
  Flabel.Left := 10;
  Flabel.Caption := \'Dette er en Test\';
end;


procedure TFrmpulje.Button2Click(Sender: TObject);

Var
  Index  : Integer;
  CurTop  : Integer;
begin
  CurTop := StartTop;
  For Index := 0 To ComponentCount-1 Do
    If Components[Index] is TLabel Then
      With (Components[Index] As TLabel) Do
        Begin
          Left := LeftPos;
          Top  := CurTop;
          Inc(CurTop, YDiff);
        End;
end;

Hvordan får jeg det til at virke ???
 
Avatar billede delphi Nybegynder
29. november 2000 - 08:29 #5
Godmorgen.  Du er dæleme tidligt oppen.

Dit problem ligger i brugen af ComponenCount og Components, hvor du benytter dem der hører til din Form (TFrmpulje).  Du skal, når du ønsker at benytte en scrollbox, benytte scollboxen\'s tilsvarende properties.  Se i nedenstående Button2Click metode.


procedure TForm1.Button1Click(Sender: TObject);
Var
  Flabel : TLabel;
begin
  Flabel := Tlabel.Create(ScrollBox1);
  Flabel.Parent := ScrollBox1;
  Flabel.Top := 10;
  Flabel.Left := 10;
  Flabel.Caption := \'Dette er en Test\';
end;

procedure TForm1.Button2Click(Sender: TObject);
Const
  StartTop = 10;
  LeftPos  = 20;
  YDiff    = 20;
Var
  Index  : Integer;
  CurTop  : Integer;
begin
  CurTop := StartTop;
  For Index := 0 To ScrollBox1.ComponentCount-1 Do
    If ScrollBox1.Components[Index] is TLabel Then
      With (ScrollBox1.Components[Index] As TLabel) Do
        Begin
          Left := LeftPos;
          Top  := CurTop;
          Inc(CurTop, YDiff);
        End;
end;

Delphi

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