Du kan sagtens have en reference til en comp. prøv at kigge på en OnClick event, hvis det er på en knap så er sender = den knap du har trykket på og du kan tilgå den sådan :
(sender as TButton) // Safe Typecast
eller
TButton(Sender) // unsafe
du kan også tilgå en comp udfra dens navn f.eks. Button1, det gøres med funtionen FindComponent() det tager en string som parameter og retunere en TComponent som du så kan \"caste\" som beskrevet ovenfor
/Martin
Synes godt om
Slettet bruger
31. maj 2001 - 10:47#2
????????????????????? hvad betyder det
Mvh. Simon
Synes godt om
Slettet bruger
31. maj 2001 - 10:48#3
ment til det sisdste det er noget jeg har set før og det kan vistnok bruges.
i := 1; Button+inttostr(i).caption := \'Knaptekst\'; hvis det er det du mener,
men hvis du istedet laver dine componenter programatisk, f.eks. i et array, vil du kunne. Eks:
var btns : array[1..9] of TButton; i : integer; begin for i := 1 to 9 do btns[i] := Tbutton.create; // nb! når du skaber componenter ^åledes skal du sætte nogle params på bl.a. ejer (container) // og du skal sætte hhv. højde, bredde, top og venstre for at placere dem o.s.v. // men derefter vil du kunne bruge:
i := {en beregning af en eller anden slags}; // og derefter btns[i].name = \'Button\'+inttostr(i); btns[i].caption := \'TEjst\'; btns[i].OnClick := form1.minonclickevent; // o.s.v. // \"minOnClickEvent\" kan være en hvilken som helst procedure, så længe den har et TObject som parameter. end;
Eks. MinOnClickEvent:
procedure Form1.MinOnClickEvent(sender: TObject); begin Showmessage(\'Dette er knappen med navnet \'+(sender as TButton).name); end;
Jeg håber dette giver dig lidt yderligere forståelse
// nb! når du skaber componenter ^åledes skal du sætte nogle params på bl.a. ejer (container) - --- Det vigtigste er at du sætter Parent til din Form eller Panel, ellers vil din knap nemlig ikke blive tegnet/vist.
/Martin
Synes godt om
Slettet bruger
31. maj 2001 - 19:40#12
til sjensen det vidste jeg men jeg var meget sikker på at nogen ville forstå hvad jeg mente hvis det virkede ville jeg ikke have spurgt.
Og det martinlind sagde var en måde at gøre det på så jeg giver ham pointene.
og det med procedurene kan gøres på en anden måde som hved hjælp af den hjælp jeg har fået her kan laves men den er sikkert langsom.
Hvad kan man udover dette bruge Fx. til variabler på samme måde.
den jeg vil bruge er: VAR
B : TObject;
begin B := Button1; (B as TButton).Caption := \'Hej Du\'; (FindComponent(\'Button1\') as TButton).Caption := \'Hej Du 2\'; end;
Du kan også havde referencer liggende i Objects på en stringlist ( listbox.items osv. ) og du kan selv søge i components[] på din form og hvad der ellers er af containere.
/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.