Форум: "Основная";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
ВнизСРОЧНО: нужна помощь по потомку TGraphicControl Найти похожие ветки
← →
xn0bys (2002-12-28 11:49) [0]Может кто-нить мне помочь, такая промблема: есть компонент потомок TGraphicControl и форма которая таскается по WM_NCHITTEST, надо чтобы компонент определялся в этой процедуре не как htClient, или же вообще не определялся бы (как TButton).
← →
Игорь Шевченко (2002-12-28 12:02) [1]
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TfMain = class(TForm)
Label1: TLabel;
Label2: TLabel;
private
procedure WMNCHitTest (var Message : TWMNCHitTest); message WM_NCHITTEST;
end;
var
fMain: TfMain;
implementation
{$R *.DFM}
{ TfMain }
procedure TfMain.WMNCHitTest(var Message: TWMNCHitTest);
var
MyControl : TControl;
begin
MyControl := ControlAtPos(ScreenToClient(SmallPointToPoint(Message.Pos)),
false, false);
if MyControl IS TLabel then
Message.Result := HTNOWHERE
else
Message.Result := HTCAPTION;
end;
end.
Примерно так. На форме две метки - вся форма таскается за любое место, кроме этих меток.
← →
Игорь Шевченко (2002-12-28 12:18) [2]Маленькое исправление:
procedure TfMain.WMNCHitTest(var Message: TWMNCHitTest);
var
MyControl : TControl;
P : TPoint;
begin
P := ScreenToClient(SmallPointToPoint(Message.Pos));
if not PtInRect(ClientRect, P) then
inherited
else begin
MyControl := ControlAtPos(P, false, false);
if MyControl IS TLabel then
Message.Result := HTNOWHERE
else
Message.Result := HTCAPTION;
end;
end;
В предыдущем случае форма не закрывалась :-)))
← →
xn0bys (2002-12-28 13:53) [3]Это конечно всё рулез, но я хотел бы, чтобы в форме никаких преверок не делать, чтобы по умолчанию мой компонент был бы как-бы кнопочка, т.е. в обработчике (см. выше) он бы по умолчанию был бы не Клиентом (извяните за был бы, я после рабочего празднования HNY 2003).
← →
xn0bys (2002-12-28 13:57) [4]хотя последний пример всё-таки рулез, так-как сколько-бы ни было компоненторв, все они возвращают TLabel.
BIG THNX Игорь Шевченко!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c