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

на примере кода конечно
или где об этом прочесть?

то есть не готовый кем-то созданный grid, а самому, очень простенький
спасибо
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39484896
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
#include <iostream>

int main(int,char**)
{
  std::cout << "1\t| 2\t| 3" << std::endl
            << "4\t| 5\t| 6" << std::endl;
  return 0;
}
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39484915
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на просторах сети можно найти BABYGRID
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39484920
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39484947
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N0B0DY123, я надеюсь ты понимаешь что твой вопрос не про С++ ?
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39484990
N0B0DY123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
не понимаю
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39484998
Sergey_rb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N0B0DY123mayton,
не понимаю

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

Вот раз https://gist.github.com/bert/260091
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485099
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey_rbN0B0DY123mayton,
не понимаю

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

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

Глупость. Автору топика советую, залезть в исходный код wxWidgets там есть такой контрол называется wxGrid и там посмотреть как всё реализованно, так же есть такой контрол в Qt, тоже можно залесть в исходники, но не знаю как он называется в Qt. Есть грид в fox-toolkit там он называется FXTable, тоже можно полазить в исходном коде и посмотереть как всё реализованно.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485107
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще забыл FLTK там тоже есть грид, называется Fl_Table, и тоже можно в исходниках полазить.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485149
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Sheraton,

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

Автор жеж пишет:
то есть не готовый кем-то созданный grid, а самому, очень простенький
спасибо

Автор пишет: "надо понять как создать ячейку" .... "на примере кода конечно
или где об этом прочесть?"

А самый лучший пример кода, это код написанный профессионалами.
wxWidgets существуют не один десяток лет, Qt, Fox-Toolkit, FLTK тоже больше 10 лет живут.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485171
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Sheraton, ну дай бох.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485196
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton_Sheraton, ну дай бох.

Посмотрел исходники wxGrid, задача не простая. Контрол сложный, тысячи строк кода. Автору топика не завидую, если он собрался создавать грид с нуля.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485251
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Sheraton,

Сложность написать скроллируемый набор прямоугольников?

Специально посмотрел - ридонли это примерно 200 строк.

Все зависит от набора функционала.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485285
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl_Sheraton,

Сложность написать скроллируемый набор прямоугольников?

Специально посмотрел - ридонли это примерно 200 строк.

Все зависит от набора функционала.

Если просто нарисовать решетку через контекст устройств и спозиционировать текст сверху каждой клетки, то да, это не сложно. А если делать нормальный контрол, то 200 строк уложиться не получится.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485288
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор пишет - "создать ячейку". Видимо сам еще не определился что ему надо.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485289
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собсвенный Grid явно потребует никак не меньше 1000 строк кода, в скорее всего намного больше.
Так что "простенько" не получится.
Я часто использую ListView (есть в Windows API).
Немного добавляю функционала (цветовая расскраска и т.п.) и получается ничуть не хуже Grid...
И скажу честно, ListView мне нравится больше, чем Grid.
IMHO, конечно.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485291
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
d7iСобсвенный Grid явно потребует никак не меньше 1000 строк кода, в скорее всего намного больше.
Так что "простенько" не получится.
Я часто использую ListView (есть в Windows API).
Немного добавляю функционала (цветовая расскраска и т.п.) и получается ничуть не хуже Grid...
И скажу честно, ListView мне нравится больше, чем Grid.
IMHO, конечно.

На сколько я знаю ListView не позволяет менять высоту рядов просто перетаскивая мышкой или выделить несколько ячеек кликая и преретаскивая мышку. Хороший грид по любому лучше стандартного ListView. Грид можно использовать и для создания отчетов как это реализованно в 1С.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485352
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_SheratonНа сколько я знаю ListView не позволяет менять высоту рядов просто перетаскивая мышкой или выделить несколько ячеек кликая и преретаскивая мышку. Хороший грид по любому лучше стандартного ListView. Грид можно использовать и для создания отчетов как это реализованно в 1С.

