Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Вниз

Как перетащить форму мышью кликая на любой её области?   Найти похожие ветки 

 
Gear   (2004-12-10 19:06) [0]

Сабж


 
Fay ©   (2004-12-10 19:20) [1]

http://rusya-hacker.narod.ru/VB_and_QB/Primeri.htm


 
grom   (2004-12-10 20:02) [2]

1.
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
end;

2.
var
d: boolean;
x0,y0: integer;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d := true;
x0 := x;
y0 := y;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
d := false;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if d then
begin
Left := Left + x - x0;
Top := Top + y - y0;
end;
end;


 
DiamondShark ©   (2004-12-10 20:10) [3]

TForm1 = class(TForm)
...
private
 procedure WMNCHitTest(var M: TWMNCHitTest); message WM_NCHITTEST;
...
end;

...

procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
 inherited;
 if M.Result = HTCLIENT then M.Result := HTCAPTION;
end;


 
Fay ©   (2004-12-10 20:11) [4]

2 DiamondShark ©   (10.12.04 20:10) [3]
А нафинг inherited?


 
DiamondShark ©   (2004-12-10 20:51) [5]


> Fay ©   (10.12.04 20:11) [4]
> 2 DiamondShark ©   (10.12.04 20:10) [3]
> А нафинг inherited?

А потому что у окна кроме заголовка и клиентской части есть ещё куча эрогенных зон. Например, границы и кнопки закрытия/минимизации/сисменю.

Мы же хотим за бордюр растягивать, а "крестиком" закрывать. А таскать только за заголовок и за "серенькое".


 
Fay ©   (2004-12-10 21:10) [6]

А что, к приватным методам применим inherited?!


 
DiamondShark ©   (2004-12-10 21:14) [7]


> Fay ©   (10.12.04 21:10) [6]
> А что, к приватным методам применим inherited?!

Он не просто приватный, а обработчик сообщения.
Фактически, он dynamic.


 
Leonid Troyanovsky   (2004-12-10 21:38) [8]


> Fay ©   (10.12.04 21:10) [6]
> А что, к приватным методам применим inherited?!


Он применим даже к статическим методам
that the search for the referenced member begins with the  
immediate ancestor of the enclosing method’s class.

--
С уважением, LVT.


 
Mihey_temporary ©   (2004-12-10 23:39) [9]


> DiamondShark ©   (10.12.04 20:10) [3]


Событие OnMouseDown компонента TLabel перестаёт срабатывать.


 
Kolan ©   (2004-12-10 23:59) [10]

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 If ssLeft In Shift Then
 Begin
   ReleaseCapture;
   SendMessage(Handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
 End;
end;

Вот. У меня на всю форму картинка была. Переделай чуть-чуть.


 
Игорь Шевченко ©   (2004-12-11 00:11) [11]

Mihey_temporary ©   (10.12.04 23:39) [9]

Совершенно верно. Нужно еще проверять, что в ткнутом месте не расположен никакой потомок TGraphicControl.

С уважением,


 
Fay ©   (2004-12-11 17:50) [12]

2 DiamondShark ©   (10.12.04 21:14) [7][Ответить]
Проверил - работает. Я в шоке 8)

Leonid Troyanovsky   (10.12.04 21:38) [8]

> Он применим даже к статическим методам

Но не к приватным. Так ведь?


 
Leonid Troyanovsky ©   (2004-12-11 18:10) [13]


> Fay ©   (11.12.04 17:50) [12]

> > Он применим даже к статическим методам

> Но не к приватным. Так ведь?


К приватным как обычно - только в границах модуля.

--
С уважением, LVT.


 
Fay ©   (2004-12-11 18:23) [14]

2 Leonid Troyanovsky ©   (11.12.04 18:10) [13]
Ну слава ДДБ 8)


 
Leonid Troyanovsky ©   (2004-12-11 18:27) [15]


> Leonid Troyanovsky ©   (11.12.04 18:10) [13]

> > > Он применим даже к статическим методам

> > Но не к приватным. Так ведь?

> К приватным как обычно - только в границах модуля.


А.. Ты, видимо, про message handler.
Ну, там борланды, IMHO, что-то наколбасили, нужно было,
хотя бы, изображать из них protected, потому как ведут
они себя именно таким образом.

Т.е., они пишут:

To declare a message-handling method, do the following:

1 Declare the method in a protected part of the component’s class declaration.
2 Make the method a procedure.
3 Name the method after the message it handles, but without any underline characters.
4 Pass a single var parameter called Message, of the type of the message record.
5 Within the message method implementation, write code for any handling specific to the component.
6 Call the inherited message handler.

Но, в своем коде пишут их в private.
Двоечники :)

--
С уважением, LVT.



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

Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.034 c
8-1096175195
Mitay
2004-09-26 09:06
2004.12.26
Как определить частоту?


3-1101298230
keymaster
2004-11-24 15:10
2004.12.26
Client-Servet виснет


1-1102846034
Dema-X
2004-12-12 13:07
2004.12.26
из юникод в вин


14-1102075590
euru
2004-12-03 15:06
2004.12.26
Class Helpers (.NET)


3-1101280714
Nexel
2004-11-24 10:18
2004.12.26
IBX и обновление данных





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