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

Вниз

Хэндл чего я взял?   Найти похожие ветки 

 
Baz ©   (2002-02-19 15:14) [0]

Здравствуйте, мастера.
В целях тренировки пишу такую программу: по нажатию кнопки вызывается функция из ДЛЛ которая должна спрятать исходную форму ‘MAIN_FRM’. Вот код целиком:

library DLL_TRY_2;
uses Windows, Forms, DLL_CONTROL_2;
{$R *.RES}
procedure HIDE_WINDOW(MY_HANDLE:THandle);
begin
// MAIN_FRM.Visible:=false;
// MAIN_FRM.Hide;
ShowWindow(MY_HANDLE,SW_HIDE);
end;
exports HIDE_WINDOW;
begin
end.
********************
unit DLL_CONTROL_2;
interface
uses Windows, Forms, Classes, Controls, StdCtrls;
type
TMAIN_FRM = class(TForm)
START_BTTN: TButton;
procedure START_BTTNClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var MAIN_FRM: TMAIN_FRM;
implementation
{$R *.DFM}

procedure TMAIN_FRM.START_BTTNClick(Sender: TObject);
var MY_HANDLE:THandle;
DLL_HANDLE:THandle;
HIDE_WINDOW:procedure(MY_HANDLE:THandle);
begin
DLL_HANDLE:=LoadLibrary("DLL_TRY_2");
MY_HANDLE:=Application.Handle;
@HIDE_WINDOW:=GetProcAddress(DLL_HANDLE,"HIDE_WINDOW");
HIDE_WINDOW(MY_HANDLE);
FreeLibrary(DLL_HANDLE);
end;

end.
************************
Происходит следующее. Если раскоментировать команду MAIN_FRM.Visible:=false или MAIN_FRM.Hide, то выдается ошибка, по команде ShowWindow(MY_HANDLE,SW_HIDE) ничего не происходит. А при вставке команды ShowWindow(MY_HANDLE,SW_MAXIMIZE) почему-то исчезают все открытые окна и таскбар. Виден рабочий стол (обои, но ни одной иконки), видно исходное окно прежнего размера, а в самом верху экрана виден заголовок окна ‘DLL_CONTROL_PRJ_2’ (а это имя моего проекта) максимизированного размера. Может ли кто-нибудь пояснить, что происходит? Я что-то напутал с хэндлом MY_HANDLE? Сорри за длинность.


 
Pete ©   (2002-02-19 15:25) [1]

Может берешь handle:=0, то это DeskTop... проверь...


 
DieHard ©   (2002-02-19 15:27) [2]

Вместо
MY_HANDLE:=Application.Handle;
напиши
MY_HANDLE:=Self.Handle;
а то ты работал с невидимым окном приложения


 
Юрий Федоров ©   (2002-02-19 15:27) [3]

Наверно, все таки
MY_HANDLE:=Handle;


 
Baz ©   (2002-02-20 08:11) [4]

СПАСИБО! Особенно 2 DieHard !



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

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

Наверх




Память: 0.47 MB
Время: 0.015 c
3-19070
DmitryB
2002-02-08 01:57
2002.03.07
Ищу компонент


3-19089
NOV
2002-02-09 11:05
2002.03.07
Select Date From ....


1-19177
1g0r
2002-02-21 19:06
2002.03.07
Ошибка ~Control has no parent window~ помогите разобраться почему


1-19202
Miwa
2002-02-17 01:14
2002.03.07
Глюк с формой?


14-19327
Zevsus
2002-01-20 22:41
2002.03.07
Найти активное приложение