Einzelnen Beitrag anzeigen

Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
327 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Komponente: TPanel mit optionalen Labels im Panel

  Alt 21. Mai 2022, 23:48
Hier ist mal ein Test, wie ich es mir vorstelle.

Aber der Code ist natürlich kompletter Unsinn - ich weiß nur leider nicht, wie das richtig gemacht wird, die Darstellung für die Komponente ist erst einmal nur ein Test.

Z.B. der Name der Labels - wie können die automatisch einen bekommen?
Lasse ich den Namen weg, gibt es die nicht.

Ich würde den Labels gerne selbst einen Namen geben, vielleicht direkt bei der Erstellung - oder erst danach?
Keine Ahnung, wie das funktioniert.

Delphi-Quellcode:
unit My_PanelLabel;

interface

uses
  System.SysUtils, System.Classes, Vcl.Controls, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Graphics;

type
  TMy_PanelLabel = class;

  TMy_PanelLabel = class(TPanel)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    function AddLabel(AOwner: TComponent): TLabel;
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

function TMy_PanelLabel.AddLabel(AOwner: TComponent): TLabel;
begin
  Result := TLabel.Create(AOwner);
  Result.Name := AOwner.Name + '_' + AOwner.ComponentCount.ToString;
  Result.Parent := Self;
  Result.Align := alLeft;
  Result.AutoSize := True;
  Result.AlignWithMargins := True;
  Result.Alignment := taCenter;
  Result.Layout := tlCenter;
  Result.Transparent := False;
  case (AOwner.ComponentCount mod 2) = 0 of
    True:
      Result.Color := clLime;
    False:
      Result.Color := clYellow;
  end;
end;

procedure Register;
begin
  RegisterComponents('Test', [TMy_PanelLabel]);
end;

end.
Mathias
Ich vergesse einfach zu viel.

Geändert von NoGAD (21. Mai 2022 um 23:55 Uhr)
  Mit Zitat antworten Zitat