Avatar billede anold Nybegynder
30. november 1999 - 07:49 Der er 8 kommentarer og
1 løsning

Create et label felt under runtime.

Hvem kan vise mig et program eks.
hvor man CREATER en label eller en edit mens programmet er i "runtime"

Avatar billede psv Nybegynder
30. november 1999 - 08:03 #1
Hvad med eks. at erklære en privat variabel på en form eks. TForm1

FEdit : TEdit;

Under antagelse af at du prøver at lave din edit i en metode på en form er det blot at skrive:


procedure TForm1.DoSomeThing;
begin
  // Do something...
  ...
  FEdit := TEdit.Create(Self);
  FEdit.Parent := Self;       
  (* Her er Self formen. Kan også være et panel.
  * Så mangler du blot at placere FEdit.
  *)
  ...
  // Do something more...
end;
Avatar billede hlj Nybegynder
30. november 1999 - 08:42 #2
Husk at FEdit skal frigives igen når du er færdig med at bruge den.

FEdit.free
Avatar billede anold Nybegynder
30. november 1999 - 08:47 #3
Hej psv
Det er bare "fedt" det du har lavet til mig, jeg har lige prøvet det og det virker perfekt.
Ved du også hvordan jeg kan dreje en Label eller en Edit 90 grader ??
Avatar billede psv Nybegynder
30. november 1999 - 08:52 #4
hlj: FEdit bliver free'et når formen free'es!

anold: Det tror jeg ikke man kan... Ikke med Delphi standardkomponenter!
Avatar billede blackthorne Nybegynder
30. november 1999 - 09:26 #5
jeg har en løsning på det, men ikke for 15 point og det er et helt andet spørgsmål
Avatar billede testtesttest Nybegynder
30. november 1999 - 09:46 #6
Jeg lavede lige et eksempel - så blev jeg forstyret og da jeg havde tid til at komme tilbage, var der lavet en million indslag....

Nå du får det nu alligevel!

Jeg bruger i eksemplet en Button-Click metode.
Jeg har valgt at lave en variabel kaldet fLabel, således at jeg nemmere kan ændre på label'ns properties efter oprettelsen.  Hvis man har brug for at kunne addressere komponenten fra andre procedure, så er det dog nemmest at lade variablen fLabel være deklereret i Form1's Private del.
Bemærk at i Create kaldet sættes lable'ns owner property til Form1 (=Self).  Når dette er gjort, så er det ikke nødvendigt selv at fjerne komponenten igen (med Free), idet dette gøres automatisk når Form1 fjernes. 
Man skal altid huske at sætte en komponents Parent property, idette tilfælde også til Form1 (eller Self).

Herefter kan alle de almindelige properties benyttes på sædvanlig vis.

procedure TForm1.Button1Click(Sender: TObject);
Var
  fLabel : TLabel;
  X      : Integer;
begin
  fLabel := Tlabel.Create(Self);
  fLabel.Parent := Form1;

  fLabel.Top  := 100;
  fLabel.Left := 100;
  fLabel.Top  := Random(Height);
  fLabel.Left := Random(Width);
  fLabel.Caption := 'Dette er en test.';
end;


Med hensyn til en label der kan drejes 90 grader, så prøv ProLabel fra Pro VCL Extension Librariet (http://www.farlep.net/~dgb).  Denne komponent har en Angel property.


NiP/Delphi
Avatar billede delphi Nybegynder
30. november 1999 - 09:48 #7
UPS: Jeg var stadig logget på som TestTestTest efter jeg lige havde skrevet en mail til lp, hvor jeg ville undersøge hvormange points en ny bruger har. 
Så'en kan det gå.
NiP/Delphi
Avatar billede delphi Nybegynder
01. december 1999 - 11:40 #8
ProLabel komponenter med en Angel property....  Den må høre til blandt de højere magter!

NiP
Avatar billede anold Nybegynder
01. december 1999 - 12:16 #9
Hej NiP
Ja ProLabel høre til blandt de højere magter.Hvis ikke det er GUD
Jeg har hentet pro vcl og det virker perfekt så tak for dit "link"
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