Delphi-Quellcode:
unit Elevator;
interface
uses
System.SysUtils, System.Classes,
Vcl.Controls, graphics, dialogs, forms;
type
TElevator =
class(TGraphicControl)
private
{ Private-Deklarationen }
FBreite: Integer;
FHoehe: Integer;
protected
{ Protected-Deklarationen }
procedure Paint;
override;
public
{ Public-Deklarationen }
constructor Create(AOwner: TComponent);
override;
destructor Destroy;
override;
published
{ Published-Deklarationen }
property onclick;
property ondblclick;
property showhint;
Property Breite : integer
read FBreite
write FBreite
default 20;
Property Hoehe : integer
read FHoehe
write FHoehe
default 300;
end;
procedure Register;
implementation
//uses uKomp_Zustaende;
procedure Register;
begin
RegisterComponents('
SPS', [TElevator]);
end;
constructor TElevator.Create(AOwner: TComponent);
begin
inherited;
end;
destructor TElevator.Destroy;
begin
inherited;
end;
procedure TElevator.Paint;
begin
inherited;
// <--- Wichtig!!!
with canvas
do
begin
//Silo-Körper
pen.Color := clblack;
Brush.Color := clgray;
Brush.Style := bsSolid;
rectangle(0,0,FBreite,FHoehe);
end;
end;
Wenn beim Einsatz der Komponente also zur Entwurfszeit der Anwendung im
OI die Werte für Breite und Höhe geändert werden,
wird das Objekt nicht neu gezeichnet..Wie kann ich das programmieren?, also wenn Value für Breite geändert, dann paint.
Die Default-Werte für Breite und Höhe übernimmt er nicht bei Nutzung der Komponente auf einer Form, da steht dann bei beidem 0
im
OI.
Wie kann ich die Grundeinstellung (default) für (die geerbten Eigenschaften) width und height der Komponente ändern?