![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
"Сохранить" и "Сохранить как..". [D7, XP]
Vitek2 © (2007-10-05 18:04:00)Подскажите как сделать так чтобы кнопки "Сохранить" и "Сохранить как.." работали правельно, как например в блакноте. Вот я открыл прогу, написал что-нибудь в RichEdit. Если я нажимаю "сохранить" и файл уже сохранён на диске то изменения сохраняются в него же, а если файла нет на диске то Появляется диалоговое окно SaveDialog.
И ещё вопрос:У меня на форме есть компонент PageControl, на каждой вкладке имеется компонент RichEdit. мне надо сделать так, чтобы в заголовке вкладки отображалось имя файла(не полный путь, а только имя). А при перемещениие между вкладками в StatusBar отображался полный путь файла.
Gydvin (2007-10-08 07:37:00) [1]Все еще не думаем?
...
private
{ Private declarations }
Names:array of string;
filename:string;
public
...
procedure TForm1.PageControl1Change(Sender: TObject);
begin
caption := Names[pagecontrol1.ActivePageIndex];
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
PageControl1.Pages[0].Caption:=extractfilename(filename);
setlength(names,length(names)+1);
names[length(names)-1):=filename;
end;
Vitek2 (2007-10-08 00:28:00) [2]Удалено модератором
Vitek2 (2007-10-08 00:28:00) [3]Я знаю что событие OnChange. А вот как получить имя файла с выбраной вкладки.
TRichEdit(PageControl1.ActivePage.Tag).Lines.....;
Что мне тут нужно дописать или исправить?
Anatoly Podgoretsky (2007-10-08 00:23:00) [4]> Vitek2 (08.10.2007 00:09:21) [21]
OnChange
Vitek2 (2007-10-08 00:09:00) [5]Значит на форме имеется компонент PageControl. Мне нужно что бы при перемещениее между вкладками компонента в строку состояния выводился путь файла выбраной вкладки.
При открытии файла путь выводится, а вот чтобы он изменялся при перемещении.. что-то не выходит.
Gydvin (2007-10-06 13:58:00) [6]Да блин чего тут сложного, просто подумать чуть.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
Save: TButton;
SaveAs: TButton;
RichEdit1: TRichEdit;
SaveDialog1: TSaveDialog;
procedure SaveClick(Sender: TObject);
procedure SaveAsClick(Sender: TObject);
private
{ Private declarations }
FileName:string;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.SaveClick(Sender: TObject);
begin
if filename='' then
begin
saveas.Click;
end else
begin
richedit1.Lines.SaveToFile(filename);
end;
end;
procedure TForm1.SaveAsClick(Sender: TObject);
begin
SaveDialog1.FileName:='';
if (SaveDialog1.Execute)and(SaveDialog1.FileName<>'') then
begin
filename:=SaveDialog1.FileName;
richedit1.Lines.SaveToFile(filename);
end;
end;
end.
TIF (2007-10-06 11:30:00) [7]
> как например в блакноте
Афтар! Научись гофорить, а потом остальное приложится.
Кстати, есть много статей в инете, про создание небольших текстовых редакторов-примитивов (типа "блокнот"), с исходниками и подробным объяснением.
Так что www.ya.ru -> go!
Denis_ (2007-10-06 11:08:00) [8]
> Компилятор мочлал.
А что он должен был делать?! Орать тебе : "ТЫ ДОПУСТИЛ ЛОГИЧЕСКУЮ ОШИБКУ!!!"?!
Virgo_Style (2007-10-05 21:52:00) [9]Vitek2 © (05.10.07 21:36) [16]
ExtractFileName
Vitek2 (2007-10-05 21:36:00) [10]Компилятор мочлал.
PageControl1.ActivePage.Caption:=SaveDialog1.FileName;
В заголовок вкладки выводится полное имя файла(с путём). Как сделать так чтобы выводилось только имя файла.(xxx.txt).
Плохиш (2007-10-05 21:16:00) [11]
> Вася Правильный (05.10.07 20:30) [14]
> такое ощущение, что ты нас за компилятор принимаешь
А что, есть сомнения?
Вася Правильный (2007-10-05 20:30:00) [12]такое ощущение, что ты нас за компилятор принимаешь
а сам в блокноте пишешь, не имея дельфи
Vitek2 (2007-10-05 20:20:00) [13]Вот блин. Опять невнимателен.
b z (2007-10-05 20:16:00) [14]if FileName='' then->;<-
Vitek2 (2007-10-05 20:09:00) [15]
if FileName='' then;
if SaveDialog1.Execute then
begin
TRichEdit(PageControl1.ActivePage.Tag).Lines.SaveToFile(SaveDialog1.FileName);
FileName:=SaveDialog1.FileName;
end
else
TRichEdit(PageControl1.ActivePage.Tag).Lines.SaveToFile(FileName);
end;
Все равно SaveDialog появяется.
Anatoly Podgoretsky (2007-10-05 19:35:00) [16]
> Vitek2 © (05.10.07 19:03) [4]
FileName и SaveDialog1.FileName разные вещи, не говоря уже о других ошибках.
Priority (2007-10-05 19:33:00) [17]Новый
Memo.Lines.Clear;
FileName := '';
Открытие
if OpenDialog.Execute then
begin
Memo.Lines.LoadFromFile(OpenDialog.FileName);
FileName := OpenDialog.FileName;
end;
Сохранение
if FileName='' then
if SaveDialog.Execute then
begin
Memo.Lines.SaveToFile(SaveDialog.FileName);
FileName := SaveDialog.FileName;
end
else
else
Memo.Lines.SaveToFile(FileName);
OSman (2007-10-05 19:28:00) [18]SaveDialog1.Execute возвращает True при "Сохранить" и False при "Отмена"
Vitek2 (2007-10-05 19:16:00) [19]Я открыл через Файл -> Открыть. В RichEdit Заносится информация.
Вася Правильный (2007-10-05 19:07:00) [20]не вижу открытия