Autor Beitrag
CurdledMilk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Di 31.05.05 11:04 
Hallo ihr:

Ich kann zwar speichern aber der text wird dann nicht mit gespeichert. Sondern nur ne lehre txt.datei. Das is ein bisl komisch weil wenn ich eine texdatei lade, und da was lösche kann ich das bearbeitete speichern, wenn ich aber was dazu schreibe kommt dies wieder nicht mit in die textdatei.

Hier mein Quelltext:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, ToolWin, ImgList,Contnrs;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Neu1: TMenuItem;
    ffnen1: TMenuItem;
    Speichern1: TMenuItem;
    Speichernunter1: TMenuItem;
    Drucken1: TMenuItem;
    Schlieen1: TMenuItem;
    Programmbeenden1: TMenuItem;
    Bearbeiten1: TMenuItem;
    Rckgngig1: TMenuItem;
    Ausschneiden1: TMenuItem;
    Kopieren1: TMenuItem;
    Einfgen1: TMenuItem;
    AllesMarkieren1: TMenuItem;
    Lschen1: TMenuItem;
    Format1: TMenuItem;
    Schrifft1: TMenuItem;
    N3: TMenuItem;
    Hilfe1: TMenuItem;
    Information1: TMenuItem;
    FontDialog1: TFontDialog;
    SaveDialog1: TSaveDialog;
    OpenDialog1: TOpenDialog;
    PrintDialog1: TPrintDialog;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    Ausrichtung1: TMenuItem;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    ToolButton16: TToolButton;
    ToolButton17: TToolButton;
    ToolButton18: TToolButton;
    ToolButton19: TToolButton;
    ToolButton20: TToolButton;
    ToolButton21: TToolButton;
    ToolButton22: TToolButton;
    ToolButton23: TToolButton;
    ToolButton24: TToolButton;
    ToolButton25: TToolButton;
    ToolButton26: TToolButton;
    ToolButton27: TToolButton;
    ToolButton28: TToolButton;
    ToolButton29: TToolButton;
    ImageList1: TImageList;

    procedure FormCreate(Sender: TObject);

    procedure Neu1Click(Sender: TObject);
    procedure ffnen1Click(Sender: TObject);
    procedure Speichernunter1Click(Sender: TObject);
    procedure Speichern1Click(Sender: TObject);



  private
    { Private-Deklarationen }
  public
    pfad :string;
  end;

var
  Form1: TForm1;
  Dateien: TObjectList;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Dateien := TObjectList.Create(true);
end;



procedure TForm1.Neu1Click(Sender: TObject);
var Form2: TForm2;
begin
Form2 := TForm2.Create(nil);
Dateien.Add(Form2);
Form2.Show;
end;





procedure TForm1.ffnen1Click(Sender: TObject);
begin
   if OpenDialog1.Execute then
    begin
      Form2.RichEdit1.Lines.LoadFromFile (OpenDialog1.FileName);
      Form2.Show;
   end;

end;

procedure TForm1.Speichernunter1Click(Sender: TObject);
begin
if SaveDialog1.Execute then
  try
    Form2.RichEdit1.Lines.SaveToFile(SaveDialog1.FileName+'.txt');
    Pfad := SaveDialog1.FileName;
  except
    ShowMessage('Fehler beim Speichern.');
  end;
end;



procedure TForm1.Speichern1Click(Sender: TObject);
begin
begin
 if Pfad <> '' then
  form2.RichEdit1.lines.savetofile(pfad)
  else
  ShowMessage('Erst Speichern unter');
end;
end;

end.


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm2 = class(TForm)
    RichEdit1: TRichEdit;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

end.


Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 28

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Di 31.05.05 11:44 
ich würde das etwas anders machen
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Speichernunter1Click(Sender: TObject);  
begin  
if SaveDialog1.Execute then  
  try  
    Form2.RichEdit1.Lines.SaveToFile(SaveDialog1.FileName);
    Pfad := SaveDialog1.FileName;  
    Speichern1.enabled := true; //vorher false
  except  
    ShowMessage('Fehler beim Speichern.');  
  end;  
end;  
 
procedure TForm1.Speichern1Click(Sender: TObject);  
begin  
 if fileexists(Pfad) then  
   form2.RichEdit1.lines.savetofile(pfad);  
end;

aber es müsste eigentlich funktionieren, was geht denn nicht, speichern oder speichern unter... ? oder beides ?

kann an der form2 liegen, warum erstellst du die eigentlich zur laufzeit, gibt es da einen grund für ? daran wirds wohl liegen :!:
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Di 31.05.05 12:22 
jo jetzt gehts aber wenn ich mehrer Richedit forms geöffnet habe speicherts nich das markierte Form sondern immer das erste irgend wie heißen die auch alle form2 grummel.
Kannst du da noch mal helfen.

PS:
was meintest du mit:
kann an der form2 liegen, warum erstellst du die eigentlich zur laufzeit, gibt es da einen grund für ? daran wirds wohl liegen
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 28

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Di 31.05.05 13:30 
das meine ich:
Zitat:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.Neu1Click(Sender: TObject);  
var Form2: TForm2;  
begin  
Form2 := TForm2.Create(nil);  
Dateien.Add(Form2);  
Form2.Show;  
end;

CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Di 31.05.05 14:28 
Aber wie kann ich das anders machen. Das is ja der befehl für den neu code. Wenn ich das jetzt so sehe kann ich mein MDI Texteditor trotzdem nur als SDI Texteditor nutzen zumindestens wenn ich speichern will. :(
Was muss ich da umändern?

wäre schön wenn du mir noch mal helfen könntest. Vielen dank
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Di 31.05.05 14:59 
Hi,

schau dir mal die Eigenschaft ActiveMDIChild vom TForm an.
Damit bekommst du das Gerade aktive Fenster und kannst dann von diesem den Text speichern.
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Di 31.05.05 15:37 
Uff das is schwierig. kannst du mir bitte noch zeigen wo und in welcher form ich das einfügen muss.

vielen dank schon ma!
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Di 31.05.05 15:56 
Wenn ich dein Programm richtig verstanden habe, ist Form1 dein Hauptfenster.
Dann Zeigt Form1.ActiveMDIChild auf das MDI Fenster mit dem Fokus.


verwende zum speichern einfach so etwas: (ungetestet)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Speichernunter1Click(Sender: TObject);
begin
  if Form1.ActiveMDIChild<>NIL then   // nur speichern wenn MDI-Child Fokus hat
  begin
    if SaveDialog1.Execute then
    try
      (Form1.ActiveMDIChild as TForm2).RichEdit1.Lines.SaveToFile(SaveDialog1.FileName+'.txt');
      Pfad := SaveDialog1.FileName;
    except
      ShowMessage('Fehler beim Speichern.');
    end;
  end;
end;


Nun wird immer der Text vom aktiven Fenster gespeichert.
CurdledMilk Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Di 31.05.05 16:09 
Jäh...
cool vielen Dank jetzt geht alles. :D :D :D :!: