|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
помогите пафиксить компонент (ProgressBar)
компонент не мой, да и старый (2004), автор неотзываетса, а я пока ненашол ничего похожего и бесплатного. я сам нуб, и даже через ближайшее пол года непойму код и ненайду где "баг"...
компонент сам ProgressBar типа и всё с ним хорошо кроме того что полоска прогресса недвигаетса на некоторых ниских значениях. например: если шкала от 0 до 100, то при позиции 0 - нету полости, пока нормально, при 1 - поевляетса, при 2 - столькоже, полоска недвигаетса, от 3 до 100 - нормально увеличеваетса пракчитески на каждем изминении Position. Шкала слишком маленькая, потому скажете это нормально? Возмём чтонебуть по больше, от 0 до 1000, сейчас, полоска от 1 до 8 стоит на месте, даже на такой шкале полоска двигаетса почти при каждем увеличении Position. Сам компонент разтянут на 1000 (Width) поетому чтото не так в расчёте тлинны полоски которую надо наресовать. единственное что странно с этим компонентом это то что ему неможно поставить минимум шкалы, я предпологаю что он всегда 0, но малоли какие там кривые формулы. Вот зип прямо с сайта автора: mapage.noos.fr/qnno/files/TQProgressBar.zip или http://www.torry.net/vcl/indicat/met...rogressBar.zip Может ктонебуть умный кинуть глазом на исходный код? Ну или просто предложите мне какойнебуть ровный ProgressBar компонент (который может поделить полосу на части X шириной и пробелами между частями Y шириной, итд)? В противоположном случае уж лудше использовать TGauge. Последний раз редактировалось SuicideTree, 17.01.2012 в 23:16. |
#2
|
||||
|
||||
Разбираться с чужим кодом особого желания нет, помогу предложить порыться на torry.net
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
да, я понемаю что читать и понемать чужой код на лету сложно, но мож тут кто головастый есть. мне самому разбератса самоубийство, так как я точно знаю, что даже прочетав весь код, я эго просто непойму... я даже толком немогу свой компонент какой нибуть создать пока, неговоря о "починке" чужого. ну, попытка непытка...
и этот компонент именно с torry.net и есть, прочекал я там уже всё поидее, если только в каком паке компонентов непорылса тщательно... Последний раз редактировалось SuicideTree, 18.01.2012 в 04:34. |
#4
|
||||
|
||||
Головастый, не головастый, а за 5 минут в любом случае не разберёшься. Скажи на милость, чем стандартный не устроил, красивостей хочется?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
если так тупо, то да, этот хоть и не идеальный, зато нормально выглядит. в делфи же всего лишь два прогресс бар компонента: TGauge - старый, чутьли не остаток от делфи1, а TProgressBar - берёт цвета от темы винды, а если поддержку тем выключить он остаёнетса ещё хуже выглядещий прогресс бар, который показывает прогрес только кусками и некакой точьности там. Цвета TProgressBar неудаетса поменять, да и хотелось чтобы у компонента по больше бозможностей было. Мне нравитса как TGauge выглядит, на много лудше от TProgressBar, но у него не чуть не больше возможностей (не только расцветки, но и как я уже писал поделения полоски на такие куски с пробелами какие ты хочеш, плюс кокие небуть мелочи)
и я нетребую ответа сею минуту, я понемаю что это даже не на день работы, но если ктото скажет что он попробует посмотреть, я подожду неделю или даже месяц |
#6
|
|||
|
|||
собственно, а чем тебе этот баг сильно мешает? Ты реально увидишь разницу длинны полоски между 1 и 2 процентами? Да и не так это важно на самом деле.
ЗЫ. Хотел посмотреть код, но у меня с работы этот сайт закрыт... |
#7
|
|||
|
|||
использовать этот прогрес бар я хочу не по прямому назначению, поетому шкала будет больше, но даже с простой 0-100 шкалой заполняя её, увеличивая позицую на 1 каждую пол секунды, это видно, это не трагедия и не конец света, но всё-таки хотелось бы это исправить
вот линк с torry.net: http://www.torry.net/vcl/indicat/met...rogressBar.zip |
#8
|
||||
|
||||
Есть у меня подозрение, что дело не в работе компонента, а в его настройках. Вы пробовали изменять значения SpaceSize и BlockSize ?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#9
|
|||
|
|||
Я протыкал там всё настойки вдоль и поперёк, к сожелению не в них проблема. Аргументы ниже.
Это происходит даже если они оба (SpaceSize и BlockSize) на 0, в таком случае полоса прогреса непрерывная и тоже прыгает сразу с нуля дальше чем надо. Тут важнее настройка ShowFullBlock, если true то рисован будет только целый блок (BlockSize ширеной) и только тогда когда Position будет уже за блоком (то есть блок должен быт полным, если меньше - он непрорисовываетса вообще), если false то полоса прогреса хоть и будет поделена на блоки (с BlockSize ширеной) и пробелы (с SpaceSize ширеной), но часть блока всёравно будет прорисована (четверть, половина, итд) полностью независимо от значений SpaceSize и BlockSize. У меня ShowFullBlock везде false. Если я вообще не валенок... то надо бы "следить" что происходит с fPosition, fMinVisPos, fUSefullDrawSpace и процедурами SetPosition (тут ест интересный коментарий который я до конца не понемаю) и Paint. Коментарий возле fMinVisPos тоже не очень ясен: Minimum position to send to Paint(), to see at least one bar. А так то неслушайте меня, я тут могу сильно тупить... Последний раз редактировалось SuicideTree, 18.01.2012 в 04:33. |
#10
|
|||
|
|||
Блин, да проще просто руками отрисовать на PaintBox, например.
|
#11
|
|||
|
|||
тогда научи меня пожалуйста, я ничего про Paint (или PaintBox) незнаю... ещё не гуглил и не вникал что где и как, но пока мне компоненты хоть и простые делать, это тёмный лес. с делфи я дружу тоько пару месяцов, а перед этим только в школе с паскалям писал фигню всякую. я бы с удовольтвием сам зделал чтото если бы умел, a если гдето есть гид или так какое небут чтиво которое будет мне полезно на прямую или как алтернативное решение проблемы, кинте ссылку, почитаю, научюсь и оставлю вас в покое
|
#12
|
||||
|
||||
Придётся почитать как отрисовывать на канвасе.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#13
|
|||
|
|||
вкинул JEDI VCL и нашол идеальный компонент (TJvgProgress), а потом опечалилса, в нём можно делать всё ктоме изменения шкалы - она всегда 0..100 (там даже нету Min/Max/Progress никаких, только Percent) - что за бред, почему и зачем так тупо делать....
Тут может задача по проще? Как добавит Min/Max/Progress чтобы правельно рисовало? |
#14
|
|||
|
|||
...percent := progress/max*100
|
#15
|
|||
|
|||
Цитата:
а прорисовка? я % сам пощетать умею... допустим я разтяну компонент на 10000 (Width) с шкалой на 0..10000 и он будет прыгать по 100 на каждем шагу... тупо, это работалобы если % прогрес был в формате xx.xx % (99.99 %), но там integer. Надо лудше. |