-4

私はのレコード構造を持っています

  Tperson = record
// setting/declaring the record
firstname: string[30];
surname: string[30];
form: string[5];
catscore: real;
predictedgrade: string[2];
giftedandtalented: string[255];
learningdifficulties: string[255];
behaviouraldifficulties: string[255];

そして、次のコードを使用して配列として読み取りました

procedure TForm1.Button1Click(Sender: TObject);
var
studentarray:array of Tperson;
studentarraycopy:array of tperson;
   i,j,c : integer;
begin
 i:=0;
 reset(personFile);
while not EOF(personfile) do
begin
i:=i+1;
read(personfile, studentArray[i]);

このレコードの配列を並べ替えてから、このコードを使用して高、低、高、低の順に並べ替えます。

  procedure SerratedSort(var A: array of TPerson);
  var
 s: Integer;
i: Integer;
t: TPerson;
 begin
s := Length(A);
 i := 0;
 while i < s do begin
   t := A[s - 1];
   System.Move(A[i], A[i + 1], (s - i + 1) * SizeOf(TPerson));
   A[i] := t;
   i := i + 2;
  end;
  end;

この並べ替えの結果は、文字列グリッドを埋めるために使用される配列のコピーになりますが、レコードの配列を使用して文字列グリッドを埋めるにはどうすればよいですか?

4

2 に答える 2

1

String Grid には、カスタム レコードに関する知識や関連付けはありません。グリッドが表すデータに基づいて、グリッドにデータを入力する方法を自分で決定する必要があります。Delphi には、レコードからグリッドにデータを配置するための標準的な操作はありません。これは、レコードにさまざまなタイプのデータを含めることができるためです。これらのデータは、文字列では表現できない場合があります。

インターネットや Delphi の StringGrid に関するドキュメントにあるリソースを使用して、StringGrid がどのように機能するかを調べる必要があります。

于 2013-05-12T20:52:19.883 に答える