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

Вниз

Перемещение объектов по форме   Найти похожие ветки 

 
Serj   (2003-04-13 17:20) [0]

Как заставить объект равномерно перемещаться по форме?
Пробобал изменять координаты left и top, он появляется только в начальной и конечной точках


 
Anatoly Podgoretsky   (2003-04-13 17:53) [1]

Менять свойства left и top, другого не дано.
А у тебя ошибка в 17 строке.
Какая гадать не буду, но есть преположения :-)


 
Giemgo   (2003-04-13 18:43) [2]

Достаточно очевидно, что надо использовать таймер с маленьким интервалом и в каждой итерации передвигать объект по чуть-чуть вплоть до конечной точки


 
NA   (2003-04-13 21:08) [3]

Наверное, немного лучше будет так:

procedure Move;
var i, Lefttmp : integer;
begin
Lefttmp := Myobject.Left;
for i:=Lefttmp downto 1 do begin
Sleep (1);
Myobject.Left := Myobject.Left - 1
end
end;


 
NA   (2003-04-13 21:09) [4]


> Anatoly Podgoretsky © (13.04.03 17:53)
> Менять свойства left и top, другого не дано.
> А у тебя ошибка в 17 строке.


Отчего именно в 17-й? ;)


 
Giemgo   (2003-04-13 21:53) [5]

NA © (13.04.03 21:08)

мне кажется так тормозить будет... хотя фиг знает


 
Giemgo   (2003-04-13 21:59) [6]

NA © (13.04.03 21:08)

мне кажется так тормозить будет... хотя фиг знает


 
Palladin   (2003-04-13 22:10) [7]


> появляется только в начальной и конечной точках


кажется у меня тоже есть предположения...

код давай


 
wal   (2003-04-13 22:16) [8]

Вместо Sleep"а поставь Application.ProcessMessages


 
NA   (2003-04-14 00:40) [9]


> Giemgo (13.04.03 21:53)
> NA © (13.04.03 21:08)
> мне кажется так тормозить будет... хотя фиг знает

А ему, кажется, этого и надо :))))


> wal © (13.04.03 22:16)
> Вместо Sleep"а поставь Application.ProcessMessages

1 - см. выше ;)
2 - ProcessMessages - это хороший стиль, и все такое ;) К тому же, хотя для данного случая оно не особенно критично, но без этой вставки, например, НЕ БУДУТ ДОСТУПНЫ другие контролы, пока не кончится анимация...


P.S. я вапще хотел еще более нагло написать, типа

procedure mmm;
for
with Myobject do for Tag:=Left downto 1 do begin
Sleep (1);
Myobject.Left := Tag
end

но отчего-то не стал... :))))


 
NA   (2003-04-14 00:42) [10]


procedure mmm;
begin
for
with Myobject do for Tag:=Left downto 1 do begin
Sleep (1); Left := Tag
end
end


обчепятался весь.


 
NA   (2003-04-14 00:45) [11]

совсем уже сплю... :)))

procedure mmm;
begin
with Myobject do for Tag := Left downto 1 do begin
Sleep(1); Left := Tag
end
end;


 
Songoku   (2003-04-14 01:04) [12]

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const
SC_DragMove = $F012;
begin
ReleaseCapture;
panel1.perform(WM_SysCommand, SC_DragMove, 0);
end;


 
Serj   (2003-04-15 18:31) [13]

> Anatoly Podgoretsky © (13.04.03 17:53)
> Менять свойства left и top, другого не дано.


Это понятно, но как?

> NA © (13.04.03 21:08)
> Наверное, немного лучше будет так:


Почему пишет ошибку, типа:
Undeclared identifier: "Myobject"

> NA © (14.04.03 00:45)
совсем уже сплю... :)))


Тут всё работает, но
Sleep задерживает ход программы, но форма не обновляется, и объект всё так же появляется только в начальной и конечной точках

> wal © (13.04.03 22:16)
> Вместо Sleep"а поставь Application.ProcessMessages


Ура!!! Получилось, мне так и надо было.

Всем спасибо.


 
MsGuns   (2003-04-15 20:05) [14]

А нельзя тупо перерисовывать методом Update после каждой "фрикции" ?;))


 
Yanis   (2003-04-15 20:06) [15]

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Button1.perform(WM_SysCommand, $F012, 0);
end;

Проще не бывает!



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

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

Наверх





Память: 0.47 MB
Время: 0.008 c
14-91513
[NIKEL]
2003-04-10 18:17
2003.04.28
Автоматизация Страхования


1-91281
Dmitry V. Averuanov
2003-04-17 12:24
2003.04.28
Как передать array of char из DLL ?


14-91452
BIG BROTHER
2003-04-11 16:53
2003.04.28
Размер


1-91356
HeWSter
2003-04-09 15:52
2003.04.28
Как отловить нажатие горячих клавиш из потока?


1-91313
ErikIvanov
2003-04-16 18:19
2003.04.28
Немогу понять куда девался interface!





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