![]() |
Re: if...then...else
Zitat:
Du fängst mit einer if-Bedingung an, brichst diese dann aber einfach so ab, ohne daß sie einen Sinn ergibt. Nimm also einfach mal das erste if raus. Zudem hast du (obwohl es jetzt schon x-mal gesagt wurde) immer noch nicht den Punkt hinter das letzte end gesetzt... |
Re: if...then...else
Andere Frage ... was soll dieses Konstrukt bewirken?
|
Re: if...then...else
Was das bewirken soll? siehe Anfang des Threads Oo. ^^
Na ja, hab jetzt allet umstrukturiert, jetzt meckert er wegen dem Punkt am Ende xDDD.
Delphi-Quellcode:
Das ist jetzt mal die gesamte Anwendung, mal sehen, ob ihr was rauskriegt ^^.
unit rechnen;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; Button10: TButton; Button11: TButton; Button12: TButton; Button13: TButton; Button14: TButton; Button15: TButton; Label1: TLabel; MainMenu1: TMainMenu; Datei1: TMenuItem; Beenden1: TMenuItem; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Beenden1Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button11Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; CurrentLabel: TLabel; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '1'; end; procedure TForm1.Button2Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '2'; end; procedure TForm1.Button3Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '3'; end; procedure TForm1.Button4Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '4'; end; procedure TForm1.Button5Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '5'; end; procedure TForm1.Button6Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '6'; end; procedure TForm1.Button7Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '7'; end; procedure TForm1.Button8Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '8'; end; procedure TForm1.Button9Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '9'; end; procedure TForm1.Button10Click(Sender: TObject); begin Form1.Label1.Caption:= Form1.Label1.Caption + '0'; end; procedure TForm1.Button11Click(Sender: TObject); begin CurrentLabel:=Label5; CurrentLabel.Caption:= Form1.Label1.Caption; Form1.Label1.Caption:= ''; end; procedure TForm1.Beenden1Click(Sender: TObject); begin Close; end; begin if (Form1.Label5.Caption='') then begin Form1.Label1.Caption:=Form1.Label5.Caption; end else begin Form1.Label1.Caption:=Form1.Label6.Caption; end; end end. |
Re: if...then...else
Zitat:
|
Re: if...then...else
Delphi-Quellcode:
So, wir haben eine Prozedur, die einwandfrei abgeschlossen wird. Danach fängst du mit einem Begin an, ohne dich in irgendeiner Methode zu bewegen -> geht nicht...
//[...]
procedure TForm1.Beenden1Click(Sender: TObject); begin Close; end; begin if (Form1.Label5.Caption='') then begin Form1.Label1.Caption:=Form1.Label5.Caption; end else begin Form1.Label1.Caption:=Form1.Label6.Caption; end; end end. Zum anderen fehlt am vorletzten end jetzt ein Strichpunkt :roll: PS: Tu dir selbst einen Gefallen und rück deinen Quelltext ein bißchen ein. Das kann man ja kaum anschauen sowas ;) |
Re: if...then...else
Wann dat passieren soll? Ja, wenn halt im Label 1 was steht, aber im andren nit... Muss ich wohl die Labels vertauschen... ^^
Ja, ich weiß, das Semikolon, aber da meckert dat Delphiprog immer, wenn ich det mache... ^^ |
Re: if...then...else
Ausserdem hast du meinen Rat nicht richtig umgesetzt. Ich habe gesagt, du sollt
1. in deinen zig Methoden statt
Delphi-Quellcode:
eifach das schreiben:
procedure TForm1.Button7Click(Sender: TObject);
begin Form1.Label1.Caption:= Form1.Label1.Caption + '7'; end;
Delphi-Quellcode:
Und das
CurrentLabel.Caption:= CurrentLabel.Caption + '7';
Delphi-Quellcode:
ist natürlich Quark.
CurrentLabel:=Label5;
CurrentLabel.Caption:= Form1.Label1.Caption; Form1.Label1.Caption:= ''; Wenn das der Plus/Minus/Mal/Geteilt Button ist müsse das so aussehn:
Delphi-Quellcode:
Ausserdem hab' ich was von FormCreate geschrieben usw. ...
CurrentLabel:=Label5;
LabelX.Caption := '+'; // Für den Operator |
Re: if...then...else
Da fällt mir ein, dass ich was hab vergessen zu erwähnen xD.
Also, alle Zahlen kommen erst ins Label1, werden da halt als Zeichenkette gesammelt und sollen dann halt entweder in Label5 oder Label6 kommen, wenn Label5 voll ist und man auf eines der Rechenoperatoren drückt, soll die Zeichenkette dann da auftauchen. Aber ich denk mal, das konnte man inzwischen auch schon aus dem Quellcode erschließen... Ja, ich hab das ja mit dem Current und so gemacht, aber das ging dann alles durcheinander! Da drückte man dann auf die Zahl und auf's +, dann kam das plötzlich in ein ganz anderes Label... Deswegen hab ich das wieder rausgenommen... |
Re: if...then...else
:wiejetzt:
Ich dachte bis jetzt du wolltest das so machen, dass - Erst Zahlen eingegeben werden können - Dann + oder - etc. gedrückt wird - Daraufhin Zahlen in einem anderen Label eingegeben werden - = gedrüclt wird und - Das ergebnis in einem dritten Label erscheint Oder wie hattest du das vor ? |
Re: if...then...else
Ja, das hab ich jetzt mittlerweile so vor.
Dann fiel mri aber grade noch ein Problem auf: Zahl kommt ins 1. Label + drücken und zahlen sollen ins Zweite = drücken und Computer soll addieren, woher soll der Com aber wissen, wenn man nachher noch mehrere Rechenoperatoren hat, was er jetzt rechnen muss? Ob Plus oder Minus oder geteilt? Also mittlerweile sieht's bei mir so aus:
Delphi-Quellcode:
var
Form1: TForm1; CurrentLabel: TLabel; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '1'; end; procedure TForm1.Button2Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '2'; end; procedure TForm1.Button3Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '3'; end; procedure TForm1.Button4Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '4'; end; procedure TForm1.Button5Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '5'; end; procedure TForm1.Button6Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '6'; end; procedure TForm1.Button7Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '7'; end; procedure TForm1.Button8Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '8'; end; procedure TForm1.Button9Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '9'; end; procedure TForm1.Button10Click(Sender: TObject); begin CurrentLabel.Caption:= Form1.Label5.Caption + '0'; end; procedure TForm1.Button11Click(Sender: TObject); begin Form1.Label5.Caption:= CurrentLabel.Caption; end; procedure TForm1.Beenden1Click(Sender: TObject); begin Close; end; procedure TForm1.FormCreate(Sender: TObject); begin CurrentLabel:=Form1.Label5; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 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