Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
ВнизКак востановить размер окна при запуске программы? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c