На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Обязательно выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Этот раздел предназначен для вопросов, посвященных разработке компонентов, а также для тестирования собственных бесплатных компонентов с открытым исходным кодом.

Здесь запрещается:
1. Размещать ссылки на какие-либо коммерческие компоненты, реализующие требуемую функциональность.
2. Обсуждать и тестировать коммерческие компоненты или компоненты с закрытым кодом.
3. Давать ссылки на сайты с исходным кодом компонентов. Все тестируемые исходные коды должы быть размещены на сайте ИСХОДНИКИ.RU.
Модераторы: Rouse_, DimaBr
  
> Расширенный StringGrid , Создан по просьбе трудящихся
    На базе компонента TStringGrid создал TCLStringGrid с дополнительными возможностями:
    1. Возможность менять цвет раделительных линий фиксированных и не фиксированных ячеек.
    2. Возможность менять шрифты в фиксированных ячейках, в выделенной строке.
    3. Возможность менять цвет фона выделенной строки.
    4. Возможность менять цвет и толщину линий ограничивающих выделенную строку.
    5. Добавилось свойство Aligment - возможность менять расположение текста в ячейках (слева, справа, по центру).
    В общем возможности отображены в скриншоте
    Новые свойства смотрите в файле Readme.txt
    Компонент серьезно не тестировал, но поверхностно все работает.
    Прикреплённый файлПрикреплённый файлTCLStringGrid.zip (6.09 Кбайт, скачиваний: 1842)
      Сказано-сделано.Сенкс.
        По мере свободного времени я продолжу расширять этот компонент в сторону функциональных возможностей, например есть идея добавить возможность создать список ячеек, которые должны раскрашиваться в разные цвета, также добавлю сюда возможности своего компонента EmergingHelp - при вводе в ячейку должен появиться список подсказок как в IDE Delphi. В общем если у кого есть идеи по расширению возможностей StringGrid кидайте сюда.
          Неплохо было бы добавить возможность раскраски конкретной ячейки и выбор ее фона, можно например создать массив, где бы хранились атрибуты для ячеек и перехватывать обработчик события перерисовки таблицы, где и в зависимости от атрибутов рисовать ячейку.
            ufo_cat, Ok, принято.
              Неплохо было бы добавить возможность выпадающего списка как у DBGrid.
                DimaBr, DevExpress платный, а юзать крякнутые компоненты черевато
                  было бы неплохо еще сделать так: если в ячейке длинная строка, то ставить многоточие вместо того что невлезло, а при наведении мышки, чтобы выскакивала полная строка в виде подсказки
                    нужны такие вот дополнительные возможности:
                    1) Возможность выпадающих списков и кнопок выбора для ячеек.
                    2) Возможность выбора нескольких несмежных ячеек
                    Второе менее важно, но тоже хотелось бы :huh:
                      есть поддержка WideString?
                      Сообщение отредактировано: Stalker.mg -
                        Поддержка Unicode планируется централизованно в Delphi 2008.
                          Нужно добавить возможность окраски произвольно выбранных ячеек в любой цвет.
                          Ну по примеру: http://www.infomix.ru:8000/lib/components/3885.htm
                            Есть у нас пример переписывания 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 ни к чему не пришел и прошу помощи.
                            В моем случае он объявлен как:
                            ExpandedWrap disabled
                                  //âìåñòî ñòàíäàðòíîãî 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;


                            П.С. Если не туда копаю тогда прошу направить меня в нужное русло!
                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0372 ]   [ 16 queries used ]   [ Generated: 19.03.24, 06:10 GMT ]