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

Вниз

Как востановить размер окна при запуске программы?   Найти похожие ветки 

 
Sound ©   (2002-04-17 01:38) [0]

Как востановить размер окна при запуске программы, который был (размер) при предыдущем его закрытии?


 
VID ©   (2002-04-17 02:32) [1]

ВАРИАНТ А: Использовать специальный компонент из пакета RXLib.
ВАРИАНТ Б - Ini-файлы:

-------------подробнее вариант Б----------------------
uses inifiles;
...

var ini:tinifile;
.....

PROCEDURE TFORM1.onCreate(...);
begin
Ini:=TIniFile.Create (Application.ExeName+"\sets.ini");
end;

PROCEDURE TForm1.onShow(...);
begin
Form1.left := ini.readinteger ("form1", "left", 1);
Form1.top := ini.readinteger ("form1", "top", 1);
Form1.width := ini.readinteger ("form1", "width", 100);
Form1.height := ini.readinteger ("form1", "height", 100);
end;

Procedure TForm1.onDestroy (...);
begin
ini.writeinteger ("form1", "left", form1.left);
ini.writeinteger ("form1", "top", form1.top);
ini.writeinteger ("form1", "width", form1.width);
ini.writeinteger ("form1", "height", form1.height);
ini.free;
end;
---------------конец вариант Б-------------

ВАРИАНТ В - Сохранение в реестре.

--------------подробнее не будет :)--------


 
VID ©   (2002-04-17 02:35) [2]

ОШИБКА : Вместо Application.ExeName надо писать
ExtractFilePath(Application.ExrName)


 
Voldemar ©   (2002-04-17 04:09) [3]

>VID © (17.04.02 02:32)
А про вариант А поподробнее нельзя?


 
REA   (2002-04-17 10:19) [4]

Еще замечание - если форма максимизирована, то все размеры неверны. Советую записывать отдельно состояние окна и перед записью размеров его нормализовать - это в лоб. Наверно есть метод лучше.


 
kull ©   (2002-04-17 10:22) [5]


> А про вариант А поподробнее нельзя?

Набираешь в поисковой системе RX и Delphi и ищешь для Delphi6, а потом скачиваешь и ставишь компонент...


 
USAtyj ©   (2002-04-17 13:41) [6]


procedure SaveFormSizes(Sender:TCustomForm);
var
R:TRegistry;
begin
R:=TRegistry.Create;
try
with R do begin
RootKey:=HKEY_CURRENT_USER;
if OpenKey("\Software\MyName\MyApplication",True) then begin
WriteInteger(Sender.ClassName+"_WindowState",Integer(Sender.WindowState));
if Sender.WindowState<>wsMaximized then begin
WriteInteger(Sender.ClassName+"_Left",Sender.Left);
WriteInteger(Sender.ClassName+"_Top",Sender.Top);
WriteInteger(Sender.ClassName+"_Width",Sender.Width);
WriteInteger(Sender.ClassName+"_Height",Sender.Height);
end;
end;
end;
except
end;
R.Free;
end;

procedure RestoreFormSizes(Sender:TCustomForm);
var
R:TRegistry;
begin
R:=TRegistry.Create;
try
with R do begin
RootKey:=HKEY_CURRENT_USER;
if OpenKey("\Software\MyName\MyApplication",True) then begin
Sender.WindowState:=TWindowState(ReadInteger(Sender.ClassName+"_WindowState"));
if Sender.WindowState<>wsMaximized then begin
Sender.Left :=ReadInteger(Sender.ClassName+"_Left");
Sender.Top :=ReadInteger(Sender.ClassName+"_Top");
Sender.Width :=ReadInteger(Sender.ClassName+"_Width");
Sender.Height:=ReadInteger(Sender.ClassName+"_Height");
end;
end;
end;
except
end;
R.Free;
end;


OnCreate:
RestoreFormSizes(Self);
OnClose:
SaveFormSizes(Self);


 
Voldemar ©   (2002-04-17 13:46) [7]

>kull © (17.04.02 10:22)
RX у меня есть и даже стоИт... Но вот как им пользоваться...:)


 
Alx2 ©   (2002-04-17 13:51) [8]

Из RxTools компонент TFormPlacement


 
USAtyj ©   (2002-04-17 15:26) [9]


procedure SaveFormSizes(Sender:TCustomForm);
var
R:TRegistry;
begin
R:=TRegistry.Create;
try
with R do begin
RootKey:=HKEY_CURRENT_USER;
if OpenKey("\Software\MyName\MyApplication",True) then begin
WriteInteger(Sender.ClassName+"_WindowState",Integer(Sender.WindowState));
if Sender.WindowState<>wsMaximized then begin
WriteInteger(Sender.ClassName+"_Left",Sender.Left);
WriteInteger(Sender.ClassName+"_Top",Sender.Top);
WriteInteger(Sender.ClassName+"_Width",Sender.Width);
WriteInteger(Sender.ClassName+"_Height",Sender.Height);
end;
end;
end;
except
end;
R.Free;
end;

procedure RestoreFormSizes(Sender:TCustomForm);
var
R:TRegistry;
begin
R:=TRegistry.Create;
try
with R do begin
RootKey:=HKEY_CURRENT_USER;
if OpenKey("\Software\MyName\MyApplication",True) then begin
Sender.WindowState:=TWindowState(ReadInteger(Sender.ClassName+"_WindowState"));
if Sender.WindowState<>wsMaximized then begin
Sender.Left :=ReadInteger(Sender.ClassName+"_Left");
Sender.Top :=ReadInteger(Sender.ClassName+"_Top");
Sender.Width :=ReadInteger(Sender.ClassName+"_Width");
Sender.Height:=ReadInteger(Sender.ClassName+"_Height");
end;
end;
end;
except
end;
R.Free;
end;


OnCreate:
RestoreFormSizes(Self);
OnClose:
SaveFormSizes(Self);



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

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

Наверх




Память: 0.49 MB
Время: 0.021 c
1-94448
Каспер
2002-04-16 05:57
2002.04.29
Цвет в TreeView


1-94380
Александр Арсентьев
2002-04-17 09:52
2002.04.29
глюки Делфи


3-94342
dr_neo_rostovq
2002-04-07 18:03
2002.04.29
Против BDE!!!


1-94437
ymin
2002-04-15 14:48
2002.04.29
из StringGrid в файл Excel?


1-94441
Vasya_dvc
2002-04-12 23:27
2002.04.29
Turbo Pascal + Delphi =?