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

Вниз

Y X Step s   Найти похожие ветки 

 
RASkov   (2006-08-19 23:51) [0]

Сегдя день какой то... тормажу блин.
Как осуществить перемещение (прокрутку) например Labelя по форме. Т.е. нажал мышу переместил на пятнадцать пикселей вправо отпустил у Labelя Left прибавился на 15
И при этом перемещать сам Labelь во время перемещения мыши с нажатой кнопкой
Зделал так (см ниже) получились качели какие то. Мышь водишь с нажатой кнопкой вправо влево по 5 пикселей а Labelь начинает летать из стороны в сторону начиная по чуть чуть и разгоняется до бешенных скоростей. Улетает за края формы хрен знает куда. :(

Это надо мне для того чтобы перемещать область....Есть Битмап большой (Больше размера формы) нужно CopyRect"om копировать область на клиентскую часть формы...
вот и сделать типа прокрутки битмапа на форме.... Блин вроде понятно написал - зацепил - тащишь - о она (часть Битмапа) копируется на форму... Уххх..

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

StartX, StartY, NewX, NewY: Integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 NewX:=Label1.Left; NewY:=Label1.Top;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 StartX:=X; StartY:=Y;
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
var StepX, StepY: Integer;
begin
 if ssLeft in Shift then begin
  StepX:=X-StartX;
  StepY:=Y-StartY;
  NewX:=NewX+StepX;
  NewY:=NewY+StepY;
  Label1.Caption:=Format("X= %d StartX= %d, StepX= %d",[X, StartX, StepX]);
  Label1.Left:=NewX;
  Label1.Top:=NewY;
 end;
end;


 
RASkov   (2006-08-20 01:32) [1]

Типа кроме меня ещё и никто незнает?


 
DesWind ©   (2006-08-20 01:47) [2]

Интуитвно!!! Глобальных переменных нехватает. Не в том состоянии,шоб листинги читать )


 
DesWind ©   (2006-08-20 01:59) [3]

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


 
Pavia ©   (2006-08-20 02:20) [4]

procedure TForm1.FormCreate(Sender: TObject);
begin
NewX:=Label1.Left; NewY:=Label1.Top;

end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
StartX:=X; StartY:=Y;

end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
if ssLeft in Shift then begin
 Label1.Left:=NewX+X-StartX;
 Label1.Top:=NewY+Y-StartY;
 Label1.Caption:=Format("X= %d StartX= %d, StepX= %d",[X, StartX, X-StartX]);
end;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 NewX:=NewX+X-StartX;
 NewY:=NewY+Y-StartY;

end;


 
RASkov   (2006-08-20 02:56) [5]

> [4] Pavia ©   (20.08.06 02:20)

СПАСИБО БОЛЬШОЕ.
То что надо. Сейчас попробую все это что бы с учетом границ формы сделать. Ну это как в ACDSee с картинокой - когда ее тащишь вверх то если нижняя граница достигла низа формы то переставалась тащиться... Если и здесь не соображу ... уж помогите...



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

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

Наверх




Память: 0.45 MB
Время: 0.057 c
15-1155876563
PSPF2003
2006-08-18 08:49
2006.09.10
Несколько вопросов


10-1123268291
Michael5
2005-08-05 22:58
2006.09.10
Как задать ширину столбца в Excel?


2-1156146595
novill
2006-08-21 11:49
2006.09.10
Философское. Как правильнее выйти из процедуры?


15-1155537715
Furyz
2006-08-14 10:41
2006.09.10
SWI.Чей это формат?


15-1155926486
TImage1
2006-08-18 22:41
2006.09.10
Уменьшение изображения





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