Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Начём нарисовать? [D7, WinXP]


Страницы:   1 2

clampo ©   (2006-01-23 02:18:00) 

Здрасте. Подскажите, пожалуйста начём лучше рисовать визуализатор звука(очень быстро меняется картинка), и как рисовать без мерцания


Fenik   (2006-02-10 00:01:00) [1]

> antonn ©  (24.01.06 09:55) [6]
> рисовать на буфферном TBitmap, выводить его через BitBlt()


И причем выводить только ClipRect


Ling   (2006-02-09 19:51:00) [2]


> antonn

DoubleBuffered не глючит с манифестом... даже дети этот баг исправлять умеют.


antonn   (2006-02-02 09:36:00) [3]

чье? мое? в анкете есть.


clampo   (2006-02-02 05:01:00) [4]

antonn, скажи мыло, так на всякий


clampo   (2006-02-01 14:11:00) [5]

Я понял: у меня массив для показа лагует


antonn   (2006-01-31 11:10:00) [6]


>for i:=0 to 25 do
> BandOut[i]:= x; все столбци одинаковой длинны, пАчемуто

это наверно потому, что в каждый эдемент массива записывается одно и тоже значение:)

а так?
for i:=0 to 25 do begin
x:=i+(m[i div nc*nc+nc-1]-s);
BandOut[i]:= x;
end;


clampo   (2006-01-31 09:58:00) [7]

m:array[1..bufSize*nc] of smallInt;массив


x:=i+(m[i div nc*nc+nc-1]-s);
его заполнение (s - пост. меняющаяся величина)

for i:=0 to 25 do
BandOut[i]:= m[i];
работает, но каряво

for i:=0 to 25 do
BandOut[i]:= x;
все столбци одинаковой длинны, пАчемуто


antonn   (2006-01-31 04:53:00) [8]

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

var i:integer;
begin
for i:=0 to 15 do
BandOut[i]:=  ; //ну подставь сюда переменную, или элемент своего массива


clampo   (2006-01-30 21:27:00) [9]

Прошу прощения за "опечатку" я хотел сказать:
Я это уже понял. Как сделать чтоба всё тоже самое, только не ч\з рандом, а ч\з др пост. меняющеюся велечину? теперь наверно панятно?


antonn   (2006-01-30 18:32:00) [10]

т.е. для всех уровней использовать 1 переменную, и чтоб они были одинаковы? в цикле прогнать
var i:integer;
begin
for i:=0 to 15 do
BandOut[i]:=25;

или еще лучше, в процедуре рисования сразу рисовать одинаковые столбцы, без передачи массива. Только нафига вообще нужны эти столбцы?..

вообще, что то я плохо понимаю...


clampo   (2006-01-30 18:02:00) [11]

Я это уже понял. Как сделать чтоба всё тоже самое, только не ч\з рандом, а ч\з др пост. меняющеюся велечину все одинаковые?


antonn   (2006-01-30 08:22:00) [12]

clampo ©   (30.01.06 4:38) [28]
ну через рандом - потому что для каждого столбца выбирается случайная высота, от 0 до 33. 33 - это максимальная высота.

> а ч\з др пост. меняющеюся велечину все одинаковые

а эта величина для всех столбцов используется?

з. танька   (29.01.06 20:52) [26]
чего то я не понял... :)


clampo   (2006-01-30 04:38:00) [13]

Ктонить ответит на ?: Почему ч\з random(34) у всех пиков разная высота, а ч\з др пост. меняющеюся велечину все одинаковые. (др велечина меняецца с той же частотой(примерно)и в тех же пределах)?


Gero   (2006-01-29 21:05:00) [14]

> информация лишний раз будет копироваться туда-сюда как дура

LOL


з. танька   (2006-01-29 20:52:00) [15]

непонятно зачем все советуют этот DoubleBuffered. ну ресуется в памяти сначала и шо? всё равно если нарисовать 10 объектов на канвасе он 10 раз обновится и пофигу дабл он или не дабл. только информация лишний раз будет копироваться туда-сюда как дура. даблбуфферед на самом деле нужен для панелей в которых много компонентов и для форм а вовсе не для того о чем некоторые думают.


clampo   (2006-01-29 16:46:00) [16]

запутался я чё-то


Gero   (2006-01-29 14:20:00) [17]

> Я потому и пришел к выводу, что это у формы doublebuffed
> неправильно реализован.

А он у нее вобще не реализован. DoubleBuffered и его использование наследуется от TWinControl, как у панели, так и у формы.

Как я уже говорил, виной всему кривая работа с темами.


antonn   (2006-01-29 14:14:00) [18]

Gero ©   (29.01.06 13:35) [22]
DoubleBuffeder не виноват, виной неправильная работа с темами.

просто, если на панель поместить элементы(у меня stringgrid'ы были) и выставить у этой панели doublebuffered, то бага не наблюдается. А если у формы выставить, то баг есть. Надо еще над фреймами поиздеваться... Я потому и пришел к выводу, что это у формы doublebuffed неправильно реализован.

clampo ©   (29.01.06 12:34) [21]
Вот так вроде работает, но очень коряво:BandOut[i]:=m[i], где m:array[1..bufSize*nc] of smallInе, bufSize-"уровень" звука со звукавухи

да я для примера свой массив придумал, передавай сразу свой, и работай с ним:) может у тебя там больше столбцов(вроде обычно 25 штук).

Набережных С. ©   (29.01.06 7:58) [20]
нет, решения не нашел, надеюсь, что в 2006 нет такого, только проверить не могу.


Gero   (2006-01-29 13:35:00) [19]

> [14] antonn ©   (28.01.06 20:09)

DoubleBuffeder не виноват, виной неправильная работа с темами.


clampo   (2006-01-29 12:34:00) [20]

Вот так вроде работает, но очень коряво:BandOut[i]:=m[i], где m:array[1..bufSize*nc] of smallInе, bufSize-"уровень" звука со звукавухи


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо