Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.27;
Скачать: CL | DM;

Вниз

resize компнента run-time мышью   Найти похожие ветки 

 
Mr.Frog   (2008-07-24 13:52) [0]

Приветствую всех, вопрос состоит в следующем, как в апуенном приложении менять рамеры компонента TImage мышью, как например в visio или в подобных программах


 
Vlad Oshin ©   (2008-07-24 14:12) [1]

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


 
Медвежонок Пятачок ©   (2008-07-24 14:18) [2]

жестоко-то как


 
Vlad Oshin ©   (2008-07-24 15:07) [3]

a чего? долго чтоль написать (только вправо, лень)

type
 TForm3 = class(TForm)
   im: TPanel;
   Label1: TLabel;
   procedure imMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
   procedure FormShow(Sender: TObject);
   procedure imMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
   procedure imMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
 private
   IR:byte;
   procedure ZeroFlag;
 end;

var
 Form3: TForm3;

implementation

{$R *.dfm}
procedure TForm3.ZeroFlag;
begin
 IR := 0;
end;

procedure TForm3.FormShow(Sender: TObject);
begin
 ZeroFlag;
end;

procedure TForm3.imMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if (im.Width-x)<2 then IR:=1;
end;

procedure TForm3.imMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
 if IR=0
  then if (im.Width-x)<2 then im.Cursor:=crsizeAll else im.Cursor:=crdefault
  else im.Width:=x;
end;

procedure TForm3.imMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 ZeroFlag;
end;


 
Игорь Шевченко ©   (2008-07-24 15:33) [4]


> как в апуенном приложении


Это куда ?


 
oldman ©   (2008-07-24 16:17) [5]


> если мышь движентся и если соотв.флаг взведен, менять соотв.
> размеры компанента


Если image полноцветка - эх, и тормозить будет...
Можно же "резинку" использовать.


 
tesseract ©   (2008-07-24 20:26) [6]


> Если image полноцветка - эх, и тормозить будет..


Ну, можео поиграться с оптимизацией и выводом в видеопамять. Но мерцать всё равно будет.


 
Mr.Frog   (2008-07-24 23:28) [7]

Не подходит, попробую выразить мысль конкретнее. Мне необходимо, чтобы в запущенном приложении я имел возможность изменять размеры компонента (к примеру TImage) как при разработке. То есть самыми простыми словами, чтобы были точки по углам/цетнрам_сторон компонента, нажимая на которых мышью, можно было манипулировать размером.

Однако!

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


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


 
Германн ©   (2008-07-25 00:35) [8]


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

Создание своего компонента проще написания трех простых обработчиков событий мышки?
Хотя. Если такой компонент часто используется в разных программах, тогда стоит его написать.


 
Mr.Frog   (2008-07-25 09:13) [9]


> Хотя. Если такой компонент часто используется в разных программах,
>  тогда стоит его написать.

именно.
только вот с созданием своих компонентов я то как раз и не знакомился, потому и не представляю как это сделать если таково возможно


 
Vlad Oshin ©   (2008-07-25 09:34) [10]

в сети примеры как породить от соотв.компанента свой
надо написать обработку соотв.сообщений от мыши


 
icWasya ©   (2008-07-25 14:07) [11]

поищи TStretchHandle



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

Текущий архив: 2009.09.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
15-1248550614
TStas
2009-07-25 23:36
2009.09.27
Как вставить у страниц номера в 2007 Ворде?


2-1248344622
kostyl_kostyl
2009-07-23 14:23
2009.09.27
Как абстрагироваться от типов свойств класса?


15-1248465837
dbng
2009-07-25 00:03
2009.09.27
А вот скажите, кому принадлежат права на информацию


3-1227689222
linox
2008-11-26 11:47
2009.09.27
out of memory


2-1248173443
Pavel
2009-07-21 14:50
2009.09.27
Перемещение Image в ScrollBox