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

Вниз

На счет того как растянуть и перетащить   Найти похожие ветки 

 
Демон   (2002-04-27 17:29) [0]

Здрасти всем!
Подскажите мне, пожайлуста, как можно перетаскивать форму за какой-нибудь Label и как ее растягивать за этот же Label???


 
PaRL   (2002-04-27 17:32) [1]

Я че то не понял, как это "растягивать за Label" ???


 
Демон   (2002-04-27 17:46) [2]

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


 
PaRL   (2002-04-27 18:08) [3]

Конечно понял.


 
Демон   (2002-04-27 18:09) [4]

Ну дак скажи как?... Плиз!


 
Pat   (2002-04-27 18:22) [5]

Примерный вариант:

var
Form1: TForm1;
x0,y0:integer;
move:boolean=false;

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
move:=true;
end;

procedure TForm1.Label1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if move then
begin
width:=width+x-x0;
height:=height+y-y0;
x0:=x;
y0:=y;
end;
end;

procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
move:=false;
end;



 
PaRL   (2002-04-27 18:28) [6]

Принцип такой, но это требует доработки, так как во время нажатия кнопки мыши, пользователь не видит какой будет форма. Удачи.

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
GetCursorPos(pt);
Application.ProcessMessages;
Label1.Caption := IntToStr(pt.X) + " " + IntToStr(pt.Y);
a := pt;
end;

procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var k, m : integer;
begin
GetCursorPos(pt);
Application.ProcessMessages;
k := pt.X - a.X;
m := pt.Y - a.Y;

Form1.Height := Form1.Height + k;
Form1.Width := Form1.Width + m;
end;


 
Pat   (2002-04-27 18:31) [7]

Насчет перемещать:
Нажимай Ctrl и тащи :-))

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const SC_DragMove = $F012;
begin
if (button=mbleft) and (ssCTRL in Shift) then
begin
ReleaseCapture;
perform(WM_SysCommand, SC_DragMove, 0);
end;
end;



 
PaRL   (2002-04-27 18:31) [8]

PS У Pat"a правильно.



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

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

Наверх




Память: 0.46 MB
Время: 0.005 c
14-39852
Alx2
2002-04-04 15:57
2002.05.13
Задачка


1-39741
Smithson
2002-04-27 11:55
2002.05.13
Вопрос по потокам


1-39748
Vovchik
2002-04-27 19:51
2002.05.13
Копирование файлов с помощью SHFileOperation


14-39830
Blackweber
2002-04-02 01:36
2002.05.13
Блок-схемы


1-39783
TAV48
2002-04-28 15:22
2002.05.13
Арифметические выражения. Очень срочно надо.





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