Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi SynEdit der aktuellen Seite abspeichern (https://www.delphipraxis.net/98765-synedit-der-aktuellen-seite-abspeichern.html)

XPLOSIV 8. Sep 2007 16:01

Re: SynEdit der aktuellen Seite abspeichern
 
Ja, da kommt Fehler Bei

Delphi-Quellcode:
begin
  with Sender as TFileSaveAs do
    DoFileSaveAs(Dialog.FileName);
Hmm, mir erscheint es unmöglich diesen Fehler auzumerzen

XPLOSIV 15. Sep 2007 09:19

Re: SynEdit der aktuellen Seite abspeichern
 
Also, der Fehler war für ne Weile weg, doch nun isser wieder da, diesmal speichert er immer die SynEdit1 der Vorherigen Seite, und wenn keiner Vorhanden ist gibt er eine Fehlermeldung aus.

Delphi-Quellcode:
procedure TForm1.DoFileOpen(fn: TFileName);
var
  ts: TTabSheet;
  se: TSynEdit;
begin
  ts := TTabSheet.Create(PageControl1);
  ts.PageControl := PageControl1;
  if fn = ''
    then ts.Caption := Format('Neu [%d]', [PageControl1.PageCount])
    else ts.Caption := ExtractFileName(fn);
  ts.Hint := fn;
  se := TSynEdit.Create(ts);
  se.Parent := ts;
  se.Align := alClient;
    se.ActiveLineColor:= $00FFFF80;
  se.Gutter.ShowLineNumbers:= TRUE;
  if fn = ''
    then se.Lines.Clear
    else se.Lines.LoadFromFile(fn);
  Files.AddObject(fn, se);
  PageControl1.ActivePage := ts;
  se.SetFocus;
end;

procedure TForm1.DoFileSaveAs(fn: TFileName);
var
  se: TSynEdit;
  i: Integer;
begin
  with PageControl1 do
    i := ActivePageIndex;
  se := TSynEdit(Files.Objects[i]);
  se.Lines.SaveToFile(fn);
  Files[i] := fn;
  if se.Modified then
    se.Modified := False;
end;
Delphi-Quellcode:
begin
  with Sender as TFileSaveAs do
    DoFileSaveAs(Dialog.FileName);
end;
Delphi-Quellcode:
begin
  with Sender as TFileOpen do
    DoFileOpen(Dialog.FileName);
end;
Hoffe jemand kann helfen...

MfG Innos

marabu 15. Sep 2007 10:12

Re: SynEdit der aktuellen Seite abspeichern
 
Hallo,

du hast deine TabSheets reorganisiert. Zu jedem TabSheet muss ein Eintrag in Files[] existieren:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Files := TStringList.Create;
  // Für jedes TabSheet ein Eintrag mit FileName, Editor
  Files.AddObject('', nil); // erstes TabSheet: kein Dateiname, kein Editor
  Files.AddObject('', SynEdit); // kein Dateiname, aber Editor vorhanden
  // Der folgende Eintrag muss weg, weil du ein TabSheet entfernt hast
  //  Files.Add(''); // kein Dateiname, kein Editor
end;
Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:42 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz