Delphi RECORD global deklarieren!?

killertomate285

Lt. Commander
Registriert
Mai 2011
Beiträge
1.212
Ihr habt eben so grandios und schnell geholfen, BITTE tut es nochmal!;)

Ich habe in meiner Anwendung einen Record, wie folgt:

Code:
procedure TForm1.FormCreate(Sender: TObject);     
     type Tneptun = record
     Bungalow: byte;
     Vorname: string[20];   // Pers.Daten und Wohnadresse des Mieters
     Nachname: string[20];
     Geboren: string[10];
     Stadt: string[30];     // incl.PLZ
     TelNr: string[30];
     HandyNr: string[30];
     Mail: string[30];
     Vertragvom: string[10]; // Datum
     Vertragbis: string[10]; // Datum
     Miete: real;
     Zaehlerstand: integer; // Daten zum betr. Bungalow
     Zvom: string[10];      // Zählerstand vom: Datum
     Wasserstand: integer;
     Wvom: string[10];      // Wasserstand vom: Datum
     Offen: real;
     OffenSeit: string[10]; // Datum
     end;

var Bungalow: Array[1..13] of Tneptun;
    i,j: integer;
    f23: file of Tneptun;

begin
assignfile(f23,'D:\rec.dat');
reset(f23);
i:=0;
while not eof(f23) do
      begin inc(i);
      read(f23,Bungalow[i]);
      Mieter[i]:='Bungalow '+inttostr(Bungalow[i].Bungalow);
      end;
closefile(f23);
//...
end;

Das klappt alles sehr gut, aber genau diese Deklaration habe ich zur Zeit in 4 versch. Proceduren,
da ich auch aus diesen 4 Proceduren die Record-Daten nutze. Das ist doch krank, was ich da mache:(

4 mal Type record=
4 mal var Bungalow: Array[1..13] of Tneptun;
4 mal var f23: file of Tneptun;
4 mal reseten, 4 mal einlesen, 4 mal closen:freak:

Was ich weiß, so darf es nicht sein, aber was ich nicht weiß, wie ich diesen Record global(!)
UND NUR ein einziges Mal deklariere!?
Wenn ich diese Deklaration global unter type mache, kriege ich wieder einmal bei:
var Bungalow: Array[1..13] of Tneptun; Unbekannter Bezeichner 'Tneptun'

In den einzelnen Proceduren klappt alles bestens, doch den Code so oft wiederholen?? Nit gut!

In meinem Zimmer sitzt der Fehler immer vorm Computer..
 
Hallo,

am Anfang von deiner Unit Tform1 steht:

type

rNeptun=record
//hier deine Dinger rein
test : double;
end;

Tform1 = class(TForm)

public
Bungalow : array[1..13] of rNeptun;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
Bungalow[1].test := 0.0;
end;

Eventuell so... Muss aber gestehen, dass ich nicht alles so ganz verstanden habe, was du da beschreibst. Deklarationen in procedures/functions gelten auch nur hier... Global verfügbar muss halt auch global definiert werden...

gruß
 
Hallo HptMumm!


Habe, wie vorher auch, den Record global deklariert,
nur eben jetzt die Variable Bungalow: Array[1..13] of Tneptun unter public deklariert.
So klappt es endlich, NO ERRORS!

Das konnte ich nicht wissen! NOCHMALS VIELEN DANK!!!
 
Zurück
Oben