Błąd "Array type required"

0

Chciałem zrobić program, który elementy z StringGrid'a zapisze w formie tablicy, upchnie to do recordu i zapisze do pliku, ale pojawił się błąd "Array type required"

Jest record

 type
 Tstar = record
    name: array[0..500] of char;
    phone: array[0..500] of char;
    mail: array[0..500] of char;
 end;

i jest zapisywanie StringGrid'a

procedure TForm1.Zapiszbaz1Click(Sender: TObject);
var
 starrecord:Tstar;
 starfile:file of Tstar;
 i:integer;
begin
 assignfile(starfile,'starfile.dat');
 reset(starfile);
 for i:= 1 to stringgrid1.RowCount do
  begin
   starrecord.name[1,i]:=StringGrid1.Cells[1,i];   <-Tu pojawia się błąd
   starrecord.phone[1,i]:=StringGrid1.Cells[2,i];   <- ''
   starrecord.mail[2,i]:=StringGrid1.Cells[3,i];      <- ''

   write (starfile, starrecord);
  end;
 closefile(starfile);
end; 

Dlaczego się to blokuje ?

0

A jakim obiektem jest wartość zwracana przez StringGrid1.Cells[1,i] ?

0

String, tylko że jeżeli na tablicy zmienię na string, to wywali mi
[Error] Unit1.pas(68): Type 'Tstar' needs finalization - not allowed in file type

0
for i:= 1 to stringgrid1.RowCount do

Wywali CI błąd. Zrób:

for i:= 0 to stringgrid1.RowCount-1 do
0

Dalej to samo, i przy "name: array[0..500] of char;" i przy "name: array[0..500] of String;" tylko że przy ym drugim wyskakuje jeszcze błąd z tą finalizacją.

1
  1. name:string[64];
  2. for i:= 1 to stringgrid1.RowCount-1 do
  3. starrecord.name:=StringGrid1.Cells[1,i];
0

Teraz działa, niepotrzebnie kombinowałem z tymi tablicami, dzięki za szybką odpowiedź.

1 użytkowników online, w tym zalogowanych: 0, gości: 1