AGB  ·  Datenschutz  ·  Impressum  







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

TCategoryPanelGroup modifizieren

Offene Frage von "cpux86"
Ein Thema von Keks · begonnen am 2. Apr 2011 · letzter Beitrag vom 7. Nov 2019
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.339 Beiträge
 
Delphi 12 Athens
 
#1

AW: TCategoryPanelGroup modifizieren

  Alt 2. Apr 2011, 14:15
fällt mir auf, dass ...
Strg+Linksklick auf TCategoryPanelGroup innerhalb deines XE und du landest meistens in der richtgen Unit und von dort kann man sich gleich zum TCustomCategoryPanelGroup weiterklicken

Statt Strg+Linksklick kann man auch über's Kontextmenü "Deklaration suchen" des Codeeditors dort hin.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#2

AW: TCategoryPanelGroup modifizieren

  Alt 2. Apr 2011, 14:27
Strg+Linksklick auf TCategoryPanelGroup
Das geht imho aber nur, wenn der Pfad zu der pas in den Library-Angabenenthalten ist. Da bei mir der "[...]\RAD Studio\8.0\source\vcl" Pfad dort nicht drin war, hat das mit dem Klicken auch nicht funktioniert.

Ich komme allerdings gerade nicht weiter mit dem Überschreiben einer Funktion der Basiskomponente.
Ich habe jetzt folgendes:
Delphi-Quellcode:
unit MyCategoryPanelGroup;

interface

uses
  SysUtils, Classes, Controls, Forms, ExtCtrls, Graphics;

type
  TMyCategoryPanelGroup = class(TCategoryPanelGroup)
  private
    { Private declarations }
  protected
    { Protected declarations }
    procedure DrawHeaderChevron(ACanvas: TCanvas); override;
  public
    { Public declarations }
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('My', [TMyCategoryPanelGroup]);
end;

procedure TCategoryPanelGroup.DrawHeaderChevron(ACanvas: TCanvas);
begin
  //
end;

end.
Damit sollte der Pfeil doch schon mal nicht gezeichnet werden, oder? Jedenfalls erhalte ich beim Kompilieren die Meldung: "Method 'DrawHeaderChevron' not found in base class". DrawHeaderChevron ist Teil von TCustomCategoryPanel von dem TCategoryPanel abgeleitet ist. Ich denke für meinen Fall ist es einfacher von TCategoryPanel abzuleiten statt von TCustomCategoryPanel, da ich sonst erst alles, was fehlt, selbst nachrüsten müsste.
Warum wird DrawHeaderChevron also nicht gefunden?
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#3

AW: TCategoryPanelGroup modifizieren

  Alt 2. Apr 2011, 22:02
Würde mich sehr freuen, wenn mir jemand zeigt, wie das geht!
Habe es selbst leider nicht herausfinden können.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: TCategoryPanelGroup modifizieren

  Alt 2. Apr 2011, 22:50
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type

  TCategoryPanel = class(extctrls.TCategoryPanel)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    procedure DrawHeaderChevron(ACanvas: TCanvas);override;

    { Public declarations }
  published
    { Published declarations }
  end;

  TForm1 = class(TForm)
    CategoryPanelGroup1: TCategoryPanelGroup;
    CategoryPanel1: TCategoryPanel;
    CategoryPanel2: TCategoryPanel;
    Button1: TButton;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TCategoryPanelGroup }

procedure TCategoryPanel.DrawHeaderChevron(ACanvas: TCanvas);
begin
  //>> beispiel
  Acanvas.FillRect(Rect(0,0,width,Height));
end;

end.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#5

AW: TCategoryPanelGroup modifizieren

  Alt 2. Apr 2011, 23:47
Vielen Dank, Bummi! Das funktioniert.

Aber wie komme ich jetzt noch an die Zustände wie FHeaderState oder FCollapsed bzw. weitere Attribute wie die gesetzten Farben (FPanelGroup.ChevronColor) heran?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: TCategoryPanelGroup modifizieren

  Alt 3. Apr 2011, 07:17
Du musst Dir die Sachen einfach zusammensuchen, ich habe noch mal ein sinnfreies Beispiel angehängt...

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TCategoryPanel = class(extctrls.TCategoryPanel)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    procedure DrawHeaderChevron(ACanvas: TCanvas);override;
    property HeaderState;
    { Public declarations }
  published
    { Published declarations }
  end;
  TForm1 = class(TForm)
    CategoryPanelGroup1: TCategoryPanelGroup;
    CategoryPanel1: TCategoryPanel;
    CategoryPanel2: TCategoryPanel;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TCategoryPanel.DrawHeaderChevron(ACanvas: TCanvas);
begin
  //>> beispiel
  Acanvas.Brush.Color := TCategoryPanelGroup(Parent).ChevronColor;
  Acanvas.FillRect(Rect(0,0,width,Height));
  Case HeaderState Of
    hsNormal: ACanvas.TextOut(0,0,'N');
    hsPressed: ACanvas.TextOut(0,0,'P');
    hsHot: ACanvas.TextOut(0,0,'H');
  End;

end;

end.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Keks

Registriert seit: 25. Mai 2005
122 Beiträge
 
#7

AW: TCategoryPanelGroup modifizieren

  Alt 3. Apr 2011, 15:48
Vielen Dank, damit komme ich jetzt zurecht!
Wünsche einen schönen Sonntag!
  Mit Zitat antworten Zitat
cpux86

Registriert seit: 24. Jun 2008
7 Beiträge
 
#8

AW: TCategoryPanelGroup modifizieren

  Alt 7. Nov 2019, 18:54
#### Moderatoren, Bitte diesen Beitrag löschen! Doppelpost! ######

Geändert von cpux86 ( 7. Nov 2019 um 19:38 Uhr)
  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 21:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz