| 
| 
 | Вопрос # 390/ вопрос открыт / | 
 |  Здравствуйте. Скажите, пожалуйста, можно сделать так, что бы мои окна (если можно то все окна) сворачивались на мою форму. И ещё я уже задавал вопрос (как в Memo1 сохранить как...), а если я работаю с текстом в Memo1,как мне просто сохранить, то есть нажал сохранить, работаю дальше, опять сохранил, как в Notepad, чтобы не указывать путь.
 
|  |   Вопрос задал: Толков Геннадий Викторович (статус: Посетитель)Вопрос отправлен: 10 марта 2007, 02:21
 Состояние вопроса: открыт, ответов: 2.
 |  Ответ #1. Отвечает эксперт: Роман Здравствуйте, Толков Геннадий Викторович!Ну имя то так или иначе прийдётся указывать,другое дело что можно скажем условится,что если имя и путь сохранения не указан то будем сохранять всегда в некой папке по умолчанию в часности в примере (при нажатии save) это:C:\Documents and Settings\Rem_si\Рабочий стол,т\е по умолчанию сохраняем на рабочем столе с именем document.txt. А когда мы укажем путь в save as то вдальнейшем при нажатии кнопки save сохранение будет происходить по указанному пути. Приложение:Переключить в обычный режим unit Unit1;interfaceuses  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);beginsavePath:=GetDeskTopPath+'document.txt'end;/////// save ////////////////////////procedure TForm1.Button1Click(Sender: TObject);beginmemo1.Lines.SaveToFile(savePath);end;//////////// save as... ////////////////////procedure TForm1.Button2Click(Sender: TObject);beginif 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;
 Я бы изменил мир, но Бог не дает исходники! |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |