Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.28;
Скачать: CL | DM;

Вниз

"Сохранить" и "Сохранить как..".   Найти похожие ветки 

 
Vitek2 ©   (2007-10-05 18:04) [0]

Подскажите как сделать так чтобы кнопки "Сохранить" и "Сохранить как.." работали правельно, как например в блакноте. Вот я открыл прогу, написал что-нибудь в RichEdit. Если я нажимаю "сохранить" и файл уже сохранён на диске то изменения сохраняются в него же, а если файла нет на диске то Появляется диалоговое окно SaveDialog.

И ещё вопрос:У меня на форме есть компонент PageControl, на каждой вкладке имеется компонент RichEdit. мне надо сделать так, чтобы в заголовке вкладки отображалось имя файла(не полный путь, а только имя). А при перемещениие между вкладками в StatusBar отображался полный путь файла.


 
KSergey ©   (2007-10-05 18:15) [1]

Хотелось бы узнать что  именно из перечисленного вами уже сделано и в каких именно местах возникли затруднения.
К стати, еще у преподавателя вполне можно спросить.


 
stone ©   (2007-10-05 18:16) [2]


> Вот я открыл прогу, написал что-нибудь в RichEdit. Если
> я нажимаю "сохранить" и файл уже сохранён на диске

Какой файл? Никакой связи с каким-либо файлом ты не указал.


> мне надо сделать так, чтобы в заголовке вкладки отображалось
> имя файла(не полный путь, а только имя). А при перемещениие
> между вкладками в StatusBar отображался полный путь файла.
>

В чем именно сложность?


 
Virgo_Style ©   (2007-10-05 18:22) [3]

напр., поле FileName: string;

при создании нового FileName:="";
при загрузке FileName:=имя файла.
при сохранении, если FileName = "" - запросить имя.


 
Vitek2 ©   (2007-10-05 19:03) [4]

 if FileName="" then
   begin
     SaveDialog1.Execute;
     TRichEdit(PageControl1.ActivePage.Tag).Lines.SaveToFile(SaveDialog1.FileName);
   end
 else TRichEdit(PageControl1.ActivePage.Tag).Lines.SaveToFile(FileName);
end;


Вот. Я открыл файл. Нажимаю сохранить, всё равно выскакивает окно SaveDialog. На даже если нажимаю "Отмена". Сохраняет правельно. Где ошибка?


 
Kolan ©   (2007-10-05 19:05) [5]

> всё равно выскакивает окно SaveDialog

Прийди отладчиком


 
Вася Правильный   (2007-10-05 19:07) [6]

не вижу открытия


 
Vitek2 ©   (2007-10-05 19:16) [7]

Я открыл через Файл -> Открыть. В RichEdit Заносится информация.


 
OSman ©   (2007-10-05 19:28) [8]

SaveDialog1.Execute возвращает True при "Сохранить" и False при "Отмена"


 
Priority   (2007-10-05 19:33) [9]

Новый

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);


 
Anatoly Podgoretsky ©   (2007-10-05 19:35) [10]


> Vitek2 ©   (05.10.07 19:03) [4]


FileName и SaveDialog1.FileName разные вещи, не говоря уже о других ошибках.


 
Vitek2 ©   (2007-10-05 20:09) [11]

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 появяется.


 
b z   (2007-10-05 20:16) [12]

if  FileName="" then->;<-


 
Vitek2 ©   (2007-10-05 20:20) [13]

Вот блин. Опять невнимателен.


 
Вася Правильный   (2007-10-05 20:30) [14]

такое ощущение, что ты нас за компилятор принимаешь
а сам в блокноте пишешь, не имея дельфи


 
Плохиш ©   (2007-10-05 21:16) [15]


> Вася Правильный   (05.10.07 20:30) [14]
> такое ощущение, что ты нас за компилятор принимаешь

А что, есть сомнения?


 
Vitek2 ©   (2007-10-05 21:36) [16]

Компилятор мочлал.

PageControl1.ActivePage.Caption:=SaveDialog1.FileName;
В заголовок вкладки выводится полное имя файла(с путём). Как сделать так чтобы выводилось только имя файла.(xxx.txt).


 
Virgo_Style ©   (2007-10-05 21:52) [17]

Vitek2 ©   (05.10.07 21:36) [16]
ExtractFileName


 
Denis_ ©   (2007-10-06 11:08) [18]


> Компилятор мочлал.

А что он должен был делать?! Орать тебе : "ТЫ ДОПУСТИЛ ЛОГИЧЕСКУЮ ОШИБКУ!!!"?!


 
TIF ©   (2007-10-06 11:30) [19]


> как например в блакноте


Афтар! Научись гофорить, а потом остальное приложится.

Кстати, есть много статей в инете, про создание небольших текстовых редакторов-примитивов (типа "блокнот"), с исходниками и подробным объяснением.

Так что www.ya.ru -> go!


 
Gydvin ©   (2007-10-06 13:58) [20]

Да блин чего тут сложного, просто подумать чуть.

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.


 
Vitek2 ©   (2007-10-08 00:09) [21]

Значит на форме имеется компонент PageControl. Мне нужно что бы при перемещениее между вкладками компонента в строку состояния выводился путь файла выбраной вкладки.
При открытии файла путь выводится, а вот чтобы он изменялся при перемещении.. что-то не выходит.


 
Anatoly Podgoretsky ©   (2007-10-08 00:23) [22]

> Vitek2  (08.10.2007 00:09:21)  [21]

OnChange


 
Vitek2 ©   (2007-10-08 00:28) [23]

Я знаю что событие OnChange. А вот как получить имя файла с выбраной вкладки.

TRichEdit(PageControl1.ActivePage.Tag).Lines.....;

Что мне тут нужно дописать или исправить?


 
Vitek2 ©   (2007-10-08 00:28) [24]

Удалено модератором


 
Gydvin ©   (2007-10-08 07:37) [25]

Все еще не думаем?

...
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;



Страницы: 1 вся ветка

Текущий архив: 2007.10.28;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.019 c
2-1191499151
два_программера
2007-10-04 15:59
2007.10.28
paradox, adoconnection,adoquery


1-1186991430
Adventure
2007-08-13 11:50
2007.10.28
Утечка памяти.....


6-1172469159
Newfrost
2007-02-26 08:52
2007.10.28
TServerSocket в TService


3-1182311007
O.O
2007-06-20 07:43
2007.10.28
Исправить ХП из программы


2-1191916590
John_13
2007-10-09 11:56
2007.10.28
Проблема в DBGrid