Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

Re: 10 Richedit in eine Datei speichern und wieder auslesen

  Alt 24. Dez 2004, 17:43
So in etwa:
Delphi-Quellcode:
var
  Form1 : TForm1;
  RichEditArray: array[0..2] of TRichedit;

implementation

{$R *.dfm}

procedure SaveRichtEdit(RichEdit: TRichEdit; const Filename: string);
var
  sl : TStringList;
begin
  sl := TStringList.Create;
  try
    if FileExists(Filename) then
      sl.LoadFromFile(Filename);
    sl.Add(RichEdit.Text);
    sl.SaveToFile(Filename);
  finally
    FreeAndNil(sl);
  end;
end;

procedure LoadRichEdits;
var
  Filename : string;
  sl : TStringList;
  i : Integer;
begin
  Filename := ExtractFilePath(ParamStr(0)) + 'test.txt';
  if FileExists(Filename) then
  begin
    sl := TStringList.Create;
    try
      sl.LoadFromFile(Filename);
      for i := 0 to Min(length(RichEditArray), sl.Count) - 1 do
      begin
        RichEditArray[i].Text := sl.Strings[i];
      end;
    finally
      FreeAndNil(sl);
    end
  end;
  for i := 0 to length(RichEditArray) - 1 do
    RichEditArray[i].Visible := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i : integer;
begin
  for i := 0 to length(RichEditArray) - 1 do
  begin
    RichEditArray[i] := TRichedit.Create(Self);
    RichEditArray[i].Parent := Self;
    RichEditArray[i].SetBounds(100, 10, 550, 250);
    RichEditArray[i].Visible := False;
  end;
end;

procedure TForm1.speichernClick(Sender: TObject);
var
  Filename : string;
  i : Integer;
begin
  Filename := ExtractFilePath(ParamStr(0)) + 'test.txt';
  if FileExists(Filename) then
  begin
    if not DeleteFile(Filename) then
      ShowMessage(SysErrorMessage(GetLastError))
    else
      for i := 0 to length(RichEditArray) - 1 do
        SaveRichtEdit(RichEditArray[i], Filename);
  end;
end;

procedure TForm1.waserwillmenueClick(Sender: TObject);
var
  i : Integer;
begin
  for i := 0 to length(RichEditArray) - 1 do
    RichEditArray[i].Visible := False;
  RichEditArray[waserwillmenue.ItemIndex].Visible := True;
end;

procedure TForm1.ladenClick(Sender: TObject);
var
  i : Integer;
begin
  speichern.Visible := True;
  LoadRichEdits;
  for i := 0 to length(RichEditArray) - 1 do
    RichEditArray[i].Visible := True;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat