Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi nochmal array (https://www.delphipraxis.net/1740-nochmal-array.html)

Privateer3000 20. Dez 2002 13:55


nochmal array
 
Hi Leutz,

wenn ich dasselbe wie das letztemal Komponenten in ein Array packen will, so ist es diesmal ein bzw. meherere Timer.
Code:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
form2.label1.visible:= not form2.label1.visible;
form2.label1.color:=clRed;
end;
Ich möchte also mit dem Start des Timer ein Label blinken lassen.
Muss ich nun für jedes Label einen eigen Timer platzieren oder kann ich einen einzigen dafür nehmen?
Wenn ja, geht das dann auch mehrere Label blinken zu lassen.Jedes einzeln aktiviert natürlich.
Schönes WoE an alle

nailor 20. Dez 2002 14:04

natürlich, pack einfach bei Timer.OnTimer Ereignis, alle Lables rein, die blinken sollen, und lass sie blinken. Wenn nur einige blinken sollen, dann entscheide du, wonach entschieden werden soll, welche blinken. zb. über enabled, visible, tag...

Privateer3000 20. Dez 2002 15:10

sorry, du wirst sicherlich wissen was du meinst
aber ich nicht :(
der Punkt ist in welchen welchem Timer-Ereignis und wie müsste das aussehn.
Ich komme einfach nicht dahinter.
Ich meine nur 1 (einen) Timer.Und wie muss der dann heissen? nur Timer?
Entschuldige die blöde Frage :freak:
thx

nailor 20. Dez 2002 15:18

mach 3 labels: label1, label2 und label3.
mach 1 timer: timer1

wähl den timer an, klick doppelt drauf.

dann gib ein:
Delphi-Quellcode:
if label1.tag = 1 then label1.color := clred;
if label2.tag = 1 then label2.color := clblue;
if label3.tag = 1 then label3.color := clblack;
jetzt musst du nur bei den labels, die was machen sollen labelXY.tag := 1 vorher machen, bei allen anderen irgendwas <> 1. dann wechseln sie die farbe.

kannst auch eine case statt if-konstruktion nehmen!

RomanK 20. Dez 2002 15:19

Meinst du so was ???:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
form2.label1.visible:= not form2.label1.visible;
form2.label1.color:=clRed;
form2.label2.visible:= not form2.label2.visible;
form2.label2.color:=clRed;
end;
PS: Benutze also Codehighlighter doch bitte [*delphi] [/*delphi] (ohne *) bzw. den ObjectPascal-Source-Button

nailor 20. Dez 2002 16:00

@fuckracism: Mit wem von uns beiden redest du?

Privateer3000 20. Dez 2002 16:06

nochmal zu den Rahmenbedingungen:
von hier aus wird der Timer gestartet
Code:
procedure TForm1.AnyShapeMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  aTimer: TTimer;
  aLabel: TLabel;
  begin
  if Sender <> nil then
    if Sender is TShape then
    begin
      aTimer := FindComponent('Timer' + Copy(TShape(Sender).Name, 6, 2)) as TTimer;
      aLabel := Form2.FindComponent('Label' + Copy(TShape(Sender).Name,6,2)) as TLabel;
      if (atimer.enabled=false) then
      aTimer.Enabled := not aTimer.Enabled
      else
      atimer.enabled:=false;
      aLabel.visible:=true;
      aLabel.color:=clMaroon;
      end;
      end;
jetzt muss der timer auch noch wissen welches label er blinken lassen soll :roll:
im obigen quell wird nach else die Labels wird in ihren ursprung zurück gesetzt.
Ich habe schon versucht diese im obigen quell zu starten, aber irgendwie gehts net, nur halt das beenden.
Deshalb sage ich ausserhalb dieser procedure was der timmer nach seinem start machen soll.ich haätte es aber gerne drin, in dieser procedure.

RomanK 20. Dez 2002 16:37

Mit Privateer3000.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz