Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

DNK
I. DNK
Баллы: 5

Подробнее »



Вопрос # 1 595

/ вопрос открыт /

Здравствуйте, эксперты!
Такой вопрос: есть ли в делфи компонент, для изменения размеров окна при помощи мыши? Просто мне нужно BorderStyle оставить bsNone, а требуется изменять размеры окна. Пожалуйста поздскажите!

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Hi-tek Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Hi-tek (статус: 1-ый класс)
Вопрос отправлен: 18 мая 2008, 21:14
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Hi-tek!
Всё очень просто. Выставляем для формы BorderStyle := bsNone;
потом в коде после слова public в объявлении формы пишем

procedure CreateParams(var Params: TCreateParams); override;
оставив курсор в этой же строке, жмём Ctrl+Shift+C
добавиться тело процедуры.
перемещаемся туда и дописываем такое
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  inherited;
Params.Style := (Params.Style or WS_THICKFRAME);
end;
всё, можно запускать.

P.S. Продаю компоненты TBrain и TDirectHand. Кол-во не ограничено, дорого. Без исходников:)
P.S.S достали уже, на всё им подавай компоненты. Нужно хотя бы немного думать головой.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 18 мая 2008, 23:48
Оценка за ответ: 3

Комментарий к оценке: Рамочка то не нужна :( она весь вид портит... Ладно, оставлю как было.

Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 19 мая 2008, 16:21; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 19 мая 2008, 09:06 [#1]:

А где в вопросе сказано, что рамочка не нужна? тем более, в приведённом скрине она есть.
Но в том примере, где я привожу рамочки то и нет.
Можно конечно придумать, что бы было вообще без рамки, но это выльется не в один десяток строк.

Нельзя обманывать пользователей, не надо придумывать извращенный дизайн - пользователи будут только обижаться.
Галочка "подтверждения прочтения" - вселенское зло.
Hi-tek

Hi-tek (статус: 1-ый класс), 19 мая 2008, 14:37 [#2]:

1) А где в вопросе сказано, что рамочка не нужна? тем более, в приведённом скрине она есть.
>> Просто мне нужно BorderStyle оставить bsNone, а требуется изменять размеры окна.
2) Но в том примере, где я привожу рамочки то и нет.
>> Она другая, но рамка всё равно же есть.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Вот скрин, слева - MS IE и тот самый уголок, который я хотел бы реализовать в своей программе (как он смотрится - фрагмент приведен в красной рамке). http://forum.s-c.ru/download/320245_pic_s-c.ru.JPG
Вадим К

Вадим К (статус: Академик), 19 мая 2008, 15:21 [#3]:

Так-с, теперь появилось упоминание о уголке. изображение, приложенное к вопросу теперь уже вписывается. Так что, надо возможность таскать за уголог и всё?
Галочка "подтверждения прочтения" - вселенское зло.
Hi-tek

Hi-tek (статус: 1-ый класс), 19 мая 2008, 16:21 [#4]:

Спасибо, уже всё сделал :) Нужно всего лиж написать:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.....
public
MouseDownSpot : TPoint;
Capturing : bool;
end;
.....

procedure TForm2.Image5MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Capturing := true;
MouseDownSpot.X := x;
MouseDownSpot.Y := Y;
end;

procedure TForm2.Image5MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if Capturing then
begin
Image5.Left := Image5.Left - (MouseDownSpot.x - x);
Image5.Top := Image5.Top - (MouseDownSpot.y - y);
Form2.ClientWidth:=Image5.Left+12;
Form2.ClientHeight:=Image5.Top+12
end;
end;

procedure TForm2.Image5MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Capturing then
begin
ReleaseCapture;
Capturing := false;
Image5.Left := Image5.Left - (MouseDownSpot.x - x);
Image5.Top := Image5.Top - (MouseDownSpot.y - y);
Form2.ClientWidth:=Image5.Left+12;
Form2.ClientHeight:=Image5.Top+12
end;
end;
.....

:)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 17 августа 2017, 10:58
Выполнено за 0.05 сек.
Рейтинг@Mail.ru