![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перезагрузить программу?
AlexHEY © (2002-10-11 22:45:00)У меня в OnCreate главной формы загружаються настройки из ini
файла. Как можно програмноперезагрузить программу?
int64 (2002-10-13 04:37:00) [1]Обязательно перезагружать? Что вы тут развели бодягу, когда для решения задачи может хватить и запуска OnCreate.
AlexHEY (2002-10-12 22:14:00) [2]>Kotka © (11.10.02 23:37)
:)
AlexHEY (2002-10-11 23:37:00) [3]Огромное спасибо!!!
пойду чинить F1 и............
Kotka (2002-10-11 23:37:00) [4]>Кнопка F1 не работает
Что, не выдержала частых нажатий?
Дремучий (2002-10-11 23:32:00) [5]1)я такие процедурки выношу в отдельный модуль, обычно обзываю его global.pas Вот пример такого модуля...
unit global;
interface
uses Forms, Sysutils, Controls, IniFiles, general;
var
IniFile :TIniFile;
OpDay :TDate;
Date1,Date2 :TDate;
KlientFileName,
DataFileName :string;
ClientCode :integer;
PlaceCode :integer;
DirAppRoot,
DirAppDataDefault,
DirAppData,
DirAppDataBase,
DirAppDataNSI,
DirAppReport :string;
const
//имя раздела ини~файла
OptionsSection = "Options";
procedure ReadOptions;
procedure SaveOptions;
implementation
procedure ReadOptions;
begin
IniFile:= TIniFile.Create(ChangeFileExt(Application.ExeName,".ini"));
try
DirAppData:= IniFile.ReadString(OptionsSection, "DirAppData", DirAppDataDefault);
DirAppDataBase:= IniFile.ReadString(OptionsSection, "DirAppDataBase",DirAppDataDefault);
DirAppDataNSI:= IniFile.ReadString(OptionsSection, "DirAppDataNSI",DirAppDataDefault);
KlientFileName:= QuotedStr(DirAppDataNSI + "klient.dbf");
finally
IniFile.Free;
end;
end;
procedure SaveOptions;
begin
//возможно изменился DirAppDataNSI
KlientFileName:= QuotedStr(DirAppDataNSI + "klient.dbf");
IniFile:= TIniFile.Create(ChangeFileExt(Application.ExeName,".ini"));
try
IniFile.WriteString(OptionsSection, "DirAppData", DirAppData);
IniFile.WriteString(OptionsSection, "DirAppDataBase", DirAppDataBase);
IniFile.WriteString(OptionsSection, "DirAppDataNSI", DirAppDataNSI);
finally
IniFile.Free;
end;
end;
initialization
DirAppRoot:= DirToPath(ExtractFileDir(Application.ExeName));
DirAppReport:= DirAppRoot + "Report\";
DirAppDataDefault:= DirAppRoot + "Data\";
ReadOptions;
end.
2)в модулях из которых нужно вызывать пишешь uses global;
Вот пример
unit options;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, ToolEdit, IniFiles, Buttons, ExtCtrls, ComCtrls,
general;
type
TfmOptions = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel1: TPanel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label3: TLabel;
edDirAppData: TDirectoryEdit;
GroupBox1: TGroupBox;
Label1: TLabel;
edDirAppDataBase: TDirectoryEdit;
Label2: TLabel;
edDirAppDataNSI: TDirectoryEdit;
TabSheet2: TTabSheet;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmOptions: TfmOptions;
implementation
uses global;
{$R *.DFM}
procedure TfmOptions.FormCreate(Sender: TObject);
begin
......
AlexHEY (2002-10-11 23:23:00) [6]:)
А как можно вызвать процедуру которая находится в другом модуле?
Дремучий (2002-10-11 23:20:00) [7]смешно...
:))
1)выносишь чтение ини файла в отдельную процедуру.
2)вызываешь ее в онКриэйт
3)вызываешь в других местах
П.С. брать пример с мелкософта - дурной тон, ты б комп перегрузил, чтоб настройки из инифайла перечитать.
:)
AlexHEY (2002-10-11 23:14:00) [8]Кнопка F1 не работает :)
Мозги тоже :)
Kotka (2002-10-11 23:10:00) [9]Сам хоть раз пошевели мозгами или кнопкой F1!
AlexHEY (2002-10-11 22:52:00) [10]А пример? :)
TTCustomDelphiMaster (2002-10-11 22:51:00) [11]Запустить вторую копию через ShellExecute и закрыть первую.
Song (2002-10-11 22:48:00) [12]Создать батник с запуском проги, запустить батник, закрыть.