Einzelnen Beitrag anzeigen

Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Ein Label in einer Komponenten im Objektinspektor anzeigen

  Alt 14. Jan 2007, 14:14
Halo Zusammen,

ich habe eine Komponente aus TPanel abgeleitet und erweitert mit ein
TJvAngleLabel(ist ein TLabel aus JVC).

Problem1: Der Objektinspektor zeigt mir die Eigenschaft zwar an, jedoch mit ein DropDown Button.
Ich hätte erwartet das es wie eine Baumstruktur angezeigt wird, da es ja ein Objekt ist.
Problem2: Das Label wird nur zur Laufzeit angezeigt.
Problem3: Wie kann ich bitte die Eigenschaft Panel.Caption entfernen da ich sich nicht benötige.


Hier mein code:
Der Sinn der Komponente ist, wenn das Panel schmäler ist wie die Länge des Label,
soll das Label um 90Grad gedreht und zentriert werden.

Hat jemand eine Idee?

Delphi-Quellcode:
unit LabelPanel;

interface

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

type
  TLabelPanel = class(TPanel)
  private
    { Private-Deklarationen }
    FAngleLabel : TJvAngleLabel;
  protected
    { Protected-Deklarationen }
    procedure WMSize( var Message: TWMSize ); message WM_SIZE;
  public
    { Public-Deklarationen }
    constructor Create(AOwner:TComponent); override;
  published
    { Published-Deklarationen }
    property AngleLabel : TJvAngleLabel read FAngleLabel write FAngleLabel;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Kostas Std', [TLabelPanel]);
end;


procedure TLabelPanel.WMSize(var Message: TWMSize);
begin
  if Assigned(FAngleLabel) then
  begin
    if (FAngleLabel.Width > Width)
    then FAngleLabel.Angle := 90
    else FAngleLabel.Angle := 0;

    FAngleLabel.Left := Trunc( (width / 2) - (FAngleLabel.Height / 2) );
    FAngleLabel.Top := Trunc( (Height / 2) - (FAngleLabel.Width / 2) );
  end;{if}

  if Assigned(OnResize) then OnResize(Self);


end;

Constructor TLabelPanel.Create(AOwner:TComponent);
begin
  inherited Create(AOwner);
  self.Caption := '';
  FAngleLabel := TJvAngleLabel.Create(self);
  FAngleLabel.Parent := self;
  FAngleLabel.caption := 'Das isze ein langer Text';
end;

end.
  Mit Zitat antworten Zitat