AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Komponente (TImage & TLabel) -> Image wird nicht angezeigt
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente (TImage & TLabel) -> Image wird nicht angezeigt

Ein Thema von NoGAD · begonnen am 8. Apr 2024 · letzter Beitrag vom 18. Mai 2024
 
Benutzerbild von NoGAD
NoGAD

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

AW: Komponente (TImage & TLabel) -> Image wird nicht angezeigt

  Alt 17. Mai 2024, 08:16
Guten Morgen.

Hier ist ein Test, damit ich das Prinzip verstehen kann.

Was mir jetzt fehlt, sind folgende Properties:
Falls möglich, hätte ich die gerne gebündelt dargestellt, will heißen, im ObjectExplorer sollte z.B.:

Code:
aImage + (aufklappbar)
  - Caption
  - Visible
aImage + (aufklappbar)
  - Picture
  - Visible
[..] (weitere property)
erreichbar sein.

Code:
TMyLabel ->
    property Caption;
    property Visible; // als Test

TMyImage ->
    property Picture;
    property Visible; // auch ein Test
Delphi-Quellcode:
unit ImageLabelTEST;

interface

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

type
  TMyImage = class(TImage)
  private
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Picture;
    property Visible;
  end;

  TMyLabel = class(TLabel)
  private
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Caption;
    property Visible;
  end;

  TImageLabelTEST = class(TCustomControl)
  private
    FImage: TMyImage;
    FLabel: TMyLabel;

    function GetImage: TPicture;
    procedure SetImage(const Value: TPicture);

    function GetLabelCaption: TCaption;
    procedure SetLabelCaption(const Value: TCaption);
    function GetLabelFont: TFont;
    procedure SetLabelFont(const Value: TFont);
  protected
    procedure Resize; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    property aImage: TMyImage read FImage;
    property aLabel: TMyLabel read FLabel;
  published
// folgende properties würde ich gerne mit den properties aus den eigenen Subkomponenten ersetzen
    property I_Picture: TPicture read GetImage write SetImage;

    property L_Caption: TCaption read GetLabelCaption write SetLabelCaption;
    property L_Font: TFont read GetLabelFont write SetLabelFont;

    property Align;
    property Anchors;
    property Visible;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('TRM', [TImageLabelTEST]);
end;

{ TMyImage }
constructor TMyImage.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

end;

destructor TMyImage.Destroy;
begin
  Self.Free;
  inherited Destroy;

end;

{ TMyLabel }
constructor TMyLabel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

end;

destructor TMyLabel.Destroy;
begin
  Self.Free;
  inherited Destroy;

end;

{ TImageLabel }
constructor TImageLabelTEST.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  FImage := TMyImage.Create(Self);
  FImage.Parent := Self;
  FImage.Align := alTop;
  FImage.Height := 100;

  FLabel := TMyLabel.Create(Self);
  FLabel.Parent := Self;
  FLabel.Align := alClient;
  FLabel.Alignment := taCenter;
end;

procedure TImageLabelTEST.Resize;
begin
  inherited;

end;

function TImageLabelTEST.GetImage: TPicture;
begin
  Result := FImage.Picture;

end;

procedure TImageLabelTEST.SetImage(const Value: TPicture);
begin
  FImage.Picture.Assign(Value);

end;

function TImageLabelTEST.GetLabelCaption: TCaption;
begin
  Result := FLabel.Caption;

end;

procedure TImageLabelTEST.SetLabelCaption(const Value: TCaption);
begin
  FLabel.Caption := Value;

end;

function TImageLabelTEST.GetLabelFont: TFont;
begin
  Result := FLabel.Font;

end;

procedure TImageLabelTEST.SetLabelFont(const Value: TFont);
begin
  FLabel.Font.Assign(Value);

end;

destructor TImageLabelTEST.Destroy;
begin
  FImage.Free;
  FLabel.Free;
  inherited Destroy;

end;

end.
Mathias
Ich vergesse einfach zu viel.
  Mit Zitat antworten Zitat
 


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 09:27 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