10. maj 2000 - 17:48Der er
12 kommentarer og 2 løsninger
Opdatering af flere editboxe
Jeg nogle editboxe hvor indholdet skal opdateres hvert sek. med current time (TimeToStr(Time)). Ud for hver editbox er der en knap. Det er heller ikke noget problem at smide alle navnene på editboxene ind i en timer og så bare la' den køre hvert sek. ! MEN, jeg vil gerne ha' det så, hvis jeg f.eks. trykker på den knap der er ud for editbox 3, så tiden ikke længere bli'r opdateret i editbox 3 men alle de andre bli'r stadig opdateret hvert sek. !
Kan det la' sig gøre med én timer, eller skal jeg lave en timer til hver editbox ???
Tjaa... Du kan for eksempel lave et array af booleans, der holder styr på hvilke TEdit's der skal opdateres. En ide kunne være:
Type KontrolArray = array[1..4] of boolean;
var Form1: TForm1; Ar : Kontrolarray; implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject); begin
if ar[1] then edit1.Text := TimeToStr(Time); if ar[2] then edit2.Text := TimeToStr(Time); if ar[3] then edit3.Text := TimeToStr(Time); if ar[4] then edit4.Text := TimeToStr(Time); end;
procedure TForm1.FormCreate(Sender: TObject); var i : integer; begin for i := 1 to 4 do ar[i] := true; end;
procedure TForm1.Button1Click(Sender: TObject); begin if ar[1] then ar[1] := false else ar[1]:= true; end;
procedure TForm1.Button2Click(Sender: TObject); begin if ar[2] then ar[2] := false else ar[2]:= true; end;
procedure TForm1.Button3Click(Sender: TObject); begin if ar[3] then ar[3] := false else ar[3]:= true; end;
procedure TForm1.Button4Click(Sender: TObject); begin if ar[4] then ar[4] := false else ar[4]:= true; end;
end.
Måske er der en smartere metode, ved ikke... Du kan jo vente og se om der kommer nogle smartere indslag ;-)
Fuck det her system - så postede den ikke mit svar.
Nå, igen.
For din button1, som hører til det første felt sætter du dens tag property (brug Property Inspector) til 1. Nr. 2 sætter du taggen til 2, og så videre.
Tag er et felt alle Delphi-komponenter har som ikke bruges til noget, men som du i dit program kan benytte til hvad som helst, som ex. her.
Koden kan så rettes til (så vidt jeg lige kan se):
procedure TForm1.Button1Click(Sender: TObject); begin ar[sender.tag]:= not ar[sender.tag]; end;
ar[tbutton(sender).tag]:= not ar[TButton(sender).tag];
Derudover skal du som nævnt sætte alle de yderligere knapper til at peje på button1 i ObjektInspektoren, samt huske at sætte alle knappernes tag's til deres respektive værdier... (Kan ligeledes gøres i ObjInsp)
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.