![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Canvas не обновляется... [D7, Win2k]
3APA3A © (2004-11-04 18:03:00)for i:= 0 to Length(MyArray) - 1 do
Canvas.Pixels[MyArray[i].X, MyArray[i].Y] := clRed;
координаты в MyArray постоянно изменяются. Также добавляются новые элементы. И цикл этот крутится все время работы программы.
Но выводится только первая точка. Остальные - нет.
Причем, если после цикла добавить ShowMessage('') и сидеть, и постоянно давить на Enter - все прекрасно рисуется... В чем проблема?
3APA3A (2004-11-04 23:10:00) [1]Ой блин...Разобрался... Дело на самом деле не в Canvas'е было...
Извините...
3APA3A (2004-11-04 22:42:00) [2]Нет, проблема не в массиве. Т.к. сказал же - если после цикла дописать ShowMessage() и постоянно давить enter - все рисуется...
Какие еще варианты?
Rem (2004-11-04 18:34:00) [3]icWasya © (04.11.04 18:29) [6]
С каких это пор Pixels работает через PostMessage?
icWasya (2004-11-04 18:29:00) [4]А если после цикла добавить Application.ProcessMessages; ???
Rem (2004-11-04 18:23:00) [5]Скорее всего, проблема в MyArray[].
Вы уверены, что координаты из MyArray попадают в область отображения? Или что элементы массива отличаются друг от друга? Или что размер массива задан правильно?
Anton_K (2004-11-04 18:22:00) [6]А может у вас в MyArray одни и те же координаты?
3APA3A (2004-11-04 18:14:00) [7]Это ничего не меняет. Пробовал. Все равно только одна рисуется.
Prohodil Mimo (2004-11-04 18:09:00) [8]Prohodil Mimo © (04.11.04 18:08) [1]
хотя лажа получица :о)
надо по другому
Prohodil Mimo (2004-11-04 18:08:00) [9]как один из вариантов:
for i:= 0 to Length(MyArray) - 1 do
begin
Canvas.Pixels[MyArray[i].X, MyArray[i].Y] := clRed;
paint;
end;