Hallo,
könntet Ihr mal einen Blick auf mein Programm werfen?
Ich möchte den Eintrag einer Radiogroup - ich nenne sie farben mit den Items rot, gelb, blau - abspeichern.
Nur bekomme ich das nicht hin! Nehme ich drei Radiobuttons, funktioniert das Speichern und Öffnen tadellos
Aber der RadioGroup und ihren Items kann ich nichts zuordnen was funktioniert.
Vielleicht könnt Ihr mir ja helfen!
Viele Grüsse
moperswings
Delphi-Quellcode:
private
{ Private-Deklarationen }
procedure dsSave; //Datensatz Speichern
procedure dsOpen; //Datensatz Öffnen
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
type
TDaten = record
farben: ??? // hier sollte die RadioGroup angegeben werden
rot: boolean; // Radiobutton1
gelb: boolean;// Radiobutton2
blau: boolean;// Radiobutton3
end;
var
Daten: array of TDaten;
Index: Byte = 0;
dsmax: Word = 1;
Stream: TFileStream;
{$R *.dfm}
procedure TForm1.dsSave;
begin
with Daten[Index] do begin
farben := ???
rot := RadioButton1.Checked;
gelb := RadioButton2.Checked;
blau := RadioButton3.Checked;
end;
end;
procedure TForm1.dsOpen;
begin
with Daten[Index] do begin
??? := farben;
RadioButton1.Checked := rot;
RadioButton2.Checked := gelb;
RadioButton3.Checked := blau;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SetLength(Daten, dsmax);
end;
procedure TForm1.close1Click(Sender: TObject);
begin
close;
Daten := nil;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
action := cafree;
end;
procedure TForm1.save1Click(Sender: TObject);
var
i: integer;
begin
If SaveDialog1.Execute then begin
dsSave;
Stream := TFileStream.Create(SaveDialog1.FileName, fmCreate);
Stream.WriteBuffer(dsmax, SizeOf(Word));
for i := dsmax - 1 downto 0 do
Stream.WriteBuffer(Daten[i], SizeOf(TDaten));
Stream.Free;
Stream := nil;
end;
end;
procedure TForm1.open1Click(Sender: TObject);
var
i: integer;
begin
if OpenDialog1.Execute then begin
Stream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
Stream.ReadBuffer(dsmax, SizeOf(Word));
for i := dsmax - 1 downto 0 do
Stream.ReadBuffer(Daten[i], SizeOf(TDaten));
dsOpen;
Stream.Free;
Stream := nil;
end;
end;
end.