ListView (с доработками) использую для работы с данными БД. Там мышкой вообще нечего делать, только просмотр.
Обработка полей (при необходимости) в отдельных окнах.
А вот для печатных форм (в т.ч. и отчетов) использую собственный grid (Excel-подобный), где есть всё что для этого нужно, в т.ч.
и drag-and-drop... Только этот grid совсем не простенький и не маленький по коду...
А ТС нужен "простенький"...
Потому и советую ListView.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39485358
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
d7i
......
А вот для печатных форм (в т.ч. и отчетов) использую собственный grid (Excel-подобный), где есть всё что для этого нужно, в т.ч.
и drag-and-drop... Только этот grid совсем не простенький и не маленький по коду...
А ТС нужен "простенький"...
Потому и советую ListView.

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

для начала хорошо бы перечислить весь функционал это грида. По пунктам, словами, что он должен уметь делать.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький 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
как создать свой собственный очень простенький grid ?
    #39486160
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_SheratonНапример, рисовать не все ячейки, а только видимую область,
это общее место, недостойное обсуждения
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486162
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton_Sheratonпропущено...


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

Ну я вас умоляю. Прекратите.

Ну это уже вопрос полемики. Хотя на самом деле там можно разобраться. Как-то 5 лет назад у меня возникла необходимость добавить некоторый функционал в wxGrid. Залез в исходник и учитывая, что я не гениальный программист, за месяц разобрался и унаследовал свой грид от wxGrid и добавил нужный мне функционал.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486164
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для особо одаренных спорщиков.

Я посмотрел в свой _готовый_ код. Там 177 LOC, но только вертикальный скроллинг, но с расчетом шрифта.
В 20 ЛОК я добавлю и горизонтальный.

В 100 (максимум) - заголовки.

Не надо кричать __импоссибле___, ___всю жизь на контрол убил___, итп
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486165
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglНе надо кричать __импоссибле___, ___всю жизь на контрол убил___, итпвот-вот
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486190
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N0B0DY123может быть тогда опишите техническое задание, в общих чертах,
хочется иметь представление, как делают grid.это что, троллинг такой? Тебе нужен грид, ты сам должен знать "что такое грид" и какими характеристиками он обладает. А так получается, мы тебе ещё должны и тех задание придумать, а потом сами ещё тебе и код по нему код написать.

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

Всем, спорящим со мной. Вы подходите к сабж с позиции знатоков. Или знающих UI API.
Автор не просто новичек. Он даже не может поставить задачу. Его надо прокатить по основам
графического и геометрического моделирования. Рассказать ему о примитивах. Точка. Линия.
Полигон. Цвет и модели. Растровые операции. Двойной буфер. Z-ордеринг. События UI
(ON_PAINT) Особенности однопоточного режима графики. Примитивные контролы как пример
строительства rich-UI.

Вот такой дидактический подход. А вы ему ... (!) wxWidgets.

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

Я посмотрел в свой _готовый_ код. Там 177 LOC, но только вертикальный скроллинг, но с расчетом шрифта.
В 20 ЛОК я добавлю и горизонтальный.

В 100 (максимум) - заголовки.

Не надо кричать __импоссибле___, ___всю жизь на контрол убил___, итп

Интересно, получается около 200 строк. Это без возможности редактировать ячейки по клику мышки? Большой объем данных можно загрузить? Если из DBF-файла выгрузить миллиона полтора строк?
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486231
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonСмотрите как афтор (NOBODY) лихо вбросил на вентилятор. И что характерно сам сбежел. ,..............

Ну я вас умоляю. Не продолжайте.

Дак люди просто общаются на интересную тему. За автора темы все уже и забыли. Что плохого в том, что бы делиться с коллегами идеями и информацией?
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486385
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот картинка табличного редактора (генератора отчетов) с Excel-подобным grid, который имеет больше 10000 исходных строк...
Разрабатывался и дорабатывался несколько лет.



По сути получился микро-Excel, который даже умеет писать и читать напрямую простенькие файлы xls (формат 95-2000).
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486457
_Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
d7iВот картинка табличного редактора (генератора отчетов) с Excel-подобным grid, который имеет больше 10000 исходных строк...
Разрабатывался и дорабатывался несколько лет.
........
По сути получился микро-Excel, который даже умеет писать и читать напрямую простенькие файлы xls (формат 95-2000).

