Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.59.48.161] |
|
Сообщ.
#1
,
|
|
|
На базе компонента TStringGrid создал TCLStringGrid с дополнительными возможностями:
1. Возможность менять цвет раделительных линий фиксированных и не фиксированных ячеек. 2. Возможность менять шрифты в фиксированных ячейках, в выделенной строке. 3. Возможность менять цвет фона выделенной строки. 4. Возможность менять цвет и толщину линий ограничивающих выделенную строку. 5. Добавилось свойство Aligment - возможность менять расположение текста в ячейках (слева, справа, по центру). В общем возможности отображены в скриншоте Новые свойства смотрите в файле Readme.txt Компонент серьезно не тестировал, но поверхностно все работает. Прикреплённый файлTCLStringGrid.zip (6.09 Кбайт, скачиваний: 1869) |
Сообщ.
#2
,
|
|
|
Сказано-сделано.Сенкс.
|
Сообщ.
#3
,
|
|
|
По мере свободного времени я продолжу расширять этот компонент в сторону функциональных возможностей, например есть идея добавить возможность создать список ячеек, которые должны раскрашиваться в разные цвета, также добавлю сюда возможности своего компонента EmergingHelp - при вводе в ячейку должен появиться список подсказок как в IDE Delphi. В общем если у кого есть идеи по расширению возможностей StringGrid кидайте сюда.
|
Сообщ.
#4
,
|
|
|
Неплохо было бы добавить возможность раскраски конкретной ячейки и выбор ее фона, можно например создать массив, где бы хранились атрибуты для ячеек и перехватывать обработчик события перерисовки таблицы, где и в зависимости от атрибутов рисовать ячейку.
|
Сообщ.
#5
,
|
|
|
ufo_cat, Ok, принято.
|
Сообщ.
#6
,
|
|
|
Неплохо было бы добавить возможность выпадающего списка как у DBGrid.
|
Сообщ.
#7
,
|
|
|
DimaBr, DevExpress платный, а юзать крякнутые компоненты черевато
|
Сообщ.
#8
,
|
|
|
было бы неплохо еще сделать так: если в ячейке длинная строка, то ставить многоточие вместо того что невлезло, а при наведении мышки, чтобы выскакивала полная строка в виде подсказки
|
Сообщ.
#9
,
|
|
|
нужны такие вот дополнительные возможности:
1) Возможность выпадающих списков и кнопок выбора для ячеек. 2) Возможность выбора нескольких несмежных ячеек Второе менее важно, но тоже хотелось бы |
Сообщ.
#10
,
|
|
|
есть поддержка WideString?
|
Сообщ.
#11
,
|
|
|
Поддержка Unicode планируется централизованно в Delphi 2008.
|
Сообщ.
#12
,
|
|
|
Нужно добавить возможность окраски произвольно выбранных ячеек в любой цвет.
Ну по примеру: http://www.infomix.ru:8000/lib/components/3885.htm |
Сообщ.
#13
,
|
|
|
Есть у нас пример переписывания TStringGrid`a где добавляем тип ячейки т.е. esEllipsis(кнопка скраю с 3 точками) esPickList(по типу комбобокса) и т.д. вот отсюда http://delphi.cjcsoft.net/viewthread.php?tid=47965
там используют TInplaceEdit, но я использую не стандартный стринг грид, а вот отсюда http://avemey.com/zcolorstringgrid/z...id.php?lang=ru + я его уже дописал для себя и добавил еще свойств как в екселе, но вот реализовать эти кнопочки не могу т.к. вместо стандартного TInplaceEdit в нем используется TCustomMemo, а одно к другому практически не совместимо. Конкретнее мне нужно в этот TCustomMemo добавить свойства тип (что я успешно сделал) и при смене его, рисовать кнопку или комбобокс и обрабатывать нажатие (что я не сделал), копавшись в исходниках TInplaceEdit`a ни к чему не пришел и прошу помощи. В моем случае он объявлен как: //âìåñòî ñòàíäàðòíîãî InplaceEditor-à TZInplaceEditor = class(TCustomMemo) private FGrid: TZColorStringGrid; FExEn: integer; // "êîñòûëü" äëÿ èñïðàâíîé ðàáîòû DoEnter/DoExit ** protected procedure DoEnter; override; procedure DoExit; override; procedure Change; override; procedure DblClick; override; procedure KeyDown(var Key: Word; Shift: TShiftState); override; procedure KeyPress(var Key: Char); override; procedure KeyUp(var Key: Word; Shift: TShiftState); override; public constructor Create(AOwner: TComponent); override; function DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean; override; function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;override; end; TInplaceEditorOptions = class (TPersistent) private FGrid: TZColorStringGrid; FFontColor: TColor; FBGColor: TColor; FBorderStyle: TBorderStyle; FAlignment: TAlignment; FWordWrap: Boolean; FUseCellStyle: Boolean; procedure SetFontColor(const Value: TColor); procedure SetBGColor(const Value: TColor); procedure SetBorderStyle(const Value: TBorderStyle); procedure SetAlignment(const Value: TAlignment); procedure SetWordWrap(const Value: Boolean); procedure SetUseCellStyle(const Value: Boolean); protected public constructor Create(AGrid: TZColorStringGrid); virtual; published property FontColor: TColor read FFontColor write SetFontColor default clblack; property BGColor: TColor read FBGColor write SetBGColor default clWhite; property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsNone; property Alignment: TAlignment read FAlignment write SetAlignment default taLeftJustify; property WordWrap: Boolean read FWordWrap write SetWordWrap default true; property UseCellStyle: Boolean read FUseCellStyle write SetUseCellStyle default true; end; П.С. Если не туда копаю тогда прошу направить меня в нужное русло! |