|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.11.2011, 01:17 | #1 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
FormResize 1 раз
как мы изменяем размер формы?
берем мышку, хватаем форму за край, тащим, отпускаем. при этом событие OnFormResize вызывалось на каждый пиксел движения мышки... можно как-нибудь сделать чтобы это событие вызывалось только 1 раз, когда отпускаешь мышку? может есть на этот случай другое событие? |
27.11.2011, 02:24 | #2 | ||
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Цитата:
Цитата:
2. Врятли. |
||
27.11.2011, 10:00 | #3 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
На сколько я помню, есть состояние формы, которое указывает, что она находится в режиме изменения размера... Точнее не скажу, под рукой компилятора нет.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
27.11.2011, 12:39 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
I'm learning to live...
|
|
27.11.2011, 14:26 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Stilet, я не писал, что нету такого. Написал, что не знают. Теперь буду знать=)
|
27.11.2011, 14:39 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ок. Теперь знай
I'm learning to live...
|
28.11.2011, 00:55 | #7 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
Stilet, спасибо, работает! =)
задача такая - рисуем таблицу, которая подстраивается под форму. ширина всех ячеек, кроме одной - постоянная, а одна занимает оставшееся место. в ней текст переносится по ширине, это делается с помощью TMemo (другого способа не знаю). ну так вот, при изменении размера формы пересчитывается и ширина ячеек. в целях оптимизации, не хотелось бы делать это на каждый пиксел изменения размера. в таблице может быть и 100 и 500 строк, да вобщем дохрена. так что лучше б это было пересчитывать один раз =) кстати еще такой вопрос. WM_EXITSIZEMOVE не срабатывает при разворачивании формы на весь экран с помощью кнопки "разверуть". есть какой-нибудь аналог WM_EXITSIZEMOVE для такого действия? |
28.11.2011, 01:43 | #8 |
Веб-дизайнер
Форумчанин
Регистрация: 11.08.2011
Сообщений: 305
|
xrob, можно описать событие отдельно при нажатии на кнопку "Развернуть" (вроде бы есть из стандартных).
|
28.11.2011, 09:30 | #9 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Хозяин конечно барин, но ты лишнюю работу делаешь.
I'm learning to live...
|
||
28.11.2011, 15:46 | #10 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
kettanaito, была такая идея, но в инспекторе свойств я не нашел такого события.
но помню что где-то видел что-то типа OnMinimize или OnMaximize... Stilet, данные ячейки хранятся у меня в строке, но чтобы отрисовать с помощью TCanvas текст, вписаный в определенную область, надо эту строку сначала разбить на строки, сколько бы их было, если б текст переносился. для этих целей я использую TMemo. TextWrap в true, вставляю строку в Memo, она автоматически в нем выстраивается, переносится как надо, а потом уже из Memo беру уже не текст, а строки, которые потом по очереди отрисовываются на канвасе. ну и соответственно такую операцию нужно проводить каждый раз при изменении размера формы. и лучше все-таки делать это один раз, чем на каждый пиксел. я исхожу из того что знаю я. но если есть и другие классы, которые умеют вписывать текст в ширину, то они тоже таки или иначе просчитывают как это сделать. так что я считаю что оптимизация здесь будет существенная =) а по поводу отрисовки, я проводил эксперимент - рисовал что-то за пределами канвы... рисуется быстрее чем на канве, но все-равно не мгновенно. и как тогда объяснить тот факт что когда в моей таблице 100 строк, она отрисовывается живенько и спокойно прокручивается, а когда строк 1000, а в видимой области, например, 50, то начинается слайд-шоу? по мне так лучше бинарным поиском найти строки, которые попадают в область видимости и отрисовывать только их... кстати, Stilet, что вы скажете по поводу кнопок "Развернуть" ? p.s. кстати, я никогда не выполняю лишнюю работу. даже если что-то из того что я делаю, потом не пригодится - я получаю бесценный опыт! =) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
CustomComponent и FormResize | xrob | Компоненты Delphi | 3 | 14.09.2011 15:46 |
Склеить скрипт Время суток+Вы были тут N раз+склонение *РАЗ*_*РАЗА* | vkontakte | JavaScript, Ajax | 4 | 12.09.2011 14:41 |
Еще раз массив | Divoha | Общие вопросы C/C++ | 3 | 27.06.2009 17:49 |
Событие один раз | Михаил Юрьевич | Общие вопросы Delphi | 4 | 01.04.2008 20:40 |
В Memo ввёл раз!!! в Memo ввёл два!!! а где Memo ввёл раз??? | Хs-You | Компоненты Delphi | 6 | 19.08.2007 19:48 |