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

Вниз

Размеры компонентов   Найти похожие ветки 

 
Vacheslav   (2002-03-03 20:11) [0]

Подскажите, как во время выполнения програмыы изменять размеры компонентов (мышкой - сужать/ расширять)?


 
lipskiy   (2002-03-03 21:35) [1]

Ловить координаты мышки (GetCursorPos) по OnMouseDown запоминать стартовые, по OnMouseMove снова брать текущие, вычислять дельту и на эту дельту менять размеры объекта (Panel1.Width:= ...).


 
drpass   (2002-03-03 22:31) [2]

Разумнее разбить форму на изменяемые области с помощью TPanel и TSplitter, а прочим компонентам установить точки привязки (Anchors) в true


 
lipskiy   (2002-03-04 00:46) [3]

Сплиттер не позволит тянуть мышкой панель сразу в двух координатах. Но если это не требуется, то так, конечно, удобнее.


 
Vacheslav   (2002-03-05 15:06) [4]

Что-то глючит однако. Пишу в onMouseMove: Button1.width:=Button1.width+x-DragPoint.x;
и при попытке изменить размер кнопка становится астраномической величины(в экран не влазит) или наоборот пропадает.
Help!


 
Kozhanov   (2002-03-05 15:08) [5]

> Vacheslav
Есть простенький компонент по этому поводу.
Могу выслать.


 
lipskiy   (2002-03-05 15:21) [6]

2Vacheslav
Глючит потому, что при изменении размеров кнопки событие onMouseMove вызывается вновь автоматически - мышку то держишь на месте, а кнопка поехала - тот же MouseMove происходит (неважно, что двигать - мышку и ли объект под ней), и попадаешь в бесконечный цикл. Надо флажки расставлять, видимо.


 
Vacheslav   (2002-03-05 15:38) [7]

2Kozhanov давай на vatcheslav@mtu-net.ru
2lipskiy поподробнее, пожалуйста, как их расставить?


 
lipskiy   (2002-03-05 20:50) [8]

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Moving:boolean;
Start,Current:TPoint;
InitialSize:TPoint;

const
Field = 10;

implementation

{$R *.DFM}

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if (X > Panel1.Width - Field) and (Y > Panel1.Height - Field) then
begin
Moving:= true;
Start:= Point(X,Y);
InitialSize:= Point(Panel1.Width, Panel1.Height);
end;
end;

procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if (X > Panel1.Width - Field) and (Y > Panel1.Height - Field) then
Panel1.Cursor:= crSizeNWSE else Panel1.Cursor:= crDefault;
if Moving then
begin
Panel1.Width:= InitialSize.x + (X - Start.X);
Panel1.Height:= InitialSize.y + (Y - Start.Y);
end;
end;

procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Moving:= False;
end;

end.


 
Vacheslav   (2002-03-05 20:55) [9]

Спасибо всем.



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

Форум: "Основная";
Текущий архив: 2002.03.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.005 c
6-66951
Lamok(real)
2002-01-06 09:41
2002.03.21
Про почту


14-66959
JohnnyCrisJoe
2002-02-06 01:35
2002.03.21
Роджер Желязны и его влияние на сознание людей..


1-66842
Hunter
2002-02-21 22:02
2002.03.21
Экспорт в Excel


14-66996
Yuri Btr
2002-02-08 11:04
2002.03.21
Подкиньте идею


3-66734
gegc
2002-02-20 09:37
2002.03.21
Как и чем создать DBF чтобы он открывался в экселе и аксесе И чтобы руссие буквы были похожи на русские буквы? (BDE не предлагать!)





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