|
Вопрос # 390/ вопрос открыт / |
|
Здравствуйте. Скажите, пожалуйста, можно сделать так, что бы мои окна (если можно то все окна) сворачивались на мою форму. И ещё я уже задавал вопрос (как в Memo1 сохранить как...), а если я работаю с текстом в Memo1,
как мне просто сохранить, то есть нажал сохранить, работаю дальше, опять сохранил, как в Notepad, чтобы не указывать путь.
 |
Вопрос задал: Толков Геннадий Викторович (статус: Посетитель)
Вопрос отправлен: 10 марта 2007, 02:21
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Роман
Здравствуйте, Толков Геннадий Викторович!Ну имя то так или иначе прийдётся указывать,другое дело что можно скажем условится,что если имя и путь сохранения не указан то будем сохранять всегда в некой папке по умолчанию в часности в примере (при нажатии save) это:C:\Documents and Settings\Rem_si\Рабочий стол,т\е по умолчанию сохраняем на рабочем столе с именем document.txt. А когда мы укажем путь в save as то вдальнейшем при нажатии кнопки save сохранение будет происходить по указанному пути.
Приложение: Переключить в обычный режим- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- type
- TForm1 = class(TForm)
- Button1: TButton;
- Memo1: TMemo;
- Button2: TButton;
- SaveDialog1: TSaveDialog;
- procedure Button1Click(Sender: TObject);
- procedure Button2Click(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- savePath:string;
- implementation
- //!!!!!!!!!!!!!!!!!!!!!!!!!!
- uses
- ActiveX, ShlObj;
- //!!!!!!!!!!!!!!!!!!!!!!!!!!
- {$R *.dfm}
-
- function GetDeskTopPath : string;
- var
- shellMalloc: IMalloc;
- ppidl: PItemIdList;
- PerDir: string;
- begin
- ppidl := nil;
- try
- if SHGetMalloc(shellMalloc) = NOERROR then
- begin
- SHGetSpecialFolderLocation(Form1.Handle, CSIDL_DESKTOP, ppidl);
- SetLength(Result, MAX_PATH);
- if not SHGetPathFromIDList(ppidl, PChar(Result)) then
- raise exception.create('SHGetPathFromIDList failed : invalid pidl');
- SetLength(Result, lStrLen(PChar(Result)));
- end;
- finally
- if ppidl <> nil then
- shellMalloc.free(ppidl);
- end;
- end;
- /////////////////////////////////////////////////
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- savePath:=GetDeskTopPath+'document.txt'
- end;
- /////// save ////////////////////////
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- memo1.Lines.SaveToFile(savePath);
- end;
- //////////// save as... ////////////////////
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- if savedialog1.Execute then
- begin
- savePath:= savedialog1.FileName ;
- memo1.Lines.SaveToFile(savePath);
- end;
- end;
-
- end.
 |
Ответ отправил: Роман (статус: 5-ый класс)
Время отправки: 10 марта 2007, 04:13
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: Spawn
Здравствуйте, Толков Геннадий Викторович! Можно сделать так, при первом сохранении записываем в переменную имя файла, а при послеюдующих сохранениях проверяем, если переменная "не пуста", то сохраняем в тот файл, что указан в переменной, если же "пуста", то выводим диалог сохранения.
Пример в приложении.
Приложение: Переключить в обычный режим- private
- { Private declarations }
- Filename: String;
-
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- if (Filename <> '') and (FileExists(Filename)) then
- memo1.Lines.SaveToFile(Filename)
- else
- if SaveDialog1.Execute then
- begin
- memo1.Lines.SaveToFile(SaveDialog1.FileName);
- Filename:= SaveDialog1.Filename;
- end;
- end;
 |
Ответ отправил: Spawn (статус: 1-ый класс)
Время отправки: 10 марта 2007, 09:03
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 11 марта 2007, 13:18; участников в обсуждении: 1.
|
Шарайчук Сергей Олександрович (статус: 2-ой класс), 11 марта 2007, 13:18 [#1]:
Если ти открил какойто файл и редактируэш ево,или знаеш точно куда и скаким именим будеш ево сохранять, нужно зделать следуйщее:
var file:textfile;
f:string;
begin
f:='c:\file.txt';
//или
f:=opendialog1.filename//присваеваеш переменной адрес файла
assignfile(file,f);
rewrite(file);//открываеш файл для перезаписи
write(file,a);//записываеш переменною а в файл
closefile(file);//закрываеш файл, и сохраняеш ево
end;
Я бы изменил мир, но Бог не дает исходники!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|