Главная страница
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.017 c
1-33682
Lorry
2003-08-25 20:54
2003.09.11
RunTime


1-33624
Xeon
2003-08-30 22:38
2003.09.11
Функции


14-33762
Viktor Kushnir
2003-08-19 08:58
2003.09.11
Патентование


1-33677
rom
2003-09-01 16:29
2003.09.11
Видимость subitems в ListView


1-33661
OrLANdo
2003-08-30 02:48
2003.09.11
Цветовая поддержка редактора