Всем привет. Помогите пожалуйста новичку.
Сейчас пишу программу Блокнот( как в Windows). Проблема в том, что OpenDialog не хочет открывать больше двух раз! Помогитеееееее.
Сейчас пишу программу Блокнот( как в Windows). Проблема в том, что OpenDialog не хочет открывать больше двух раз! Помогитеееееее.
Код:
procedure TForm1.N7Click(Sender: TObject);
var MyMsgDialog:TForm;
i:integer;
FullProgPath: PChar;
begin
if Memo1.Text<>'' then
begin
// Создаем диалог
MyMsgDialog:=CreateMessageDialog('Âû õîòèòå ñîõðàíèòü èçìåíåíèÿ â ôàéëå ?',mtConfirmation,[mbYes,mbNo,mbCancel]);
// Создаем компоненты
with MyMsgDialog do
begin
// Русифицируем кнопки
for i := 0 to MyMsgDialog.ComponentCount-1 do
if MyMsgDialog.Components[i] is TButton then
if (MyMsgDialog.Components[i] as TButton).Caption='&Yes' then
(MyMsgDialog.Components[i] as TButton).Caption:='Äà'
else
if (MyMsgDialog.Components[i] as TButton).Caption='&No' then
(MyMsgDialog.Components[i] as TButton).Caption:='Íåò'
else
if (MyMsgDialog.Components[i] as TButton).Caption='Cancel' then
(MyMsgDialog.Components[i] as TButton).Caption:='Îòìåíà';
try
Caption:='Áëîêíîò';
Height:=130;
case ShowModal of
// Обрабатываем кнопки
ID_YES:begin
Memo1.Lines.SaveToFile(SaveDialog1.FileName + '.txt');
end;
ID_NO:begin
FullProgPath:=PChar(Application.ExeName);
WinExec(FullProgPath,SW_SHOW);
Application.Terminate;
Close;
end;
ID_CANCEL:begin
MyMsgDialog.Close;
Memo1.SelStart:=0;
end;
end;
finally
// Освобождаем переменные
Free;
OpenDialog1.Free;
end;
end;
end else
begin
if not OpenDialog1.Execute then Exit else
//Если файла не существует
begin
if not FileExists(OpenDialog1.FileName) then
begin
fname:=ExtractFileName(OpenDialog1.FileName);
MyMsgDialog:=CreateMessageDialog(fname+chr(13)+'Ôàéë íå íàéäåí.'+chr(13)+'Ïðîâåðüòå ïðàâèëüíîòü èìåíè ôàéëà è ïîâòîðèòå ïîïûòêó.',mtWarning,[mbOk]);
// Создаем компоненты
with MyMsgDialog do
begin
try
Caption:='Îòêðûòü';
Height:=140;
// Обрабатываем кнопки
case ShowModal of
ID_OK:OpenDialog1.Execute;
end;
finally
// Освобождаем переменные
Free;
OpenDialog1.Free;
end;
end;
end else
begin
OpenDialog1.InitialDir:=ExtractFilePath(Application.ExeName);
fname:=ExtractFileName(OpenDialog1.FileName);
Form1.Caption:=fname+' - Áëîêíîò';
Memo1.Lines.LoadFromFile(OpenDialog1.FileName);
Memo1.SelStart:=0;
OpenDialog1.Free;
end;
end;
end;
end;