|
30.01.2009, 09:53 | #1 |
Участник
|
mazzy: Комфортный ProgressBar
Источник: http://axapta.mazzy.ru/lib/comfort_progressbar/
============== Совет о том, как сделать стандартный ProgressBar более удобным, изменив всего лишь одну строчку кода. ============== Источник: http://axapta.mazzy.ru/lib/comfort_progressbar/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. Последний раз редактировалось Gustav; 30.01.2009 в 10:01. Причина: исправление ссылки |
|
30.01.2009, 11:06 | #2 |
Moderator
|
Сергей, так я ж писал заметку об этом еще когда работал в РНР.
Даже вот файл нашел который тебе отправлял ... А вот старой заметки на сайте не нашел P.S. Я не претендую на авторство, просто интересно куда делось то что было.
__________________
С уважением, kvan. |
|
|
За это сообщение автора поблагодарили: mazzy (2), ZVV (1), miklenew (2). |
30.01.2009, 11:10 | #3 |
Участник
|
Цитата:
Пользуюсь давно и каждый раз радуюсь. Спасибо. Но файл не нашел, переписал заново. Можешь прислать файл? Добавлю текст и добавлю тебя в авторы. ===================== В прошлом году статей/советов практически не было. А сейчас пойдет серия советов/статей по старым наработкам, которыми мы пользуемся уже очень давно. |
|
30.01.2009, 11:22 | #4 |
Moderator
|
Спросил бы что ли ...
В авторы не нужно. В заметке я писал что есть (вернее была в тройке, в четверке уже нет) форма SysOperationProgress которая вводила в заблуждение. Думаю что стоит об этом написать. Постоянно убеждаюсь что тройка очень распространена и до сих пор много работы с ней связано.
__________________
С уважением, kvan. |
|
30.01.2009, 11:27 | #5 |
Участник
|
|
|
30.01.2009, 11:29 | #6 |
Пенсионер
|
в свое время на 2.5 я дорабатывал стандартный прогресс бар, так что можно было менять его ширину и самое главное оно выдавала строку действия вида "Капирую c:\Program Files\...\client\bin\ax32.exe"
зы: если интересно попробую найти
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
30.01.2009, 11:29 | #7 |
Moderator
|
Я отправил письмо.
Смотри в спаме ... письма от меня у тебя в спам попадают. 2blokva: Я думаю что это было бы интересно, 2.5 кое-где еще используется.
__________________
С уважением, kvan. |
|
30.01.2009, 11:47 | #8 |
Участник
|
Интересно.
Поймал. |
|
30.01.2009, 11:54 | #9 |
Участник
|
внес изменения.
Спасибо тебе, Антон. |
|
|
За это сообщение автора поблагодарили: ZVV (1). |
30.01.2009, 12:50 | #10 |
Участник
|
Так можно для тех, кто не хочет много времени тратить, исследуя код:
Для каких это версий? У меня в текущей версии в этом методе этого класса нет установки ширины формы вообще |
|
30.01.2009, 13:00 | #11 |
Участник
|
Цитата:
страшно далек ты от народа сейчас добавлю информацию о версиях. |
|
30.01.2009, 13:31 | #12 |
Участник
|
кстати, в ax2009 более запущенный случай
так и не смог победить эту багу: Отправьте баги в Майкрософт кстати, может хочешь написать совет на эту тему по ax2009? с удовольствием вставлю твой вместо своего. |
|
05.02.2009, 19:54 | #13 |
Пенсионер
|
Вот нашел в архивах. прошу прощения проверить не могу 2.5 нету, но насколько я помню там все оказалось просто в методе:
X++: private str textTranc(str _text) { int txtWith, i = 9; str textTmp = _text; txtWith = conpeek(winapi::getLineDim(_text), 1); while (txtWith > 250) { textTmp = substr(_text, 1, 8) + '...' + substr(_text, i, strlen(_text) - i+1); txtWith = conpeek(winapi::getLineDim(textTmp), 1); i++; } return textTmp; } X++: void setText(str _text, int _idx = 1) { if (!_text) _text = ' '; //avoid flicker progressText[_idx] = this.textTranc(_text); this.update(); } X++: // blokva 16.02.2004 -->> Метод возвращает контейнер с длиной (1) и высотой (2) строки текста в ПИКСЕЛАХ client static container getLineDim(str strtarget) { int x, y; HWND deviceContext; Binary point = new Binary(#offset8); Binary bstr = new Binary(strtarget); DLL _DLL = new DLL('GDI32'); DLLFunction _getTextExtentPoint32 = new DLLFunction(_DLL, 'GetTextExtentPoint32A'); deviceContext = WinApi::createDC(); _getTextExtentPoint32.returns(ExtTypes::DWORD); _getTextExtentPoint32.arg(ExtTypes::DWORD, ExtTypes::POINTER, ExtTypes::DWORD, ExtTypes::POINTER); _getTextExtentPoint32.call(deviceContext, bstr, strlen(strtarget), point); x = point.dWord(#Offset0); y = point.dWord(#sizeOfInt); return [x, y]; }
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
|
За это сообщение автора поблагодарили: mazzy (2). |