ich habe eine TPanel Komponente mit einem weiteren Child TPanel und 2 Labels versehen.
wenn ich nun die komponente auf das Form ziehe, compiliere und das programm ausführe
und versuche auf das 1te panel zu clicken, tut ic nix.
was kann das sein?
ich will erreichen, dass das gesamte panel (komponente) "clickbar" ist/wird.
hier der code:
Code: Alles auswählen
unit PElement;
{$mode delphi}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, StdCtrls, Graphics, Dialogs, ExtCtrls;
type
TPElement = class(TPanel)
private
FLabelName: TLabel;
FLabelMasse: TLabel;
FPanelSerie: TPanel;
FSColor: TColor;
FEName: String;
FMasse: String;
procedure setElementName(Value: String);
procedure setElementSerie(Value: TColor);
procedure setMasse(Value: String);
function getElementName: String;
function getElementSerie: TColor;
function getMasse: String;
protected
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property ColorSerie: TColor read getElementSerie write setElementSerie;
property Caption: String read getElementName write setElementName;
property CaptionMasse: String read getMasse write setMasse;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('KALLUP.NET',[TPElement]);
end;
constructor TPElement.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Caption := '1 H';
Color := 16777170;
ColorSerie := clBlue;
Caption := '1 H';
Width := 52;
Height := 59;
Font.Color := Color;
FLabelName := TLabel.Create(self);
FLabelName.Parent := self;
FLabelName.AutoSize := false;
FLabelName.Caption := '1 H';
FLabelName.Font.Size := 10;
FLabelName.Font.Style := [fsBold];
FLabelName.Font.Name := 'Arial';
FLabelName.Font.Color := clBlack;
FLabelName.Top := 3;
FLabelName.Width := 16;
FLabelName.Left := 8;
FLabelName.Height := 33;
FLabelName.ParentColor := False;
FLabelName.ParentFont := False;
FLabelName.WordWrap := True;
FLabelName.onClick := self.OnClick;
FLabelMasse := TLabel.Create(self);
FLabelMasse.Parent := self;
FLabelMasse.AutoSize := false;
FLabelMasse.Caption := '1.007';
FLabelMasse.Font.Size := 8;
FLabelMasse.Font.Style := [fsBold];
FLabelMasse.Font.Name := 'Arial';
FLabelMasse.Font.Color := clBlack;
FLabelMasse.Top := 33;
FLabelMasse.Left := 8;
FLabelMasse.ParentColor := False;
FLabelMasse.ParentFont := False;
FLabelMasse.OnClick := onClick;
FPanelSerie := TPanel.Create(self);
FPanelSerie.Parent := self;
FPanelSerie.Color := ColorSerie;
FPanelSerie.Height := 10;
FPanelSerie.Top := 46;
FPanelSerie.Left := 2;
FPanelSerie.Width := 46;
FPanelSerie.OnClick := onClick;
end;
destructor TPElement.Destroy;
begin
FLabelName.Free;
FPanelSerie.Free;
inherited Destroy;
end;
procedure TPElement.setElementName(Value: String);
begin
if Assigned(FLabelName) then
begin
FLabelName.Caption := Value;
FEName := Value;
end;
end;
procedure TPElement.setElementSerie(Value: TColor);
begin
if Assigned(FPanelSerie) then
begin
FSColor := Value;
FPanelSerie.Color := Value;
end;
end;
procedure TPElement.setMasse(Value: String);
begin
if Assigned(FLabelMasse) then
begin
FLabelMasse.Caption := Value;
FMasse := Value;
end;
end;
function TPElement.getElementName: String;
begin
result := FEName;
end;
function TPElement.getElementSerie: TColor;
begin
result := FSColor;
end;
function TPElement.getMasse: String;
begin
result := FMasse;
end;
end.