Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Движение формы 
:(
    Опции темы
RA
Дата 31.8.2002, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



В свойстве форму стоит borderStyle - bsNone,
мне нужно сделать так чтоб только Timage  выполнял функцию заголовка, тоесть перемещал форму при обращении к нему мышки.

Но это свойство должо быть только у Timag, а не увсей формы.
PM   Вверх
rhf
Дата 1.9.2002, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 13.8.2002

Репутация: нет
Всего: нет



в событии onMouseDown для компонента за который будем такскать
if ssLeft in Shift then
 begin
   ReleaseCapture;
   perform(WM_NCLBUTTONDOWN, HTCAPTION, 0);
   {
     или
     perform(WM_SYSCOMMAND, $F012, 0);
   }
 end;
PM MAIL   Вверх
Song
Дата 1.9.2002, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



WM_NCLBUTTONDOWN


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
RA
Дата 3.9.2002, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Спасиб но я нашёл способ по лучше

Код

var
 Form1: TForm1;
 FLastX,FLastY:integer;

implementation

{$R *.DFM}


procedure TForm1.Image2MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 FLastX:=x;
  FLastY:=y;
 end;


procedure TForm1.Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
  if (HiWord (GetAsyncKeystate(VK_LBUTTON))>0) then
  begin
     GetParenTForm(self).Left:=GetParenTForm(self).Left+x-FLastX;
     GetParenTForm(self).Top:=GetParenTForm(self).Top+y-FLastY;
  end;
end;

PM   Вверх
Vit
Дата 4.9.2002, 04:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 48
Всего: 207



Чем же это лучше того что предложил rhf?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
RA
Дата 4.9.2002, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Да понимаешь вит, я пишу программу с нестандартной формой, местами она загибается, местами выгибается, вообщем не квадрат и не прямоугольник.
Ну с точки зрения дизайнерской идеи предложенный способ не красив, это долго обяснять но в крации тут разные типы движения формы, сам попробуй.
PM   Вверх
Garik
Дата 4.9.2002, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник Клуба
Сообщений: 216
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 4



Ну, не знаю... У меня тоже нестандартная форма, вся с выгибонами различными. Использую

void __fastcall TShell::Image2MouseDown(TObject *Sender,
     TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Button == mbLeft)
  {
   ReleaseCapture ();
   SendMessage (Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
  }
}

(что rhf и советует) - работает замечательно.
--------------------
Программист - это не профессия. Это диагноз...
PM MAIL WWW ICQ   Вверх
RA
Дата 4.9.2002, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Нехотел в крации объэтом но вижу придётся, в твоём примере Garik сначала двигается прямоугольный дух формы, а потом когда отпускаешь мышь там появляется форма, а мой способ эту форму двигает, ну как в winamp'e, тоесть с дизайнерской точки зрения процесс передвижения треугольной формы с образованием вокруг её площади квадратного пунктира (онже дух, онже индикатор позиции) выглядит не красиво.
PM   Вверх
Garik
Дата 5.9.2002, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник Клуба
Сообщений: 216
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 4



Прямоугольный "дух" :) двигаться будет только в том случае, если отключено отображение содержимого окна при переносе (что случается довольно редко, т.к. компьютеры сейчас довольно мощные и тормозить это не будет, задо выглядит гораздо лучше). А вот так, как делаешь ты, возможно моргание окна при перетаскивании. Причем, порой очень сильное. Именно поэтому я от такого способа изначально отказался (у меня, например используется скин и это довольно тяжеловато для отрисовки обычным способом).
--------------------
Программист - это не профессия. Это диагноз...
PM MAIL WWW ICQ   Вверх
RA
Дата 5.9.2002, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 14
Всего: 115



Знаешь, я думаю что для тех у кого слабые тачки,  дизайнерские навороты вообще не нужны. Такчто переделывай чтоб как у меня было  :)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.