Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   if...then...else (https://www.delphipraxis.net/69938-if-then-else.html)

Jarie 22. Mai 2006 16:18


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:
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;
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*...
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]

Sharky 22. Mai 2006 16:20

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;

Jarie 22. Mai 2006 16:25

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:
begin
if (Label5.Caption = ' ') then
begin
Label5.Caption:= '*blubb*;
end;
else
begin
Label5.Caption:= ' ';
end;
end
Nur mal als Beispiel meines Nichtkönnens xD.

[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]

Sharky 22. Mai 2006 16:35

Re: if...then...else
 
Zeige mal die gesamte Methode. Also:
Delphi-Quellcode:
procedure xxxxxxxxx
begin
.
.
end;

markusj 22. Mai 2006 16:35

Re: if...then...else
 
Nach dem '*blubb fehlt ein '!
EDIT: und dem letzten End fehlt ein ;

alzaimar 22. Mai 2006 16:39

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.

Jarie 22. Mai 2006 16:44

Re: if...then...else
 
Okay, ich fang nochmal an:

Delphi-Quellcode:
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;
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).
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:
begin
if (TForm1.Label5 = ' ') then
begin
Label5.Caption:= '*blubb*';
end
else
begin
Label5.Caption:= ' ';
end;
end;
[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]

markusj 22. Mai 2006 16:47

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?

jfheins 22. Mai 2006 16:49

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 ;)

Klaus01 22. Mai 2006 16:49

Re: if...then...else
 
Delphi-Quellcode:
if (Label5.caption = '') then
  begin
    Label5.Caption:= '*blubb*';
  end
else
  begin
    Label5.Caption:= '';
  end;
end;
soll denn label5 kein Zeichen enthalten oder ein Leerzeichen?

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 Uhr.
Seite 1 von 5  1 23     Letzte »    

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