Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
6-94523
Delphir
2002-02-13 16:28
2002.04.29
IdSMTP - HELP!!!


6-94535
Yuraz
2002-01-18 17:00
2002.04.29
Как отправить поля POST NMHTTP


7-94603
Александр!
2002-01-30 14:13
2002.04.29
Абсолютная запись на HDD i FDD???


14-94550
copyr25
2002-03-21 22:05
2002.04.29
Удивительный феномен Древней Греции.


1-94438
Rooman
2002-04-14 09:15
2002.04.29
А законна ли экспертиза системного блока вообще?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский