Einzelnen Beitrag anzeigen

GerMan62

Registriert seit: 25. Okt 2006
9 Beiträge
 
#1

Record mit DCom übertragen

  Alt 30. Sep 2009, 20:57
Hallo Gemeinde.

Ich habe folgenden Programmcode.
Delphi-Quellcode:
type
  TMesswert = record
                Bezeichnung : string[80]; // z.B. EMK A1-A2
                Wert : string[80]; // z.B. 185.4
                Einheit : string[80]; // z.B. V
                Min_Wert : string[80]; // z.B. 180.0
                Max_Wert : string[80]; // z.B. 190.0
              end;

  TMessreihe = record
                 Name : string[80]; // z.B. Messwerte oder VDE-Messwerte
                 Messwert : array[0..100] of TMesswert;
               end;

procedure TForm2.Button3Click(Sender: TObject);
var
  Messreihe : TMessreihe;
  P : Pointer;
  Temp : OleVariant;
  X : Integer;
begin
  for X := 0 to 50 do
  begin
    Messreihe.Messwert[X].Bezeichnung := SD_Grid.Cells[0,X + 1];
    Messreihe.Messwert[X].Wert := SD_Grid.Cells[1,X + 1];
    Messreihe.Messwert[X].Einheit := SD_Grid.Cells[2,X + 1];
    Messreihe.Messwert[X].Min_Wert := SD_Grid.Cells[3,X + 1];
    Messreihe.Messwert[X].Max_Wert := SD_Grid.Cells[4,X + 1];
  end;
  
  // in ein PSafeArray packen
  Temp := VarArrayCreate([0, SizeOf(Messreihe) - 1], varByte);
  P := VarArrayLock(Temp);
  try
    Move(Messreihe, P^, SizeOf(Messreihe));
  finally
    VarArrayUnlock(Temp);
  end;
end;
Nun meine Fragen:
Packe ich das ganze richtig in ein PSafeArray ein?
Kann ich die Record-Strucktur auch so schreiben?
Delphi-Quellcode:
type
  TMesswert = record
                Bezeichnung : string; // z.B. EMK A1-A2
                Wert : string; // z.B. 185.4
                Einheit : string; // z.B. V
                Min_Wert : string; // z.B. 180.0
                Max_Wert : string; // z.B. 190.0
              end;

  TMessreihe = record
                 Name : string; // z.B. Messwerte oder VDE-Messwerte
                 Messwert : array[0..100] of TMesswert;
               end;
Vorab schonmal Danke für eure Hilfe.
  Mit Zitat antworten Zitat