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