Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 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

DNK (статус: Студент), 1 июня 2014, 00:35 [#1]:

Я встречал жуткие эксперименты других программистов подобные вашим. Особенно прикалвало, когда над искомой формой проносят другую. Послядняя изображала большой ластик. :-D
"Digital Networked Knight"
Толяныч

Толяныч (статус: 4-ый класс), 1 июня 2014, 12:34 [#2]:

Прменил. Скручивается-раскручивается нормально. Таскал над формой другую форму, ничего не затирается, как-то само получилось. :-(
В общем, спасибо за прокачку моих скилсов :-) , теперь прога разгадывания СуДоКу ( версия 2.0) двинется семимильными шагами.

1 июня 2014, 12:36: Статус вопроса изменён на решённый (изменил автор вопроса — Толяныч)

DNK

DNK (статус: Студент), 1 июня 2014, 15:05 [#3]:

Сдаётся мне, что ваши предубеждения против StringGrid тоже надуманы. Он тоже может отрисовывать себя нестандартным методом. Для этого нужно только взять за труд написать соответствующий обработчик для события OnDrawCell. У меня был опыт в создании несколько подобного. У пользователя создавалась полное впечатление, что он работает кнопками расположенными в виде большой матрицы (что-то в духе игры сапер), но на самом деле это была именно компонент-таблица.
Я думал, что вам просто нужна сетка, но оказывается перед вами сверхзадача. И думается, что впереди будет столько граблей, перед которыми решенная проблема просто ничто.
"Digital Networked Knight"
min@y™

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™

min@y™ (статус: Доктор наук), 1 июня 2014, 16:16 [#6]:

Цитата (Толяныч):

Это не для заказа, а для души, и потому должно быть свое. Цель - ничто, процесс - все.

Я не предлагал тупо использовать чужой исходник, а посмотреть на премет реализации, например, на отрисовку.

Цитата (Толяныч):

какой модуль в uses подключать, чтоб добраться, к примеру, до PlaySound.

mmSystem.
А вообще - пора бы уже научиться юзать поиск в файлах, хотя бы на собственном винте.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Толяныч

Толяныч (статус: 4-ый класс), 1 июня 2014, 19:21 [#7]:

Дык смотреть тоже надо с понятием, чтобы разобраться, какая именно хрень отвечает за отрисовку, а если это знаешь, то и вопрос задавать уже нет надобности.
Напрасно ты меня уж совсем размазываешь по батарее, искал я этим способом, но только не в сорцах, в другой папке.
Но все равно спасибо.
min@y™

min@y™ (статус: Доктор наук), 1 июня 2014, 20:05 [#8]:

Цитата (Толяныч):

чтобы разобраться, какая именно хрень отвечает за отрисовку, а если это знаешь, то и вопрос задавать уже нет надобности.

Она у меня там самодельная. Да я и не настаиваю. Просто предложил кусок моего опыта, причём абсолютно бесплатно...

Цитата (Толяныч):

Напрасно ты меня уж совсем размазываешь по батарее

Да нужен ты мне больно.

Цитата (Толяныч):

искал я этим способом, но только не в сорцах, в другой папке.

Комсомолец! Ищешь чёрного котэ в тёмной комнате, когда его там нету. Зачем, а?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

1 июня 2014, 22:43: Вопрос закрыт (решение принял автор вопроса — Толяныч): Вопрос отвечен полностью

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:40
Выполнено за 0.02 сек.