Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Inkompatible Typen bei Record
Dude566 - Do 17.09.09 16:58
Titel: Inkompatible Typen bei Record
ich bekomme in folgendem Code immer die Fehlermeldung es wären inkompatible Typen was eigentlich nicht sein, es sei denn ich habe mal wieder einen Denkfehler. ^^
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:
| TDaten = record vorname, nachname : string[30]; geburtstag : string[15]; telefon, mobil : string[20]; email, icq, msn, homepage : string[64]; end;
var Form1: TForm1; daten : array of TDaten; counter : integer;
procedure TForm1.AddDataClick(Sender: TObject); begin Inc(counter); SetLength(daten, counter); daten[counter-1].vorname := edVornameAdd; daten[counter-1].nachname := edNachnameAdd; daten[counter-1].geburtstag := edBDayAdd; daten[counter-1].telefon := edTeleAdd; daten[counter-1].mobil := edMobilAdd; daten[counter-1].email := edEmailAdd; daten[counter-1].icq := edIcqAdd; daten[counter-1].msn := edMsnAdd; daten[counter-1].homepage := edWebAdd; end; |
Ich bekomme den Fehler bei allen Zuweisungen.
Gruß Dude566
Narses - Do 17.09.09 17:00
Moin!
Du willst doch bestimmt auch die Eigenschaft der VCL-Controls angeben, oder? :zwinker:
Delphi-Quelltext
1: 2:
| daten[counter-1].vorname := edVornameAdd.Text; |
cu
Narses
Dude566 - Do 17.09.09 17:02
oh mein Gott!!!! Wie peinlich.... ich hab das doch net gesehn. ^^ :oops: :oops: :oops: :oops:
Edit: Hier seh ich aber nix was ich vergessen haben sollte und trotzdem kann ich die Daten aus der typisierten Datei nicht in mein dynamisches Array einlesen. Inkompatible Typen : TDaten und ShortString.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| var datei : file of TDaten;
while not EOF(datei) do begin SetLength(daten, counter+1); read(datei, daten[counter].vorname); read(datei, daten[counter].nachname); read(datei, daten[counter].geburtstag); read(datei, daten[counter].telefon); read(datei, daten[counter].mobil); read(datei, daten[counter].email); read(datei, daten[counter].icq); read(datei, daten[counter].msn); read(datei, daten[counter].homepage); Inc(counter); end; |
Boldar - Do 17.09.09 18:05
Du musst dass alles auf einmal in eine variable vom Typ TDaten laden. Sagt er dir doch schon?
Yogu - Do 17.09.09 19:07
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var datei: file of TDaten; begin while not EOF(datei) do begin SetLength(daten, Length(daten)+1); Read(datei, High[daten]); end; |
Das reicht. Ich hab mir erlaubt, deine schöne Variable
counter durch die sowieso schon gespeicherte Länge des Arrays
daten zu ersetzen (vorausgesetzt natürlich,
counter ist tatsächlich ein Array).
Edit: Danke,
Flamefire :oops:
Flamefire - Do 17.09.09 19:58
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| var datei: file of TDaten; begin while not EOF(datei) do begin SetLength(daten, Length(daten)+1); Read(datei, High[Daten]); end; |
müsste es heißen ;-)
Dude566 - Do 17.09.09 21:38
Achso stimmt das habe ich garnicht beachtet.
Yogu hat folgendes geschrieben : |
Das reicht. Ich hab mir erlaubt, deine schöne Variable counter durch die sowieso schon gespeicherte Länge des Arrays daten zu ersetzen (vorausgesetzt natürlich, counter ist tatsächlich ein Array).
|
Du meinst wohl daten ein Array ist, denn counter ist ja der Zähler den ich zum Zählen der Einträge verwendet habe, so haben wir es in der Schule gelernt. :roll:
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!