Конференция "Основная" » resize компнента run-time мышью [D7, WinXP]
 
  • Mr.Frog (24.07.08 13:52) [0]
    Приветствую всех, вопрос состоит в следующем, как в апуенном приложении менять рамеры компонента TImage мышью, как например в visio или в подобных программах
  • Vlad Oshin © (24.07.08 14:12) [1]
    вычислить что мышь над бордюром, сменить курсор
    если нажали, проверить где, взвести соотв.флаг, если отпустили сбросить
    если мышь движентся и если соотв.флаг взведен, менять соотв.размеры компанента
  • Медвежонок Пятачок © (24.07.08 14:18) [2]
    жестоко-то как
  • Vlad Oshin © (24.07.08 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;
  • Игорь Шевченко © (24.07.08 15:33) [4]

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


    Это куда ?
  • oldman © (24.07.08 16:17) [5]

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


    Если image полноцветка - эх, и тормозить будет...
    Можно же "резинку" использовать.
  • tesseract © (24.07.08 20:26) [6]

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


    Ну, можео поиграться с оптимизацией и выводом в видеопамять. Но мерцать всё равно будет.
  • Mr.Frog (24.07.08 23:28) [7]
    Не подходит, попробую выразить мысль конкретнее. Мне необходимо, чтобы в запущенном приложении я имел возможность изменять размеры компонента (к примеру TImage) как при разработке. То есть самыми простыми словами, чтобы были точки по углам/цетнрам_сторон компонента, нажимая на которых мышью, можно было манипулировать размером.

    Однако!

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


    таким образом естественно можно, и я так и справлялся с этой задачей долгое время. Меня же интересует, есть ли уже более простые варианты. Может быть создать свой компонент, который будет иметь такое свойство? но как тогда? или что-нибудь ещё.
  • Германн © (25.07.08 00:35) [8]

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

    Создание своего компонента проще написания трех простых обработчиков событий мышки?
    Хотя. Если такой компонент часто используется в разных программах, тогда стоит его написать.
  • Mr.Frog (25.07.08 09:13) [9]

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

    именно.
    только вот с созданием своих компонентов я то как раз и не знакомился, потому и не представляю как это сделать если таково возможно
  • Vlad Oshin © (25.07.08 09:34) [10]
    в сети примеры как породить от соотв.компанента свой
    надо написать обработку соотв.сообщений от мыши
  • icWasya © (25.07.08 14:07) [11]
    поищи TStretchHandle
 
Конференция "Основная" » resize компнента run-time мышью [D7, WinXP]
Есть новые Нет новых   [134492   +14][b:0][p:0.001]