Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Farbenwechsel alle 0,1 Sekunden


Dede16 - Mi 14.09.05 18:27
Titel: Farbenwechsel alle 0,1 Sekunden
Hali Hallo:)

Ich meld mich ma wieder mit einer Frage:)

Ich wollte mal ein nerviges Programm schreiben mit dem man auf Knopfdruck erreicht das der Hintergrund eines Formulars alle sagen wir 0.1 Sekunden die Farbe wechselt:).

Also die farben sollten die Delphi standartfarben sein.....z.B clwhite,clblack usw.
nur wie kriege ich das mit der Schleife hin? Das ist mein Problem . Habe mal was von einem Timer gehört habe aber darüber Recht wenig Ahnung.

Danke schonmal für Antworten :)

Mfg Dede


Spaceguide - Mi 14.09.05 18:36

Vorsicht: Trocken-Pfusch!

Setz nen Timer auf das Formular, seine Eigenschaften auf Enabled=False, Interval=100 und dann machst du nen Doppelklick auf den Timer.

Schreib dann in die Timer1Timer Prozedur:

Delphi-Quelltext
1:
2:
 Timer1.Tag:=Timer1.Tag+1;
 Color := clWhite*(Timer1.Tag and 1);


und im OnClick-Ereignis eines Knopfes


Delphi-Quelltext
1:
Timer1.Enabled:=True;                    


Dede16 - Mi 14.09.05 18:43

Könntest du mir mal die Zeile:

Quelltext
1:
Color := clWhite*(Timer1.Tag and 1);                    

erläutern?


Amateur - Mi 14.09.05 18:53

wie wäre es wenn du einfach nen array mit den farben machst die du willst und dann einfach random um eine farbe zu bekommen. und im timer dann form1.color:=farbarray[random(..)].
is zwar dann nur zufällig aber du kannst bestimmen welche farben benutzt werden sollen.
ansonsten kannste auch ne variable machen, inc(variable) und wenn die größer is als length(farbarray) wird sie wieder auf 0 gesetzt.


uall@ogc - Mi 14.09.05 18:56

oder einfach nur

Color := clwhite and not color;


delfiphan - Mi 14.09.05 19:09

Oder wer's kryptisch mag:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
const
 Color1 = clWhite;
 Color2 = clBlack;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Color := Color1; // Startfarbe
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Color := Color xor Color1 xor Color2; // Farbe wechseln
end;


Dede16 - Mi 14.09.05 19:11

DAnke ich hab es mit dem Array und Random gelößt:)
Vielen dank!!! :lol: :lol: :lol: :lol: