Avatar billede remis Nybegynder
24. februar 2002 - 03:28 Der er 8 kommentarer og
1 løsning

[variabel].caption := 'hvordan?';

Kan spørgsmålets titel lade sig gøre?

[variabel].caption := 'hvordan?';

Hvis det kan, hvordan?

-Remis
Avatar billede tomsommer Juniormester
24. februar 2002 - 03:29 #1
hvordan vil du sætte en caption på en variabel.. det er da umuligt
Avatar billede freeall Nybegynder
24. februar 2002 - 03:39 #2
Hvis du bare vil have at en variabel (string) får værdien 'hvordan' skriver du bare
variabel := 'hvordan?';

men det kræver at variabel er en string.

var
variabel: string;
begin
  variabel := 'hvordan?';
end;
Avatar billede remis Nybegynder
24. februar 2002 - 03:49 #3
Variablen vil altid være en label.

et eks. som i pricippet er det samme jeg er ved at lave nu...

var
  muh: integer;
begin
muh := random(20);
label[muh] := 'ko';
end;

De 20 labels <i> er </i> lavet i forevejen.

-Remis
Avatar billede remis Nybegynder
24. februar 2002 - 03:50 #4
det skulle selvfølgelig ha' været
label[muh].caption := 'ko';
Avatar billede hreiff Nybegynder
24. februar 2002 - 11:33 #5
Alle componenter har et index, så det kan du godt:

Procedure SetLabelTo(i: integer, s: string);
begin
  if (Components[I] is TLabel) then
    Components[i].caption := s;
end;
Avatar billede hreiff Nybegynder
24. februar 2002 - 11:44 #6
Der var lige en lille fejl, men brug følgende (den virker):

Procedure SetLabelTo(i: integer; s: string);
var
  temp: TComponent;
begin
  Temp := Form1.Components[I];
  if (Temp is TLabel) then
    TLabel(temp).caption := s;
end;

Kaldes med:
  SetLabelTo(1,'Ko');
Avatar billede speedy Nybegynder
24. februar 2002 - 13:58 #7
Hreiff>>Din virker da ikke hvis man f.eks. har sat andre componenter ind på formen før label'erne

Denne virker:

og du kan kalde den sådan her:

var
  muh: integer;
begin
  muh := random(20);
  SetLabelCaption('label' + IntToStr(muh), 'ko');
  label[muh] := 'ko';
end;



procedure SetLabelCaption(LabelName, LabelCaption: String);
var
  i: integer;
begin
  for i := 0 to Pred(ComponentCount) do
    begin
      if (Components[i] is TLabel) and (lowercase(Components[i].Name) = lowercase(LabelName)) then
        (Components[i] as TLabel).Caption := LabelCaption;
    end;
end;


/SpEeDy
Avatar billede hreiff Nybegynder
25. februar 2002 - 09:06 #8
Nej, man skal have styr på numrene, ellers må man bruge navne som i speedy's eksempel.
Avatar billede remis Nybegynder
25. februar 2002 - 09:37 #9
Jeg takker.
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