Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
14-25061
roach
2002-12-18 22:40
2003.01.09
Задачка на Turbo Pascal


1-24887
V-A-V
2002-12-24 14:31
2003.01.09
Когда User закрыл WordDokument


3-24785
Карелин Артем
2002-12-16 14:23
2003.01.09
Работа с большой базой.


7-25099
DDDeN
2002-10-28 18:07
2003.01.09
Звуковая карта и прога


4-25137
Griffin
2002-11-18 22:37
2003.01.09
Передача сообщений от мыши другому приложению





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский