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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
2-1248451922
Альберт
2009-07-24 20:12
2009.09.27
Работа с time_t


2-1248354193
SV
2009-07-23 17:03
2009.09.27
Автообновление программы с сайта


3-1227710340
DSKalugin
2008-11-26 17:39
2009.09.27
как этот FB триггер перевести на MS SQL


15-1248695199
Василий Жогарев
2009-07-27 15:46
2009.09.27
Выбор струйника формата А3 подсоветуйте


3-1227617892
nstur
2008-11-25 15:58
2009.09.27
Объединение строк





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