Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   2 mal klicken?! (https://www.delphipraxis.net/60828-2-mal-klicken.html)

SnOxXx 12. Jan 2006 21:08


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

Matze 12. Jan 2006 21:13

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:
BoolVar := not BoolVar;
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.

MisterNiceGuy 12. Jan 2006 21:14

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:
if form1.color = clbtnface then
  form1.color := clblue
  else form1.color := clbtnface;
Für den 2. hab ich derzeit keine Lösung im Kopf :mrgreen:

SnOxXx 12. Jan 2006 21:16

Re: 2 mal klicken?!
 
ok ich sag mal danke...wenns nicht klappt melde ich mich nochmal....

SnOxXx 12. Jan 2006 21:20

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:

Matze 12. Jan 2006 21:24

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".

SnOxXx 12. Jan 2006 21:25

Re: 2 mal klicken?!
 
aha *lol*
und das geht wie???

JasonDX 12. Jan 2006 21:26

Re: 2 mal klicken?!
 
am einfachsten geht das so:
Delphi-Quellcode:
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;
dürfte einwandfrei klappen, und das hinzufügen von Farben is dann auch nicht mehr allzuschwer ;)

greetz
Mike

Matze 12. Jan 2006 21:27

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;

Lannes 12. Jan 2006 22:48

Re: 2 mal klicken?!
 
Hallo,

:gruebel: dann schlag ich mal eine weiter Variante vor:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  case Color of
    clBtnFace : Color := clGreen;
    clGreen  : Color := clRed;
    clRed    : Color := clYellow;
    clYellow : Color := clBtnFace;
  end;
end;
:mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 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