![]() |
if...then...else
Ja, hallo Leute,
ich geb's ja zu, ich bin Delphi- Anfänger! (geoutet, yeah! :D) So, jedenfalls versuche ich grad eine Art Taschenrechner aufzustellen und habe dafür ersteinmal die Taschenrechner- Oberfläche (Zahlen von 0-9, +, -, *, /, =) und oben noch zwei, drei Labels. Wenn man nun auf eine der Zahlen drückt, erscheint diese im Label, drückt man auf + ist die wieder weg und es soll eine zweite Eingabe ins zweite Label gestattet werden. Das will ich mit einer if...then...else schaffen ;). Und zwar soll das so aussehen:
Delphi-Quellcode:
Tja, mein netter Com streicht schon oben das if an, egal was ich eintippe! Ob ich einfach nur "x<0" oder so eintippe, der streicht immer dat if an *grummel*...
if Label1.Caption:= ' ' then
begin // alle Prozeduren der Zahlen zur Eingabe ins erste Label; end else // also wenn was im Label1 steht begin //alle Prozeduren der Zahlen ins zweite Label; end end; Weiß einer vielleicht, was ich falsch mache? Ich mein, so blöd kann man sich ja nit anstellen, dass Com netmal'nen normalen Befehl akzeptiert xD. A ja, für Nachfragen steh ich offen, falls noch irgendwas in den Hieroglyphen vergraben steht... ^^ Ach ja, danke schonmal vorher, auch wenn mir noch keiner geholfen hat ^^. Ach- und bitte schnell antworten, schreib morgen'ne Arbeit XD. [edit=Sharky]Noch schnell die Delphi-Tags gesetzt. Mfg, Sharky[/edit] |
Re: if...then...else
Hai Jarie,
bei einem Vergleich musst Du ein "=" verwenden. Das ":=" ist eine Zuordnung. Also
Delphi-Quellcode:
begin
if (Label1.Caption = ' ') then begin Label1.Caption := '*blubb*'; end; end; |
Re: if...then...else
Lol, jetzt streicht der mein durchaus anwesendes Label1 an xD.
Aber danke schonmal, if ist jetzt für den okay ^^. Ich glaub, bin zu doof für Delphi *heul* ^^. Das steht jetzt also alles so da:
Delphi-Quellcode:
Nur mal als Beispiel meines Nichtkönnens xD.
begin
if (Label5.Caption = ' ') then begin Label5.Caption:= '*blubb*; end; else begin Label5.Caption:= ' '; end; end [edit=Sharky]Bitte setze deinen Code immer in die Delphi-Tags. Einfach [*delphi] vor den Code und [*/delphi] dahinter. Nur ohne die *. Mfg, Sharky[/edit] |
Re: if...then...else
Zeige mal die gesamte Methode. Also:
Delphi-Quellcode:
procedure xxxxxxxxx
begin . . end; |
Re: if...then...else
Nach dem '*blubb fehlt ein '!
EDIT: und dem letzten End fehlt ein ; |
Re: if...then...else
'Label1' existiert vermutlich, aber vielleicht nicht aus 'Sicht' der Prozedur/Funktion/Methode, in dem Du auf das Label zugreifst.
Label1 ist bestimmt auf einer Form drauf, also ist sie ohne weiteres Zutun auch nur innerhalb der Form 'sichtbar'. "Innerhalb" bezieht sich hier auf Methoden der Klasse 'TForm1'. Um auf deinen linken Fuß einzugehen, reicht es nicht, nur 'Linker Fuß' zu schreiben. Also, wenn Du mit dir selbst sprichst, oder VON dir, dann ja. Es würde dann (übertragen auf Delphi) heißen 'Mein.LinkerFuß' oder genau besser: 'Selbst.LinkerFuß'. Auf englisch wäre das 'Self.LeftFoot'. Wenn ich (also ein anderes Objekt, oder als anderer Kontext) auf deinen linken Fuß Bezug nehme, dann muss ich auf 'Jari.LinkerFuß' Bezug nehmen. Zurück zu deinem Label1: Innerhalb einer Methode der Form, in der Label1 deklariert wurde, kannst du mit 'Self.Label1' oder einfach nur 'Label1' darauf zugreifen. Von außerhalb eben mit 'MeineForm.Label1' (wenn Label1 eben in MeineForm deklariert wurde). PS: Wir waren -glaube ich- ALLE anfangs zu 'blöd'. Is wie mit dem Radfahren: Zuerst fällt man ständig auf die Schnauze und irgendwann fragt man sich, wie man jemals wackelig auf einem Fahrrad sein konnte. |
Re: if...then...else
Okay, ich fang nochmal an:
Delphi-Quellcode:
Das sind alle Eingaben meiner Zahlenbuttons von 0-9 für den Taschenrechner. Ich habe drei Labels. In Label1 kommt die erste Eingabe, wenn die voll geschrieben ist und man z.B. auf "+" drückt, sollen die nächsten Zahlen in das zweite Label eingefügt werden. Label1 und 2 werden beim Klick auf "=" (logisch) addiert etc. und ins 3. Label geschrieben (das schaff ich noch).
procedure TForm1.Button1Click(Sender: TObject);
begin Label1.Caption:= Label1.Caption + '1'; end; begin procedure TForm1.Button2Click(Sender: TObject); begin Label1.Caption:= Label1.Caption + '2'; end; procedure TForm1.Button3Click(Sender: TObject); begin Label1.Caption:= Label1.Caption + '3'; end; procedure TForm1.Button4Click(Sender: TObject); begin Label1.Caption:= Label1.Caption + '4'; end; procedure TForm1.Button5Click(Sender: TObject); begin Label1.Caption:= Label1.Caption + '5'; end; procedure TForm1.Beenden1Click(Sender: TObject); begin Close; end; procedure TForm1.Button6Click(Sender: TObject); begin Label1.Caption:= Label1.Caption + '6'; end; procedure TForm1.Button7Click(Sender: TObject); begin Label1.Caption:= Label1.Caption + '7'; end; procedure TForm1.Button8Click(Sender: TObject); begin Label1.Caption:= Label1.Caption + '8'; end; procedure TForm1.Button9Click(Sender: TObject); begin Label1.Caption:= Label1.Caption + '9'; end; procedure TForm1.Button10Click(Sender: TObject); begin Label1.Caption:= Label1.Caption + '0'; end; Nun will ich also, dass, wenn Label1 leer ist, alle Zahlen da rein kommen und wenn's voll ist, alle Zahlen ins Label2 kommen. deswegen if...then...else- Anweisung. Ich hoffe, das versteht man ;). Zum zweiten Post: Hab's jetzt so, meckert immer noch:
Delphi-Quellcode:
[edit=alcaeus]Sharky hat dir ein paar Beitraege weiter oben erklaert, wie man die Delphi-Tags verwendet. Waere nett wenn du das auch tun koenntest ;) Mfg, alcaeus[/edit]
begin
if (TForm1.Label5 = ' ') then begin Label5.Caption:= '*blubb*'; end else begin Label5.Caption:= ' '; end; end; |
Re: if...then...else
Punkt eins wurde gestrichen ... müll
2. Bitte verwende mal die Delphi-Tags, dann weir der Code hervorgehoben. (geht mit den Knöpfen über dem Eingabefeld) 3. Welche fehlermeldung bringt er, und welche Zeile ist markiert? |
Re: if...then...else
Ich würde dir Empfehlen:
Mach eine globale Variable (oder ein private-Member der Form) CurrentLabel vom Typ TLabel. Im FormCreate dann ein CurrentLabel := Label1; Alle Eingaben gehen jetzt ins Label 1 In den ButtonXClicks machst du dann: CurrentLabel.Caption := CurrentLabel.Caption + '2'; Und in der Plus-Button-Methode kannst du dann ein CurrentLabel := Label4;oder so machen und alle Eingaben landen in Label 4 ;) |
Re: if...then...else
Delphi-Quellcode:
soll denn label5 kein Zeichen enthalten oder ein Leerzeichen?
if (Label5.caption = '') then
begin Label5.Caption:= '*blubb*'; end else begin Label5.Caption:= ''; end; end; Grüße Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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