Witam
Piszę prosty edytor tekstów, właściwie to napisałem i mam z nim pewien problem, a mianowicie z zapisywaniem napisanego tekstu do pliku.
Problem polega na tym ze problem tworzy plik bez rozszerzenia. Gdy ustawiam wybór rozszerzenia na wszystkie pliki i wpisuje ręcznie rozszerzenie to działa lecz gdy jest ustawione to tworzy tylko plik.
O to kod źródłowy:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, Printers;
type
TForm1 = class(TForm) MainMenu1: TMainMenu;
Plik1: TMenuItem;
Nowy1: TMenuItem;
zapisz1: TMenuItem;
zakocz1: TMenuItem;
oprogramie1: TMenuItem;
Memo1: TMemo;
otwrz1: TMenuItem;
Credits1: TMenuItem;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
FontDialog: TFontDialog;
Drukuj1: TMenuItem;
Edycja1: TMenuItem;
Czcionka1: TMenuItem;
Kopiuj1: TMenuItem;
Wklej1: TMenuItem;
Wytnij1: TMenuItem;
procedure Nowy1Click(Sender: TObject);
procedure Zakocz1Click(Sender: TObject);
procedure zapisz1Click(Sender: TObject);
procedure oprogramie1Click(Sender: TObject);
procedure otwrz1Click(Sender: TObject);
procedure Credits1Click(Sender: TObject);
procedure Drukuj1Click(Sender: TObject);
procedure Kopiuj1Click(Sender: TObject);
procedure Wytnij1Click(Sender: TObject);
procedure Wklej1Click(Sender: TObject);
procedure Czcionka1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Nowy1Click(Sender: TObject);
begin
Memo1.clear
end;
procedure TForm1.Zakocz1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.zapisz1Click(Sender: TObject);
begin
if SaveDialog.Execute then Memo1.lines.SaveToFile(SaveDialog.FileName);
end;
procedure TForm1.oprogramie1Click(Sender: TObject);
begin
showmessage('Note Edit 1.1')
end;
procedure TForm1.otwrz1Click(Sender: TObject);
begin
if OpenDialog.Execute then Memo1.lines.LoadFromFile(OpenDialog.FileName);
end;
procedure TForm1.Credits1Click(Sender: TObject);
begin
ShowMessage('Autor: DAN - Daniel Górka');
end;
procedure TForm1.Drukuj1Click(Sender: TObject);
var
i:integer;
f:TextFile;
begin
AssignPrn(f);
Rewrite(f);
try
Printer.Canvas.Font.Style:=[fsbold];
Writeln(f);
for i:=0 to Memo1.Lines.Count-1 do
Writeln(f,Memo1.lines[i]);
finally
CloseFile(f);
end;
end;
procedure TForm1.Kopiuj1Click(Sender: TObject);
begin
Memo1.CopyToClipboard;
end;
procedure TForm1.Wytnij1Click(Sender: TObject);
begin
Memo1.CutToClipboard;
end;
procedure TForm1.Wklej1Click(Sender: TObject);
begin
Memo1.PasteFromClipboard;
end;
procedure TForm1.Czcionka1Click(Sender: TObject);
begin
if FontDialog.execute then Memo1.Font:=FontDialog.Font;
end;
end.
a tutaj sama procedura odpowiedzialna za zapis
procedure TForm1.zapisz1Click(Sender: TObject);
begin
if SaveDialog.Execute then Memo1.lines.SaveToFile(SaveDialog.FileName);
end;
Filtry komponentu SaveDialog:
Filter Name | Filter
Plik programu Note Edit (*.nt) |*.nt
Plik tekstowy (*.txt)|*.txt
Wszystkie pliki|*.*
Bardzo proszę o pomoc