Главная страница
    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.55 MB
Время: 0.34 c
14-25073
gsu
2002-12-20 18:56
2003.01.09
А зачем форум тормозит


3-24798
Чадаева Ирина
2002-12-16 17:12
2003.01.09
Отчеты в Word e


7-25103
LexusU
2002-10-29 13:57
2003.01.09
Как программно включить комп?


14-25023
Morfein
2002-12-19 20:35
2003.01.09
Хостинг


4-25127
strong
2002-11-16 14:01
2003.01.09
аля DirectSkin





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский