Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Farbe wechseln Anwendung
Baltus - Di 22.08.06 16:37
Titel: Farbe wechseln Anwendung
Hallo,
ich muss bis Donnerstag eine Anwendung geschrieben haben die, wenn ich auf den Button klicke die Farbe in blau und bei nochmaligem klicken in rot ändert. Soviel hab ich schon geschrieben:
:arrow:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54:
| unit mFarben3;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TFarben3 = class(TForm) Bt_one: TButton; procedure Bt_oneClick(Sender: TObject); private public end;
var Farben3: TFarben3;
implementation
{$R *.DFM}
procedure TFarben3.Bt_oneClick(Sender: TObject);
begin
if Farben3.color = clred
then
else ;
end;
end. |
Soweit so gut aber wenn ich jetzt auf den Button klicke ändert das Fenster seine Farbe nicht wie vorgesehen.
Ich glaub der Fehler liegt in den {}, kann ja sein dass welche fehlen oder so. :?:
Danke schonmal im vorraus, für euere Hilfe. :D
Moderiert von
Christian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 24.08.2006 um 18:42
Danniolo - Di 22.08.06 16:40
Erstma :welcome: herzlich willkommen im DF!
Bist wohl noch an cpp gewöhnt, was ;)
In Delphi müsste es so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| unit mFarben3;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TFarben3 = class(TForm) Bt_one: TButton; procedure Bt_oneClick(Sender: TObject); private public end;
var Farben3: TFarben3;
implementation
{$R *.DFM}
procedure TFarben3.Bt_oneClick(Sender: TObject);
begin
if Farben3.color = clred then begin Farben3.color := clblue; Bt_one.caption := 'Erröten!'; Farben3.caption := 'Ich mache jetzt BLAU!'; end else begin Farben3.color := clred; Bt_one.caption := 'Ich will BLAU machen!'; Farben3.caption := 'Ich schäme mich...'; end;
end;
end. |
der Berliner - Di 22.08.06 16:50
Moin...
Also ich denke mal dein Button verweigert den Dienst Weil beim Start dein
Form.color=clBtnFace ist.
eine kleine Zeile behebt das Prob.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54:
| unit mFarben3;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TFarben3 = class(TForm) Bt_one: TButton; procedure Bt_oneClick(Sender: TObject); private public end;
var Farben3: TFarben3;
implementation
{$R *.DFM}
procedure TFarben3.Bt_oneClick(Sender: TObject); begin
If Farben3.Color=clBtnFace then Farben3.Color:=clred;
if Farben3.color = clred then begin Farben3.color := clblue; Bt_one.caption := 'Erröten!'; Farben3.caption := 'Ich mache jetzt BLAU!'; end else begin Farben3.color := clred; Bt_one.caption := 'Ich will BLAU machen!'; Farben3.caption := 'Ich schäme mich...'; end;
end;
end. |
gruß
Baltus - Di 22.08.06 17:08
Ja super!!! :dance2:
War wirklich mein überhaupt zweites Projekt. :nixweiss:
DANKE, jetzt gehts :party:
FiFtY - Do 24.08.06 16:28
ich bräuchte jetzt das ganze mit vier farben.
rot blau gelb und grün
danke für die hilfe im vorraus
der Berliner - Do 24.08.06 16:35
wie ...wenn du auf den Button klickst isses erst rot zweiter klick blau dritter klick grün usw.
oder wie????
da kommst du doch selber drauf :mahn:
gruß
FiFtY - Do 24.08.06 16:50
nein eben nicht bin zu doof dafür^^
habs schon probiert der wechselt nur einmal die farbe und danach garnicht.
Ich hab kene ahnung wie ich das angehen muss(bin anfänger)
der Berliner - Do 24.08.06 16:54
mal so aus der hüfte geschossen...
beschäftige dich mit if then elseif.
gruß
FiFtY - Do 24.08.06 17:01
mitr if und else hab ich ja probiert aber nach einem farbenwechsel istz ende banane
jakobwenzel - Do 24.08.06 17:02
Zeig mal, wie dus probiert hast.
FiFtY - Do 24.08.06 17:09
mom bin grad auf ne idee gekommen wills mal probieren
der Berliner - Do 24.08.06 17:09
also bei mir gehts ....1 x if mit 4 x else if :lol:
gruß
FiFtY - Do 24.08.06 17:11
hast du variablen eingesetzt?
der Berliner - Do 24.08.06 17:13
ja eine... Farbe: TColor
aber nur um schreibarbeit zu sparen
ein kleiner denkanstoss
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| Farbe:=Form1.Color; if Farbe =clbtnFace then begin Form1.Color:=Clred end else if Farbe =clred then Form1.Color:=Clblue ... ... ... |
FiFtY - Do 24.08.06 17:16
ganz oben ist ja der text für die 2 farben.
muss ich das nur erweitern oder ganz ändern?
der Berliner - Do 24.08.06 17:19
haste die änderung in meinem vorherigen post gesehen?
FiFtY - Do 24.08.06 17:25
ja gerade erst^^
der Berliner - Do 24.08.06 17:34
Und haste es jetzt :?: :wink2:
FiFtY - Do 24.08.06 17:42
ja die farben schon aber ich prügel mich egrade mit der caption des form1´s und des buttons
der Berliner - Do 24.08.06 18:00
Ok..hier kommt meine abgeänderte version:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private public end;
var Form1: TForm1; Farbe:TColor;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin Farbe:=Form1.Color; case Farbe of clBtnFace: begin Button1.Caption:='Klick mich dann werde ich blau'; Form1.Color:=Clred; end; clred: begin Button1.Caption:='Klick mich dann werde ich gelb'; Form1.Color:=Clblue; end; clblue: begin Button1.Caption:='Klick mich dann werde ich grün '; Form1.Color:=clyellow; end; clyellow: begin Button1.Caption:='Klick mich dann werde ich rot'; Form1.Color:=clgreen; end; clgreen: begin Button1.Caption:='Klick mich dann werde ich blau'; Form1.Color:=clred; end; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin Farbe:=Form1.Color; Button1.Caption:='Klick mich dann werde ich rot'; end;
end. |
gruß
FiFtY - Do 24.08.06 18:12
danke berliner aber was bedeutet denn dieses " CASE farbe OF"
der Berliner - Do 24.08.06 18:16
Für den Fall(Case) das Form1.Farbe(Variable) ClBtnFace ist setze Form1.Farbe:=auf clrot
die Variable Farbe ist weiter ober Deklariert..Var Farbe: TColor;
gruß
FiFtY - Do 24.08.06 18:39
das ist zu kompliziert für den info unterricht.
Ich versuchs mit dem else if
der Berliner - Do 24.08.06 18:47
Is nicht komplizierte als If Anweisungen nur übersichtlicher :!:
FiFtY - Do 24.08.06 18:52
ja aber wir haben sowas nicht gemacht verstehst du
dann komm ich damit an und der checkt natürlich dass ich das meiste nicht selbergemacht hab.
unser thema ist gerade halt das mit if when und son kram. deshlab versuch ichd as mal so
aber danke
der Berliner - Do 24.08.06 19:02
na dann...
Bei den if then else if musste mit den semikolons am ende aufpassen.
und immer schön mit begin und end arbeiten :mahn:
gruß
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!