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

Вниз

Как реализовать такой код на KOL?   Найти похожие ветки 

 
Alexander ©   (2002-12-29 21:47) [0]


protected
( var Params: TCreateParams)

protected
procedure CreateParams(var Params: TCreateParams); override;

и там я задаю родителя для формы.

В общем как мне задать родителя формы до её создания (Params.WndParent).


 
Gandalf   (2002-12-31 10:32) [1]

Это вообще, про KOL? Все создания объектов в KOL сделаны только через New***, тебе значит надо сделать свой NewFormParams(var Params: TCreateParams);.


 
Alexander ©   (2003-01-04 08:58) [2]

Это так я делаю в Delphi - хранитель экрана с превьюшкой (форма предварительного просмотра). Для этой формы задаётся родитель. Для KOL я пытаюсь делать так:


Arg := UpperCase(ParamStr(1));

if (Copy(Arg,1,2) = "/A") or (Copy(Arg,1,2) = "-A") or (Copy(Arg,1,1) = "A") then
SSMode := ssSetPwd;

if (Copy(Arg,1,2) = "/P") or (Copy(Arg,1,2) = "-P") or (Copy(Arg,1,1) = "P") then
SSMode := ssPreview;

if (Copy(Arg,1,2) = "/C") or (Copy(Arg,1,2) = "-C") or (Copy(Arg,1,1) = "C") or (Arg = "") then
SSMode := ssConfig;

if (SSMode = ssRun) or (SSMode = ssPreview) then
begin
NewFormSaver(FormSaver, nil);

if (SSMode = ssPreview) then
begin
ParentHandle := Str2Int(ParamStr(2));
GetWindowRect(ParentHandle, ParentRect);

SetWindowLong(FormSaver.Form.Handle, GWL_STYLE, WS_CHILD or WS_VISIBLE);
SetWindowLong(FormSaver.Form.Handle, GWL_EXSTYLE,
GetWindowLong(FormSaver.Form.Handle, GWL_EXSTYLE) and not WS_EX_APPWINDOW or WS_EX_TOOLWINDOW);

SetParent(FormSaver.Form.Handle, ParentHandle);

// FormSaver.Form.Left := 0;
// FormSaver.Form.Top := 0;
// FormSaver.Form.Width := ParentRect.Right - ParentRect.Left;
// FormSaver.Form.Height := ParentRect.Bottom - ParentRect.Top;
end;

( FormSaver.Form)
Это так я делаю в Delphi - хранитель экрана с превьюшкой (форма предварительного просмотра). Для этой формы задаётся родитель. Для KOL я пытаюсь делать так:


Arg := UpperCase(ParamStr(1));

if (Copy(Arg,1,2) = "/A") or (Copy(Arg,1,2) = "-A") or (Copy(Arg,1,1) = "A") then
SSMode := ssSetPwd;

if (Copy(Arg,1,2) = "/P") or (Copy(Arg,1,2) = "-P") or (Copy(Arg,1,1) = "P") then
SSMode := ssPreview;

if (Copy(Arg,1,2) = "/C") or (Copy(Arg,1,2) = "-C") or (Copy(Arg,1,1) = "C") or (Arg = "") then
SSMode := ssConfig;

if (SSMode = ssRun) or (SSMode = ssPreview) then
begin
NewFormSaver(FormSaver, nil);

if (SSMode = ssPreview) then
begin
ParentHandle := Str2Int(ParamStr(2));
GetWindowRect(ParentHandle, ParentRect);

SetWindowLong(FormSaver.Form.Handle, GWL_STYLE, WS_CHILD or WS_VISIBLE);
SetWindowLong(FormSaver.Form.Handle, GWL_EXSTYLE,
GetWindowLong(FormSaver.Form.Handle, GWL_EXSTYLE) and not WS_EX_APPWINDOW or WS_EX_TOOLWINDOW);

SetParent(FormSaver.Form.Handle, ParentHandle);

// FormSaver.Form.Left := 0;
// FormSaver.Form.Top := 0;
// FormSaver.Form.Width := ParentRect.Right - ParentRect.Left;
// FormSaver.Form.Height := ParentRect.Bottom - ParentRect.Top;
end;

Run(FormSaver.Form);
end;


Это начинает работать, то есть моя форма показывается в окошке предварительного просмотра, но после этого прекращается переключение по сисмемным табам (на Фон, Оформление и т.д).



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
1-33643
Andy BitOff
2003-08-30 21:37
2003.09.11
Передача массива в процедуру.


1-33659
Chlavik
2003-08-28 21:20
2003.09.11
Исдевательсво над PopupMenu


14-33811
Vlad Oshin
2003-08-25 13:23
2003.09.11
WinXPPro два вопроса.


3-33452
lex7
2003-08-21 13:27
2003.09.11
ADO SQL


1-33630
Menel
2003-08-31 18:13
2003.09.11
Определить имя коипонента для применения свойства