Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Records, If, Else und Boolean


Grimsch - Mo 14.09.09 12:49
Titel: Records, If, Else und Boolean
Hallo :)
ich habe ein Problem bezüglich eines Programmes, welches grundsätzlich um Records geht. Dieses Programm ist relativ schlicht gehalten und mit einer If funktion versehen.
Allerdings kommt bei mir immer die Fehlermeldung "[Error] Unit1.pas(67): Type of expression must be BOOLEAN" und ich weiß nicht wie ich den Fehler beheben soll.

Hier mein Quelltext:

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:
62:
63:
64:
65:
66:
type
   Tschueler1 = record
    vorname, nachname: string;
end;

type
   Tschueler2 = record
    vorname, nachname: string;
end;

type
   Tschueler3 = record
    vorname, nachname: string;
end;

var
  Form1: TForm1;
  schueler1: Tschueler1;
  schueler2: Tschueler2;
  schueler3: Tschueler3;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if button3.caption:= 'Leer' then
begin
schueler1.vorname:= edit1.Text;
schueler1.nachname:= edit2.Text;
end

else
if button4.Caption:= 'Leer' then
begin
schueler2.vorname:= edit1.Text;
schueler2.nachname:= edit2.Text;
end

else
if button5.Caption:= 'Leer' then
begin
schueler3.vorname:= edit1.Text;
schueler3.nachname:= edit2.Text;
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.Text:= schueler1.vorname;
edit2.Text:= schueler1.nachname;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
edit1.Text:= schueler2.vorname;
edit2.Text:= schueler2.nachname;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
edit1.Text:= schueler3.vorname;
edit2.Text:= schueler3.nachname;
end;

end.


Man kann das was dieses Programm machen soll bestimmt noch anders machen aber so war meine Idee die mir im Kopf rumschwirrte :)
Könnt ihr da bereits einen Fehler sehen? Wenn ja bitte helft mir.


Gammatester - Mo 14.09.09 12:54

benutzte button4.Caption='Leer' statt button4.Caption:= 'Leer'.


Narses - Mo 14.09.09 12:55

Moin und :welcome: im Forum!

user profile iconGrimsch hat folgendes geschrieben Zum zitierten Posting springen:
Allerdings kommt bei mir immer die Fehlermeldung "[Error] Unit1.pas(67): Type of expression must be BOOLEAN" und ich weiß nicht wie ich den Fehler beheben soll.
Das liegt daran:
user profile iconGrimsch hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Button1Click(Sender: TObject);
begin
if button3.caption:'Leer' then // beim Vergleich nur =
begin
schueler1.vorname:= edit1.Text;
Ein Doppelpunkt-Gleich ist eine Zuweisung, keine Relation. :idea: ;)

Und dann noch ein Tipp am Rande:
user profile iconGrimsch hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
type
   Tschueler1 = record
    vorname, nachname: string;
end;

type
   Tschueler2 = record
    vorname, nachname: string;
end;

type
   Tschueler3 = record
    vorname, nachname: string;
end;

var
  Form1: TForm1;
  schueler1: Tschueler1;
  schueler2: Tschueler2;
  schueler3: Tschueler3;
Deine Schüler-Records sind doch alle gleich aufgebaut, dann kannst du auch einen Typ (="Bauanleitung") dafür nehmen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
type
   TSchueler = record
     vorname, 
     nachname: String;
   end;

var
  Form1: TForm1;
  schueler1,
  schueler2,
  schueler3: TSchueler;
cu
Narses


Grimsch - Mo 14.09.09 13:19

ah ok vielen dank leute habt mir sehr geholfen auch wenns nur ein kleiner fehler war :D