webForumDet fria alternativet

Hjälp med koden

Programmeringur Programmering - Övrigt

2 svar · 343 visningar · startad av FreeZer

Medlem sedan jan. 2001950 inlägg
Frågan#1

Hur ska man skriva för att köra en funktion på t.ex. flera knappar?

for i := 1 to 5 do begin
button.caption := 'TEST';
end;

Jag vill alltså att koden ska skriva ut 'TEST' i button1.caption till och med button5.caption. Hur skriver man? för på det sätt som jag skrivit ovan fungerar inte.

/Mikey

Medlem sedan jan. 2000144 inlägg
#2

Det finns inget sätt att komma åt knapparna från någon separat lista, så som du vill.
Namnen button1, button.... är bara fiktiva namn som Delphi använder för att göra namnen unika.

Ett sätt att lösa det på är att själv lägga in knapparna i en lista:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
var
Butts: array[1..5] of TButton;
i: Integer;
begin
Butts[1]:= Button1;
Butts[2]:= Button2;
Butts[3]:= Button3;
Butts[4]:= Button4;
Butts[5]:= Button4;

for i:= 1 to 5 do
Butts.Caption:= 'TEST';

Frågan är om man vinner så mycket på det om man bara vill ändra rubriken.

Ett annat sätt är att loopa igenom komponenterna på formuläret och kontrollera deras namn och utifrån de se att komponenten heter button någonting.

Hoppas det var till någon hjälp.

Medlem sedan juni 2000350 inlägg
#3

Som Mattias skrev kan du loopa igenom komponenterna men istället för att använda namnet tycker jag det verkar bättre kontrollera typen.
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
var
i: integer;
begin
//Loopar igenom alla komponenter
for i := 0 to ComponentCount - 1 do
//Kollar om komponenten är en TButton
if Components is TButton then
TButton(Components).Caption := 'Test';
end;

Har du knappar som du inte vill ändra caption på så kan du använda propertyn tag för att skilja ut de knappar som ska ändras.

if (Components is TButton) and (Components.Tag = 1) then

[Redigerat av jt den 06 jan 2001]

135 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)