Форум: "Основная";
Текущий архив: 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.007 c