![]() |
Record-Problem - Ich machs doch wies überall steht :(
Hallo,
wir entwicklen grad in der Schule ein Programm das die Aufteilung der über 600 Schüler in ihre Projekte zum Ende des Schuljahres übernimmt. Ich dachte mir nun das ich ja zu hause ein bisschen rumpsielen könnte und stieß auf folgendes Problem.
Delphi-Quellcode:
Die Typendefs. sind in einer Extraunit, dem Projekt aber hinzugefügt und unter uses ist die Unit eingetragen.
implementation
{$R *.dfm} {!!!!!!!!!!!!!!!!!! FORMCREATE !!!!!!!!!!!!!!!!!!} procedure TForm1.FormCreate(Sender: TObject); var i :integer; a :string; schdata: Tschueler; begin AssignFile (schdata ,'schueler.pmx'); if FileExists ('schueler.pmx') then ReSet schdata else Rewrite(schdata); AssignFile (prodata,'projekte.pmx'); if FileExists ('projekte.pmx') then ReSet prodata else Rewrite(prodata); AssignFile (zuwdata,'zuweisung.pmx'); if FileExists ('zuweisung.pmx') then ReSet zuwdata else Rewrite(zuwdata); projektanzahl :=3; schueleranzahl :=3; for i:=1 to schueleranzahl do begin SG_Schueler.RowCount:=i+1; a:=IntToStr(i); SG_Schueler.Cells[0,i]:=a; end; for i:=1 to Projektanzahl do begin SG_Projekte.RowCount:=i+1; a:=IntToStr(i); SG_Projekte.Cells[0,i]:=a; end; for i:=1 to Projektanzahl do begin SG_Zuweisung.RowCount:=i+1; a:=IntToStr(i); SG_Zuweisung.Cells[0,i]:=a; end; {Schülerliste} SG_Schueler.Cells[1,0]:='Name'; SG_Schueler.Cells[2,0]:='Klasse'; SG_Schueler.Cells[3,0]:='Projektwunsch 1'; SG_Schueler.Cells[4,0]:='Projektwunsch 2'; SG_Schueler.Cells[5,0]:='Projektwunsch 3'; {Projektliste} SG_Projekte.Cells[1,0]:='Nummer'; SG_Projekte.Cells[2,0]:='Name'; SG_Projekte.Cells[3,0]:='Budget'; SG_Projekte.Cells[4,0]:='Leiter'; SG_Projekte.Cells[5,0]:='Raum / Ort'; SG_Projekte.Cells[6,0]:='Kapazität'; {Projektzuweisung} SG_Zuweisung.Cells[1,0]:='Schuelername'; SG_Zuweisung.Cells[2,0]:='Klasse'; SG_Zuweisung.Cells[3,0]:='Projekt'; end; Wenn ich nun das Teil kompilieren will, erscheint folgende Meldunge: Inkompatible Typen (genau in der Zeile wo das erste Mal AssignFile steht! Ich hoffe ihr könnt mir helfen Danke schonmal |
Re: Record-Problem - Ich machs doch wies überall steht :(
Zitat:
|
Re: Record-Problem - Ich machs doch wies überall steht :(
Hallo!
Wenn Sschueler kein "File of datentyp" ist, habe ich die Ursache - die Fehlermeldung spricht dafür! Assignfile erwartet eine File-Variable! Ggf. sollte also folgendes geändert werden:
Delphi-Quellcode:
- das ganze sinngemäß auch für die anderen Dateien!
schdata : file of sschueler;
Ach ja - bevor das nächste Problem hier auftaucht - zum n + 517532. Male: Erwarte nicht, daß Dein Programm die Dateien auch findet! Ohne Pfadangabe sucht er immer im aktuellen Verzeichnis, und das ist nicht immer das Programmverzeichnis! Ändere die Dateinamen noch ab in
Delphi-Quellcode:
bzw. lege im Formular eine Variable an, in der Du die Pfadangabe speicherst.
ExtractFilePath(ParamStr(0))+'xxx'
Gruß Dietmar Brüggendiek |
Re: Record-Problem - Ich machs doch wies überall steht :(
Zitat:
Delphi-Quellcode:
Man muss dazu sagen das mit dem SSchueler war ein Schreibfehler. Das sthet so nicht im Code;
type TSchueler=record
Vorname :String[25]; Name :String[25]; Klasse :shortint; Klasse2 :char; Wahl1,Wahl2,Wahl3:String[255]; end; schdata=file of TSchueler; |
Re: Record-Problem - Ich machs doch wies überall steht :(
Weiss denn keiner Rat? :cry: :cry: :cry:
|
Re: Record-Problem - Ich machs doch wies überall steht :(
Zitat:
Ich denke, du versuchst den Typ Schdata als Variable zu verwenden. Entferne mal das
Delphi-Quellcode:
aus deiner Typdeklaration und schreib stattdessen unter var
schdata=file of TSchueler;
Delphi-Quellcode:
schdata: file of TSchueler;
|
Re: Record-Problem - Ich machs doch wies überall steht :(
TSchueler steht stattdessen drin.
|
Re: Record-Problem - Ich machs doch wies überall steht :(
Entferne mal das
Delphi-Quellcode:
aus deiner Typdeklaration und schreib stattdessen unter var
schdata=file of TSchueler;
Delphi-Quellcode:
[/quote]
schdata: file of TSchueler;
Fast :) Man muss anscheinend das
Delphi-Quellcode:
in die Vars schreiben, dann funzt es .
schdata: file of TSchueler;
Sehr schön. DANKE an alle :mrgreen: :mrgreen: |
Re: Record-Problem - Ich machs doch wies überall steht :(
Dann hab ich gleich noch ne neue Frage:
Weiss jemand wie man neu PopUp Windows macht? Zum Beispiel für ein Optionsmenü. |
Re: Record-Problem - Ich machs doch wies überall steht :(
Neue Frage, neuer Thread. Und da hier alles geklärt ist: Geschlossen. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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 by Thomas Breitkreuz