Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как перезагрузить программу?


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]

Создать батник с запуском проги, запустить батник, закрыть.


Наверх

Титульная страница Поиск, карта сайта Написать письмо