Какой GUI использовался MFC, WinAPI или может быть Qt?
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486467
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Sheratond7iВот картинка табличного редактора (генератора отчетов) с Excel-подобным grid, который имеет больше 10000 исходных строк...
Разрабатывался и дорабатывался несколько лет.
........
По сути получился микро-Excel, который даже умеет писать и читать напрямую простенькие файлы xls (формат 95-2000).

Какой GUI использовался MFC, WinAPI или может быть Qt?

Я же уже писал :
d7iPower++ (Optima++).
Не знаю точно, но он явно использует WinAPI, потому что внешний вид контролов
полностью совпадает с Microsoft.Windows.Common-Controls согласно текущей теме Windows.

Добавлю: это продукт прошлого века, однако я его использую до сих пор и приложения, сделанные на нем,
прекрасно работают, начиная с Windows 95 и вплоть до Windows 10 включительно.
Правда, у него есть на нынешние времена огромный недостаток: он делает только 32-разрядные приложения.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486473
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iНе знаю точно, но он явно использует WinAPI, потому что внешний вид контроловМожно Spy-ем посмотреть. Обычно по типу окон сразу понятно, на чём оно написано.

Ну и кстати, я не зря просил описание по пунктам. Вот на картинке есть, например, ячейки, которые colspan/rowspan, это уже дополнительная песня в разработке. Поэтому ТС должен чётко представлять, что ему нужно. Иначе нужно идти на codeproject/codeguru и смотреть примеры гридов и их ТЗ, там обычно всё детально описано, что контрол умеет.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486493
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbd7iНе знаю точно, но он явно использует WinAPI, потому что внешний вид контроловМожно Spy-ем посмотреть. Обычно по типу окон сразу понятно, на чём оно написано.

Ну и кстати, я не зря просил описание по пунктам. Вот на картинке есть, например, ячейки, которые colspan/rowspan, это уже дополнительная песня в разработке. Поэтому ТС должен чётко представлять, что ему нужно. Иначе нужно идти на codeproject/codeguru и смотреть примеры гридов и их ТЗ, там обычно всё детально описано, что контрол умеет.

То, что в коде можно использовать WinAPI это 100%, я использую оттуда кучу функций. Приложение использует
базовую DLL (wcmdpa24.dll), но её можно и прилинковать. Похоже что она также служит оберткой для WinAPI.
Я уже писал, что внешний вид всех контролов полностью соответствует Windows.

Относительно "простенького" grid. Об этом уже много писали. Как ни упрощай ТЗ, всё равно получится довольно
громоздкий код. В компиляторе есть конечно стандартный grid, но я его никогда не использовал,
потому что просто без надобности. Если нужно что-то подобное и одноразовое, я, к примеру, делаю такой "финт":
создаю файл .hta (например, с табличкой) и запускаю его. Там можно редактировать кое-что и напечатать и т.п.
HTA (к счастью) пока нормально работает в Windows...
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486507
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iВ компиляторе есть конечно стандартный grid
в компиляторе грида нет - грид в библиотеках
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486522
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилв компиляторе грида нет
Код: plaintext
1.
T grid[n][m];


А если серьёзно, то грид - это в первую очередь организация данных, а потом уже отображение.
К любой задаче нужно подходить абстрактно и разбивать на независимые слои
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486540
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилd7iВ компиляторе есть конечно стандартный grid
в компиляторе грида нет - грид в библиотеках
Под словом "компилятор" я имел в виду всю систему RAD. Естественно, там куча библиотек и
несколько десятков контролов, WinAPI, а также ActiveX, которые можно добавлять до бесконечности...
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486597
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbИзопропилв компиляторе грида нет
Код: plaintext
1.
T grid[n][m];



