Einzelnen Beitrag anzeigen

Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#63
  Alt 17. Apr 2003, 20:20
Folgender Code hängt in keiner Weise mit irgendeinem bisher in diesem Thread geposteten Code zusammen sondern wurde gerade von mir erstellt (ich hab mich ein bisschen am "original" TLabeledEdit orientiert):

Delphi-Quellcode:
unit LabeledDBEdit;

interface

uses
  DBCtrls, StdCtrls, Classes, Controls;

type
  TLabeledDBEdit = class(TDBEdit)
    private
      FLabel: TLabel;
    protected
      procedure SetParent(Value: TWinControl); override;
    public
      procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
      constructor Create(AOwner: TComponent); override;
      destructor Destroy; override;
  end;

  procedure Register;

implementation

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

constructor TLabeledDBEdit.Create(AOwner: TComponent);
begin
  inherited;
  FLabel := TLabel.Create(Self);
  FLabel.Caption := 'LabelCaption';
end;

destructor TLabeledDBEdit.Destroy;
begin
  FLabel.Free;
  FLabel := nil;
  inherited;
end;

procedure TLabeledDBEdit.SetParent(Value: TWinControl);
begin
  inherited;
  if Assigned(FLabel) then
  begin
    FLabel.Parent := Value;
    FLabel.Top := Top - FLabel.Height - 1;
    FLabel.Left := Left;
    FLabel.Visible := True;
  end;
end;

procedure TLabeledDBEdit.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
begin
  inherited;
  if Assigned(FLabel) then
  begin
    FLabel.Top := Top - FLabel.Height - 1;
    FLabel.Left := Left;
  end;
end;

end.
Ich hab die Kompo nicht ausführlich getestet, aber es funktioniert soweit alles. Das Label wird sowohl zur Design-Time als auch RunTime richtig angezeigt.

Es sollte also kein Problem sein das TRealEdit so zu erweitern..
Manuel Pöter
  Mit Zitat antworten Zitat