AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Color Combox auf TStringGrid

Ein Thema von bernhard_LA · begonnen am 25. Okt 2014 · letzter Beitrag vom 25. Okt 2014
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.138 Beiträge
 
Delphi 11 Alexandria
 
#1

Color Combox auf TStringGrid

  Alt 25. Okt 2014, 00:31
Ich habe im Internet eine fertige Komponente gefunden um Daten in einem Stringrid über eine Combobox bzw. einen Input-Dialog einzugeben. Nun möchte ich aber meine selbst gebaute TFarbbox als Erweiterung einer TCombobox als Eingabekomponente verwenden. Wie geht denn sowas?????


Delphi-Quellcode:
unit unit_TCustomStringGrid;

 interface

 uses
   Windows, Messages, SysUtils, Classes, Controls, Grids;

 type
   TGetEditStyleEvent = procedure (TSender:TObject; ACol,ARow:integer;
     var EditStyle:TEditStyle) of object;

   TCustomStringGrid = class(TStringGrid)
   private
     FDropdownRowCount : integer;
     FOnEditButtonClick : TNotifyEvent;
     FOnGetEditStyle : TGetEditStyleEvent;
     FOnGetPickListItems : TOnGetPickListItems;
     procedure SetDropdownRowCount(value:integer);
     procedure SetOnEditButtonClick(value:TNotifyEvent);
     procedure SetOnGetPicklistItems(value:TOnGetPickListItems);
   protected
     function CreateEditor: TInplaceEdit; override;
     function GetEditStyle(ACol, ARow: integer): TEditStyle; override;
   public
     constructor Create(AOwner:TComponent); override;
   published
     property DropdownRowCount : integer
       read FDropDownRowCount write SetDropdownRowCount default 8;
     property OnEditButtonClick: TNotifyEvent
       read FOnEditButtonClick write SetOnEditButtonClick;
     property OnGetEditStyle : TGetEditStyleEvent
       read FOnGetEditStyle write FOnGetEditStyle;
     property OnGetPickListItems : TOnGetPickListItems
       read FOnGetPickListItems write SetOnGetPickListItems;
   end;

 procedure Register;

 implementation

 constructor TCustomStringGrid.Create(AOwner:TComponent);
 begin
   ...
 end;

 function TCustomStringGrid.CreateEditor: TInplaceEdit;
 begin
   result := TInplaceEditList.Create(self);
   with TInplaceEditList(result) do begin
     DropdownRows := FDropdownRowCount;
     OnGetPickListItems := FOnGetPickListItems;
     OnEditButtonClick := FOnEditButtonClick;
   end;
 end;

 function TCustomStringGrid.GetEditStyle(ACol,ARow:integer) : TEditStyle;
 begin
   result := esSimple;
   if Assigned(FOnGetEditStyle)
     then FOnGetEditStyle(self, ACol, ARow, result);
 end;

 procedure TCustomStringGrid.SetDropDownRowCount(value:integer);
 begin
   FDropdownRowCount := value;
   if Assigned(InplaceEditor)
     then TInplaceEditList(InplaceEditor).DropdownRows := value;
 end;

 procedure TCustomStringGrid.SetOnEditButtonClick(value:TNotifyEvent);
 begin
   FOnEditButtonClick := value;
   if Assigned(InplaceEditor)
     then TInplaceEditList(InplaceEditor).OnEditButtonClick := value;
 end;

 procedure TCustomStringGrid.SetOnGetPicklistItems(value:TOnGetPicklistItems);
 begin
   FOnGetPicklistItems := value;
   if Assigned(InplaceEditor)
     then TInplaceEditList(InplaceEditor).OnGetPickListitems := value;
 end;

 procedure Register;
 begin
   RegisterComponents('Samples', [TCustomStringGrid]);
 end;

 end

und die Farbbox Komponente dazu



Delphi-Quellcode:
  TFarbBox = class(TComboBox)
  private
    { Private-Deklarationen }
    function GetColor: TColor;
  protected
    { Protected-Deklarationen }
   procedure DrawItem(Index: Integer; Rect: TRect;
      State: TOwnerDrawState);override;

   procedure CreateWnd; override;
  public
    { Public-Deklarationen }
  constructor Create(AOwner: TComponent);override;
  published
    { Published-Deklarationen }
    property color : TColor read GetColor;
  end;

Anlage ist das Grid Version heute, in der nächsten Version bewirkt ein Click auf eine Farbe eine Anzeige der FarbCombobox und der User kann die neue Farbe auswählen
Miniaturansicht angehängter Grafiken
grid_sample.png  

Geändert von bernhard_LA (25. Okt 2014 um 00:57 Uhr)
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Color Combox auf TStringGrid

  Alt 25. Okt 2014, 07:58
Hallo,

gugg mal hier

Gruß Frank

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz