powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / как создать свой собственный очень простенький grid ?
25 сообщений из 82, страница 2 из 4
как создать свой собственный очень простенький grid ?
    #39485467
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил_SheratonА если делать нормальный контрол, то 200 строк уложиться не получится.
а каков нижний предел?

Трудно сказать, но явно не 200 строк.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485521
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbдля начала хорошо бы перечислить весь функционал это грида. По пунктам, словами, что он должен уметь делать.
да, иначе дискуссия о минимальном размере кода теряет смысл.

вопрос можно перевести в другое измерение - сколько часов потребуется для создания грида?
(естественно после формулирования функционала)
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485589
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ИзопропилCEMbдля начала хорошо бы перечислить весь функционал это грида. По пунктам, словами, что он должен уметь делать.
да, иначе дискуссия о минимальном размере кода теряет смысл.

вопрос можно перевести в другое измерение - сколько часов потребуется для создания грида?
(естественно после формулирования функционала)

Автору топика тема уже не интересна. Участники общаются уже ради своего профессионального интереса.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485656
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_SheratonИнтересно, в какой среде создан grid? MFC или чистый WinAPI? И пожно ли его на Linux перетащить?

Ни то, ни другое.
Power++. Только 32-разрядная Windows. На Linux портировать не удастся...
Не знаю точно, но Power++ явно использует WinAPI, потому что внешний вид контролов
полностью совпадает с Microsoft.Windows.Common-Controls согласно текущей теме Windows.

Ну, и конечно, grid не такой уж и простенький. Навскидку глянул - там не меньше 10000 строк кода.
А может и больше, если полностью подсчитать все вложения...
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485985
N0B0DY123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
может быть тогда опишите техническое задание, в общих чертах,
хочется иметь представление, как делают grid.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485988
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N0B0DY123хочется иметь представление, как делают grid.

Сначала рисуют сетку. Потом в пустые места рисуют данные. Всё очень просто.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486000
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovСначала рисуют сетку. Потом в пустые места рисуют данные. Всё очень просто.


На самом деле сетка нам только кажется, например в wxWidgets сетка грида это два бордюра в каждой ячейке, нижний бордюр и правый. Т.е. верхний бордюр ячейки это нижний бордюр соседней ячеки которая выше, а левый бордюр это правый бордюр соседней левой ячейки. А визуально кажется, что каждая ячека имеет 4 бордюра а не 2 как по факту.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486018
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
N0B0DY123может быть тогда опишите техническое задание, в общих чертах,
хочется иметь представление, как делают grid.

В wxWidget грид реализован так.
Сам контрол wxGrid это производное окно, которое наследуется от wxScrolledWindow, внутри этого окна есть еще 4 дочерних окна производных от wxWindow, одно окно это заголовки колонок, другое окно - заголовки рядов (тоже наследуется от wxWindow), третье окно левый верний угол (тоже производное от wxWindow), клик по которому выделяет все ячейки в гриде, и наконец 4 окно, это где рисуются непостредственно сами ячейки, это окно тоже производное, наследуетя от wxWindow.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486020
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Sheratonнапример в wxWidgets сетка грида это два бордюра в каждой ячейке, нижний бордюр и правый.

Халтурщики. Если уж наплевали на быстродействие, могли бы делать все четыре бордюра для
визуальной красоты.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486021
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov_Sheratonнапример в wxWidgets сетка грида это два бордюра в каждой ячейке, нижний бордюр и правый.

Халтурщики. Если уж наплевали на быстродействие, могли бы делать все четыре бордюра для
визуальной красоты.


Наоборот это сделанно для более быстрой отрисовки ячеек, тем более для нашего глаза, ячека выглядит как с четырьмя бордюрами.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486032
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_SheratonНаоборот это сделанно для более быстрой отрисовки ячеек

По-моему, нарисовать одну линию от края до края всё же несколько быстрее, чем несколько
отрезков.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486085
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov_SheratonНаоборот это сделанно для более быстрой отрисовки ячеек

По-моему, нарисовать одну линию от края до края всё же несколько быстрее, чем несколько
отрезков. а если имеются объединенные ячейки?
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486091
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov_SheratonНаоборот это сделанно для более быстрой отрисовки ячеек

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


В простом гриде с минимальным функционалом - да, возможно лучше рисовать от края до края, но в гриде в большим функционалом, от края до края не получится. Тому миллион причин, одну из которых упомянул Изопроприл (объединение решеток). На самом деле в wxGrid не рисуются все ячейки сразу, а только те которые видны. Т.е. если окно размером 600х800 пикселей, то столько ячеек и рисуется, остальные дорисовываются по мере скроллинга, иначе если в грид загрузить миллион записей из базы данных, то придется долго ждать пока отрисуются миллион рядов с колонками.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486096
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте пойдем от такой постановки.

