![]() |
2 mal klicken?!
Hey!
Hab wieder mal ne Frage! also: ich hab z.b ein programm, ganz simpel, mit einem button und wenn mann draufklickt ändert sich die farbe des Fensters! Was muss ich schreiben, befehlen, was auch immer, damit wenn ich ein 2es mal draufklicke wieder eine andere farbe kommt??? greeetz schalli |
Re: 2 mal klicken?!
Du könntest eine boolsche Variable zu Beginn auf true setzen, im OnClick den Wert abfragen und den Wert der Variable dort verändern.
Delphi-Quellcode:
Hier wäre es dann so, dass immer abwechselnd Farbe 1 und Farbe 2 genommen werden. Natürlich könntest du ein eine Integervariable nehmen, da kannst du mehrere Status, Statusse, Stati (such's dir raus :oops: ) abfragen.
BoolVar := not BoolVar;
|
Re: 2 mal klicken?!
Hm deine Frage ist für mich nicht eindeutig. Soll das Fenster beim Klicken die Farbe wechseln (z.B. grau-> blau blau-> grau)? Oder soll dem Fenster eine zufällige Farbe zugewiesen werden?
Für den erste Fall schreibst du in die Procedure des Buttons:
Delphi-Quellcode:
Für den 2. hab ich derzeit keine Lösung im Kopf :mrgreen:
if form1.color = clbtnface then
form1.color := clblue else form1.color := clbtnface; |
Re: 2 mal klicken?!
ok ich sag mal danke...wenns nicht klappt melde ich mich nochmal....
|
Re: 2 mal klicken?!
ok...war anders gmeind...sozusagen eine 3. farbe möchte ich dazubekommen! also von grau auf z.b blau und von blau auf orange....und das ganze wieder von vorn :roll:
|
Re: 2 mal klicken?!
Dann zählst du eine Integervariable hoch.
Beim 1. Klick hat diese den Wert "1", beim 2. "2", beim 3. "3" (manuell höchzählen) und ist der Wert "3", setzt du ihn zurück auf "1". |
Re: 2 mal klicken?!
aha *lol*
und das geht wie??? |
Re: 2 mal klicken?!
am einfachsten geht das so:
Delphi-Quellcode:
dürfte einwandfrei klappen, und das hinzufügen von Farben is dann auch nicht mehr allzuschwer ;)
var
ind: byte = 0; //im onClick: const farben: array[0..2] of TColor = (clBlack, clRed, clBlue); begin self.Color := farben[ind]; ind:= (ind+ 1) mod length(farben); end; greetz Mike |
Re: 2 mal klicken?!
Etwas anschaulicher, aber länger, wäre diese Möglichkeit:
Delphi-Quellcode:
var
Color_Flag: Integer = 1; [...] procedure TForm1.Button1Click(Sender: TObject); begin case Color_Flag of 1: Color := clRed; 2: Color := clYellow; 3: Color := clGreen; end; if Color_Flag <> 3 then inc(Color_Flag) else Color_Flag := 1; end; |
Re: 2 mal klicken?!
Hallo,
:gruebel: dann schlag ich mal eine weiter Variante vor:
Delphi-Quellcode:
:mrgreen:
procedure TForm1.Button1Click(Sender: TObject);
begin case Color of clBtnFace : Color := clGreen; clGreen : Color := clRed; clRed : Color := clYellow; clYellow : Color := clBtnFace; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz