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

Вниз

Переопределение функция WMNCHitTest.   Найти похожие ветки 

 
Zeratul ©   (2004-04-10 14:41) [0]

В главном юните переопределена функция WMNCHitTest, которая позволяет перетаскивать окно любой формы, захватив его мышкой.
На форме присутствует несколько Image-й, у которых есть свои собсвенные события OnClick. Так вот проблема в следующем - при переопределении функция WMNCHitTest, события OnClick у Image-й не работают. Как можно выйти из этой ситуации? Спасибо.

unit Unit1;

interface
uses
...
type
...
procedure WMNCHitTest(var Message:TWMNCHitTest);Message WM_NCHITTEST;
...
implementation

{$R *.dfm}

procedure TFormMain.WMNCHitTest(var Message:TWMNCHitTest);
begin
 inherited;
 Message.Result:=HTCAPTION;
end;
...


 
default ©   (2004-04-10 15:09) [1]

var
можно по координатам
что-то типа этого
MI: Array of TImage;
...
procedure TFormMain.WMNCHitTest(var Message: TWMNCHitTest);
var
i: Byte;
begin
inherited;
for i := 0 to High(MI) do
if PointInRect(Message.Pos, MI[i].Left, MI[i].Top,
               MI[i].Width, MI[i].Height) then Exit;
Message.Result := HTCAPTION
end;
PointInRect надо написать самому или использовать PtInRect


 
default ©   (2004-04-10 15:57) [2]


procedure TFormMain.WMNCHitTest(var Message: TWMNCHitTest);
var
i: Word;
P: TPoint;
begin
inherited;
for i := 0 to High(MI) do begin
 P := ScreenToClient(Point(Message.XPos, Message.YPos));
 if (P.X >= MI[i].Left) and (P.X <= MI[i].Left + MI[i].Width) and
    (P.Y >= MI[i].Top) and (P.Y <= MI[i].Top + MI[i].Height) then Exit;
end;
Message.Result := HTCAPTION
end;

procedure TFormMain.FormCreate(Sender: TObject);
var
i: Word;
begin

// Image-и должны "принадлежать" FormMain
for i := 0 to ComponentCount - 1 do
if Components[i] is TImage then begin
 SetLength(MI, Length(MI) + 1);
 MI[High(MI)] := Components[i] as TImage
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.068 c
9-1066999903
andrM
2003-10-24 16:51
2004.04.25
Где можно достать алгоритм движка для игры?


14-1081176452
YurikGl
2004-04-05 18:47
2004.04.25
Где найти расчет емкости


3-1080796265
DrAculenok
2004-04-01 09:11
2004.04.25
Не могу заInsertить данные:


1-1081249456
Назаров Евгений
2004-04-06 15:04
2004.04.25
Сравнение строк


3-1080547756
Earlynn
2004-03-29 12:09
2004.04.25
Таблицы Paradox тормозят в ADO. Что не так?