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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как resize-ить форму за некоторый элемент, например за TLabel или TImage 
:(
    Опции темы
Gershkovich
Дата 9.3.2006, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Хочу чтоб на моей форме в правом нижнем углу
был такой уголок за который можно resize-ить форму.
Вроде он называется grip.


Стандартного компонента в Делфи я не нашел
поэтому нарисовал картинку и поместил в соответствующе
место на форме.

Как заставить ее вести как стандартный grip ?
Менять мышиный курсор на при наведении на нее я уже научился smile

Подозреваю что это довольно просто, но я не представляю с чего начать.

Заранее спасибо.
PM MAIL   Вверх
Snowy
Дата 9.3.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



А просто бросить StatusBar на форму не пойдет?
PM MAIL   Вверх
Gershkovich
Дата 9.3.2006, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Snowy, я тебя уважаю (ничего если на "ты"? извини если што)
как чела и как профессионала - ты постил сюда
хорошие стоящие ответы.

Но если человек запостил вопрос на форум, то он ожидает
ответ именно на него. Правда ?

Если бы я хотел стсатус бар, я бы нарисовал статус бар
(или даже два) и не морочил голову ни себе ни людям.

Для дизайна моей формы статус бар не подходит.
Мне надо именно grip.

PM MAIL   Вверх
Snowy
Дата 9.3.2006, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Ну вот: Допустим у меня grip - Label.
Тогда код такой:
Код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    SzX, SzY: Integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  SzX := X; SzY := Y
end;

procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  SzX := 0;
end;

procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if SzX > 0 then
  begin
    Width := Mouse.CursorPos.X + SzX - Left ;
    Height := Mouse.CursorPos.Y + SzY - Top;
  end;
end;

end.

PM MAIL   Вверх
Alex
Дата 9.3.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Gershkovich, Спокойствие, только спокойствие, дело в том, что не нужно ничего рисовать если только вы конечно не делаете приложение со скинами. Положив на форму StatusBar, выставив ему свойство "Align" в "alBottom" вы увидете свой уголок.


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Snowy
Дата 9.3.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Цитата(Gershkovich @ 9.3.2006, 18:24 Найти цитируемый пост)
Если бы я хотел стсатус бар, я бы нарисовал статус бар
Из вопроса это неочевидно. А у статусбара уголок вполне подходящий...
PM MAIL   Вверх
Gershkovich
Дата 10.3.2006, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Snowy спасибо за код. Буду разбираться.
Примерно так я себе это и представлял.

Хотя мне казалось, что это делать можно через какие-то системные сообщения,
которые форма перехватывает (ну или что-то в это роде).


Насчет статус бара - да, grip там приличней чем я нарисовал.
Но меня не устраивает что у него border не убирается.
Т.е. получается что статус бар как-бы вдавленный. А мне надо просто
ровная поверхность.

PM MAIL   Вверх
Guedda
Дата 10.3.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

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



Цитата(Gershkovich @ 10.3.2006, 11:16)
получается что статус бар  как-бы вдавленный. А мне надо просто ровная поверхность.

Можно сделать его обыкновенным.
Просто кликаешь на него два раза, создаешь TStatusPanel, и свойство Bevel := pbNone.
Вот так:
Код

StatusBar1.Panels[0].Bevel := pbNone;


Вот примерно так получится:
user posted image


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

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

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

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

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

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


 




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


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

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