1) Пускай у нас есть API для работы с Canvas. (Дан размер канваса. Пикселы. Линии. Прямоугольники. И текст.)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
interface Canvas{
 void setPixel(x,y,color);
 void lineTo(x,y);
 void setColor(color);
 void setFillColor(color);
 void drawRect(x1,y1,width,height);
 void printText(string text,string font,bitmask attributes,x,y);
 int getCanvasWidth();
 int getCanvasHeight();
}



2) Надо реализовать рисование некого контрола который по своему
поведению похож на элемент grid в Microsoft Access.

(здесь я копипащу какую-то картинку которую нагуглил почти случайно но надеюсь что она покрывает почти все кейсы)
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486103
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton Давайте пойдем от такой постановки.

1) Пускай у нас есть API для работы с Canvas. (Дан размер канваса. Пикселы. Линии. Прямоугольники. И текст...........
2) Надо реализовать рисование некого контрола который по.........

Начинать нужно не с этого.
Какой должен быть функционал?
1. Если кликнуть по заголовку колонки, должна ли выделяться колонка?
2. Тоже самое с рядами.
3. Содержимое ячейки можно редактировать кликом мышки или только через какой-то диалог?
4. Ширина колонок и высота рядов, можно ли их изменять перетаскивая мышкой?
5. Можно ли объединить некоторые ячейки?
6. Выделение нескольких ячеек, перетаскивая мышку?
7. Еще миллион вопросов.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486105
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я предложил базовую постановку.

Дальше можно улучшать и детализировать. Вместе с автором топика.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486116
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЯ предложил базовую постановку.

Дальше можно улучшать и детализировать. Вместе с автором топика.

Грид это очень сложный контрол, фактически отдельное приложение. Его не получится создать "на досуге".

Даже минимальный функционал требует тысяч строк кода.

Просто нарисовать сетку с текстом в ячейках, используя графический контекст устройств, это не контрол, это не грид, это просто картинка с текстом в ячейках. ))
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486136
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_SheratonДаже минимальный функционал требует тысяч строк кода.
а вот здесь хочется найти минимум в пределах нескольких сотен и одного вечера
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486146
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_SheratonmaytonЯ предложил базовую постановку.

Дальше можно улучшать и детализировать. Вместе с автором топика.

Грид это очень сложный контрол, фактически отдельное приложение. Его не получится создать "на досуге".

Даже минимальный функционал требует тысяч строк кода.

Просто нарисовать сетку с текстом в ячейках, используя графический контекст устройств, это не контрол, это не грид, это просто картинка с текстом в ячейках. ))
Автору не нужен сложный контрол. Ему нужны "ячейки". Почитайте его пост.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486152
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonАвтору не нужен сложный контрол. Ему нужны "ячейки". Почитайте его пост.

N0B0DY123может быть тогда опишите техническое задание, в общих чертах,
хочется иметь представление, как делают grid.

Автор спросил как делается грид. Отдельного контрола "ячейки" в wxWidgets я к сожалению не нашел, а с другой библиотекой для создания GUI я не работал. Поэтому я предложил wxGrid, но он имеет более 10 тыс. строк кода. Как говорится извиняйте, что есть в наличии, то и продаю.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486155
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В какой срок можно освоить 10 000 строк кода? Я рискну предположить что ... почти никогда.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486156
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил_SheratonДаже минимальный функционал требует тысяч строк кода.
а вот здесь хочется найти минимум в пределах нескольких сотен и одного вечера

Абсолютно согласен. Кроме излишне наворочанного грида, должен быть и простой. Чтобы из SQLite можно было выгрузить данные и посмотреть без написания множества кода. Вот только, кто бы создал такое чудо для общественных нужд.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486157
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВ какой срок можно освоить 10 000 строк кода? Я рискну предположить что ... почти никогда.

Да, но хотя бы идею почерпнуть в общих чертах можно. Например, рисовать не все ячейки, а только видимую область, остальные ячейки подрисовывать по мере скроллинга. Дабы не было излишних тормозов в работе грида.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486158
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_SheratonmaytonВ какой срок можно освоить 10 000 строк кода? Я рискну предположить что ... почти никогда.

Да, но хотя бы идею почерпнуть в общих чертах можно. Например, рисовать не все ячейки, а только видимую область, остальные ячейки подрисовывать по мере скроллинга. Дабы не было излишних тормозов в работе грида.
Вы серъезно? Это каким нужно обладать обобщяющим моском чтобы осознать
это читая ИСХОДНИКИ ?

Ну я вас умоляю. Прекратите.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486159
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВ какой срок можно освоить 10 000 строк кода? Я рискну предположить что ... почти никогда.
а когда экзамен?
...
Рейтинг: 0 / 0
25 сообщений из 82, страница 2 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / как создать свой собственный очень простенький grid ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]