|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Перепись чужого компонента
возможно краем бока относится к недавней теме http://www.delphisources.ru/forum/sh...ad.php?t=24941
но все-таки. Есть у нас пример переписывания 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; |