|
Вопрос # 6 537/ вопрос закрыт / |
|
Здравствуйте!
На форме отрисовываю сетку ( StringGrid по определенным причинам не подходит ) . Рисовалку сетки ( FillRect'ы в цикле ) засовываю в OnFormActivate - и ничего не происходит. В OnFormActivate запускаю таймер, по таймеру - отрисовку -- ОК. Свертываю форму, развертываю - девственно чистая. Копирую отрисовку в OnFormClick - все нормально. Конечно, я мог бы сетку в виде статической картинки в Image, но это мало поможет : то же самое будет происходить и с данными, которые при работе будут у меня в этой сетке. Вопрос : есть ли такое событие "Развернуть из свернутого" , чтоб на него написать обработчик, а если есть, то при сворачивании, кроме стандартных действий системы, нужно будет еще и запоминание картинки.
Как я понимаю, для стандартных контролов ( Кнопки, Эдиты ) система знает, как их сворачивать-разворачивать, а о том, что пространство формы - мое "поле битвы" данных - ей невдомек.
Уважаемые эксперты, кто не в отпуске - откликнитесь, please .
 |
Вопрос задал: Толяныч (статус: 4-ый класс)
Вопрос отправлен: 31 мая 2014, 16:24
Состояние вопроса: закрыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: DNK
Здравствуйте, Толяныч!
Что за жуткие франкенштейны вы изобретаете. Для этого есть готовое событие на форме OnPaint. В нём пишется весь код по отрисовке сетки на форме. Если нужно прорисовать что-то новое, то в доступных полях выставляются новые параметры и вызывается метод формы Refresh или Repaint, который корректно обновит форму вызовом OnRepaint.
 |
Ответ отправил: DNK (статус: Студент)
Время отправки: 1 июня 2014, 00:31
Оценка за ответ: 5
Комментарий к оценке: Не от хорошей жизни. Представьте StringGrid, в которой писать нужно разными фонтами и цветом ( аналог ячейки Екселя ) . У меня всплыла мысля насчет Image, но Ваш совет учту и опробую. Видно, Винде в бошку не приходило, что можно писать и рисовать прямо на главной форме :-(
|
Мини-форум вопроса
Всего сообщений: 8; последнее сообщение — 1 июня 2014, 20:05; участников в обсуждении: 3.
|
DNK (статус: Студент), 1 июня 2014, 00:35 [#1]:
Я встречал жуткие эксперименты других программистов подобные вашим. Особенно прикалвало, когда над искомой формой проносят другую. Послядняя изображала большой ластик.
"Digital Networked Knight"
|
1 июня 2014, 12:36: Статус вопроса изменён на решённый (изменил автор вопроса — Толяныч)
|
DNK (статус: Студент), 1 июня 2014, 15:05 [#3]:
Сдаётся мне, что ваши предубеждения против StringGrid тоже надуманы. Он тоже может отрисовывать себя нестандартным методом. Для этого нужно только взять за труд написать соответствующий обработчик для события OnDrawCell. У меня был опыт в создании несколько подобного. У пользователя создавалась полное впечатление, что он работает кнопками расположенными в виде большой матрицы (что-то в духе игры сапер), но на самом деле это была именно компонент-таблица.
Я думал, что вам просто нужна сетка, но оказывается перед вами сверхзадача. И думается, что впереди будет столько граблей, перед которыми решенная проблема просто ничто.
"Digital Networked Knight"
|
|
min@y™ (статус: Доктор наук), 1 июня 2014, 15:07 [#4]:
Цитата (Толяныч):
теперь прога разгадывания СуДоКу ( версия 2.0) двинется семимильными шагами
А чего, тебе мой исходник проги для судоку не нравится?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Толяныч (статус: 4-ый класс), 1 июня 2014, 16:01 [#5]:
1. min@y™ - Это не для заказа, а для души, и потому должно быть свое. Цель - ничто, процесс - все.
2. DNK - граблей не предвидится абсолютно никаких
Первая версия у меня журчит уже года 3, без проблем раскалывает судаки средней сложности, а посложнее - недозаполненную часть в ручном режиме, с откатом и пр. Сделана как раз на StringGrid . Даже на двух. В одном окне - исходное и дораскрытое состояние, в другом - варианты. Хочу совместить, добавить уровней отката и пр. Проект абсолютно ( см. выше п.1 ) , тренировка мозга для борьбы с возрастным маразмом ( пока успешной, тьфу-тьфу ) И для меня сделать псевдо-StringGrid выходит проще, чем допилить стандартную, чтобы в ячейку писать разными размерами и цветами шрифтов.
Все, спасибо, больше пока на меня не обращайте внимания.
А можно в минифоруме спросю вопрос, не создавая тему? Замучился искать, какой модуль в uses подключать, чтоб добраться, к примеру, до PlaySound. Какое-нибудь содержимое модулей uses с поиском по имени функции ? Хелп молчит, зараза.
|
|
min@y™ (статус: Доктор наук), 1 июня 2014, 16:16 [#6]:
Цитата (Толяныч):
Это не для заказа, а для души, и потому должно быть свое. Цель - ничто, процесс - все.
Я не предлагал тупо использовать чужой исходник, а посмотреть на премет реализации, например, на отрисовку.
Цитата (Толяныч):
какой модуль в uses подключать, чтоб добраться, к примеру, до PlaySound.
mmSystem.
А вообще - пора бы уже научиться юзать поиск в файлах, хотя бы на собственном винте.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Толяныч (статус: 4-ый класс), 1 июня 2014, 19:21 [#7]:
Дык смотреть тоже надо с понятием, чтобы разобраться, какая именно хрень отвечает за отрисовку, а если это знаешь, то и вопрос задавать уже нет надобности.
Напрасно ты меня уж совсем размазываешь по батарее, искал я этим способом, но только не в сорцах, в другой папке.
Но все равно спасибо.
|
|
min@y™ (статус: Доктор наук), 1 июня 2014, 20:05 [#8]:
Цитата (Толяныч):
чтобы разобраться, какая именно хрень отвечает за отрисовку, а если это знаешь, то и вопрос задавать уже нет надобности.
Она у меня там самодельная. Да я и не настаиваю. Просто предложил кусок моего опыта, причём абсолютно бесплатно...
Цитата (Толяныч):
Напрасно ты меня уж совсем размазываешь по батарее
Да нужен ты мне больно.
Цитата (Толяныч):
искал я этим способом, но только не в сорцах, в другой папке.
Комсомолец! Ищешь чёрного котэ в тёмной комнате, когда его там нету. Зачем, а?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
1 июня 2014, 22:43: Вопрос закрыт (решение принял автор вопроса — Толяныч): Вопрос отвечен полностью
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|