Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questiontype TMyRecord = record Firstname, LastName : string [30]; BirthDay : TDateTime; Age: integer; end;
const FileName = 'records.Dat'; {Initialise les valeurs d'un enregistrement avec le contenu des contrôles de saisie} procedure TForm1.SetRecordValues(var ARecord: TMyRecord); begin with ARecord do begin FirstName := edFirstName.Text; LastName := edLastName.Text; TryStrToDate(edBirthDay.Text, BirthDay); Age := StrToIntDef(edAge.Text, 0); end ; end; {Remplit les contrôles de saisie avec les valeurs d'un enregistrement} procedure TForm1.GetRecordValues(const ARecord: TMyRecord); begin with ARecord do begin edFirstName.Text : = FirstName; edLastName.Text := LastName; try edBirthDay.Text := DateToStr(BirthDay); except edBirthDay.Text := 'Date incorrecte'; end ; edAge.Text : = IntToStr(Age); end; end; procedure TForm1.btnWriteToStreamClick(Sender: TObject); var Stream: TFileStream; MyRecord: TMyRecord; begin SetRecordValues(MyRecord); Stream := TFileStream.Create(FileName, fmCreate or fmShareDenyNone); try Stream.Write(MyRecord, SizeOf(MyRecord)); finally Stream.Free; end; {try..finally} end; {Efface le contenu de tous les contrôles d'édition} procedure TForm1.ClearEdits; var i: integer; begin for i : = 0to ComponentCount - 1do if Components[i] is TEdit then TEdit(Components[i]).Clear; end; procedure TForm1.btnLoadFromStreamClick(Sender: TObject); var Stream: TFileStream; MyRecord: TMyRecord; begin ClearEdits; Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone); try Stream.Read(MyRecord, SizeOf(MyRecord)); finally Stream.Free; end; {try..Finally} GetRecordValues(MyRecord); end;