|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.01.2008, 23:39 | #1 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
как создать grid?
Хочу создать у себя в программе возможность просмотра неких моих данныв в табличной форме. Отсюда возникает проблема, каким образом это сделать. Наверное есть два решения - создать к каждому конкретному объекту данных отдельный EDIT, это первый способ, второй - создать некий прямоугольник с перманентным количеством edit-ов и прокручивать-скроллировать данные по этим edit-ам. Первый способ безусловно проще, но есть опасение на счет ограничения по количеству создаваемых edit-ов, ведь в ОС есть ограничение по этому поводу, а данные могут быть большими. Интересно так же, как это реализовано в том же Екселе, где визуально - этих edit-ов бесконечно много.
|
23.01.2008, 00:27 | #2 |
Форумчанин
Регистрация: 01.12.2007
Сообщений: 346
|
Чем вас не устраивает StringGrid?
Win 10 x64 | VS 2015 | MSSQL 2014
autovestitv.ru |
23.01.2008, 01:52 | #3 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
Если вам не трудно, то может просветите? Есть такой стандартный элемент в Windows? Или вы все-таки имели в виду что-то из MFC или компонентов Дельфи? Но мы же тут о программировании на Win Api собственно...
|
23.01.2008, 08:25 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Экзел делался не одним человеком.
А в принципе можно самому разлинеить какое-нибудь окно, прикрутить к ней Скролы и написать вывод данных.
I'm learning to live...
|
23.01.2008, 10:43 | #5 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
В принципе, можно воспользоваться классом List View. Это стандартный класс из common controls, имеется во всех версиях Win32 без всяких MFC и т.п. Но вообще-то, проще сделать вручную, работы там немного, и больше с данными, нежели с рисованием.
|
23.01.2008, 13:12 | #6 |
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
Так вот мне и хотелось бы услышать совет по тому, как это лучше, оптимальнее сделать вручную (см. первый пост).
|
23.01.2008, 13:22 | #7 |
Участник клуба
Регистрация: 12.10.2007
Сообщений: 1,204
|
|
23.01.2008, 13:45 | #8 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Вы имеете в виду написать код целиком? Если до вечера дотерпите, в общих чертах набросаю . Уточните только, как у Вас данные будут храниться или через какой интерфейс их можно получать.
|
23.01.2008, 17:25 | #9 | ||
Пользователь
Регистрация: 21.01.2008
Сообщений: 32
|
Цитата:
Цитата:
|
||
24.01.2008, 02:46 | #10 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Вы на верном пути. На полный исходник у меня времени не хватит, сорри, но принцип вот:
Нужно сразу принять решение, где Вы будете хранить данные. "Внутри" контрола - быстрее и проще, но хуже по расходу памяти, снаружи - чуть медленнее, но экономится память (особенно если одни данные идут в несколько разных окон), проще организовать обмен данными, проще расширять проект в дальнейшем и ограничения на само количество строк/столбцов больше теоретические. Я думаю, что Вам стоит сделать элемент с такой иерархией: на самом верху "пустое" окно, которое будет диспетчером для всех сообщений и контейнером для двух скроллбаров, собственно Grid'а и простого Edit-контрола, а саму сетку просто тривиально рисовать. По WM_LBUTTONDBLCLK в сетке можно просто показывать (и потом прятать) Edit по нужным координатам, в принципе, для удобства можно перехватить его оконную процедуру и обрабатывать ее в самом контейнере, в контейнере стоит предусмотреть обработку WM_GETDLGCODE, например, на случай VK_RETURN ну и простой интерфейс для данных, буквально шесть функций - добавление/удаление столбцов, добавление/удаление строк и GETITEM/SETITEM (и аналогичный набор в самой сетке). Ну и само собой, лучше всего обмен данными между сколлбарами, сеткой и Edit'ом вести через контейнер, например в форме WM_COMMAND или WM_NOTIFY. Если есть какие-то технические вопросы, давайте. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Grid | nimf | Общие вопросы Delphi | 2 | 22.04.2008 13:16 |
Печать содержимого DB Grid | Prisian | БД в Delphi | 4 | 06.09.2007 23:02 |
Кто подскажет про (Grid) | chingiz | Помощь студентам | 5 | 23.05.2007 17:48 |
Help!Grid и Edit | Дамир | БД в Delphi | 1 | 16.02.2007 02:05 |