А если серьёзно, то грид - это в первую очередь организация данных, а потом уже отображение.
К любой задаче нужно подходить абстрактно и разбивать на независимые слои
в контексте данного топика - именно отображение
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486944
N0B0DY123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помните раньше была суперкалка, она работала, по-моему под ms dos,
из неё потом выросла excel,
мне же хочется (для понимания) что-то для отображения и ручного редактирования небольшого числа записей и нескольких колонок
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486962
N0B0DY123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или функция TBrowse() в Clipper-е
или функция Browse() в FoxPro
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486963
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N0B0DY123,

ничего особенного - нужно рисовать вертикальные и горизонтальные линии и текст
на месте редактируемой ячейки - создавать edit-control
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39486965
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
N0B0DY123или функция TBrowse() в Clipper-е
или функция Browse() в FoxPro
н онив текстовом режиме работали а не в графике. моделировать сегодня подобное - вряд ли осмыслено
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39487011
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот простейший набор из TextBox (12 шт. , три верхних onlyRead) ...



Простенько и со вкусом...
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39487015
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iнабор из TextBox
сомнительное решение.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39487022
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так я шуткую...

Для работы с БД (где колонки имеют тип полей БД), лучше всего подходит ListView.
Редактирование в ячейке там неудобно, лучше использовать отдельное окно со всеми полями.
Тем более что его можно легко оснастить кучей дополнительных функций (например, поля, имеющие
значения из другой таблицы-справочника, заменить комбобоксом и представить в нем все значения для выбора).
Иначе придется делать grid с комбобоксами...
Я всегда так делаю.
И всё это можно сделать чисто на WinAPI.

Если же данные по колонке разного типа (числа,текст и т.д.), то без grid не обойтись, как не выкручивайся...
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39487025
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iИ всё это можно сделать чисто на WinAPI.
а что в этом удивительного?
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39487034
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, если делать нормальный ListView, то всё равно придется писать свой.
И не маленький. Вот пример:



Тут к стандартному добавлена цветовая расскраска, сортировка по колонкам (треугольник в поле "Секция") и куча
вспомогательных функций типа поиска, фильтрации и т.п.
Всё рисуется программно, включая заголовки.
Естественно, используется двойная буферизация, иначе моргает неимоверно...
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39487218
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbN0B0DY123может быть тогда опишите техническое задание, в общих чертах,
хочется иметь представление, как делают grid.это что, троллинг такой? Тебе нужен грид, ты сам должен знать "что такое грид" и какими характеристиками он обладает. А так получается, мы тебе ещё должны и тех задание придумать

Можно и придумать, может получиться весело
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39487242
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилможет получиться весело
Код: plaintext
1.
T grid[n0][n1][n2][n3];
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39489406
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
d7iЕстественно, используется двойная буферизация, иначе моргает неимоверно...Она пригодится как минимум для реализации FrozenColumns
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39489407
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще. Некоторые считают, что грид "должен отображать только часть данных", т.е.видимую часть.

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

Я не согласен. Гораздо удобнее, когда грид отображает все данные специального буффера. А этот буффер уже, в свою очередь, грузит только нужную текущую часть данных, управляясь из того же грида.

Это называется Model/View именно так реализован грид в wxWidgets и помоему в Qt.

В wxWidgets кроме грида (wxGrid) есть еще виртуальная таблица куда грузятся данные, называется wxGridTableBase, это базовый класс от которого необходимо унаследовать свой класс. Все даннные из СУБД грузятся сначала в него, а потом в грид который берет из него содержимое и отображает только видимые данные. Это детали, которые не меняют суть дела, потому что время необходимое, что бы загрузить в модель данные из СУБД, такое же большое как и для загрузки и отрисовки всех данных непосредственно в гриде. Поэтому в модель грузятся так же частичные данные по мере необходимости отображения в гриде.
...
Рейтинг: 0 / 0
как создать свой собственный очень простенький grid ?
    #39490725
Sheraton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще нашел грид в котором можно посмотреть как он устроен. Пакет GtkExtra http://gtkextra.sourceforge.net/cms/ в котором есть GtkSheet один только главный файл грида 15 тыс.строк, но к нему еще идет 7 файлов с кодом, т.е. всего больше 15 тыс. строк.
...
Рейтинг: 0 / 0
82 сообщений из 82, показаны все 4 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / как создать свой собственный очень простенький grid ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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