Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Eigene Eigenschaften beim Vererben (https://www.delphipraxis.net/35768-eigene-eigenschaften-beim-vererben.html)

Bigmichi 11. Dez 2004 15:16


Eigene Eigenschaften beim Vererben
 
Ich habe es ja nun mit einem Button geschafft zu vererben hab im ein Hintergrund zugewiesen mit TImage nur ich konnte ihm durch den Objektinspector kein Bild zuweißen da stand dan in der Zeile TPicture aber ich kontne keins zuweisen :( wieso ??


Code:
 type TMyNewForm = class(TButton)
    private
      FImage: TImage;
    procedure
      SetImage(Value: TImage);
    public
      constructor Create(AOwner: TComponent); override;
      destructor Destroy; override;

    published
     property Hintergrundbild: TImage read FImage write SetImage;
  end;





constructor TMyNewForm.Create(AOwner: TComponent);
  begin
    inherited Create(AOwner);
    FImage := TImage.Create(Self);
    FImage.Parent := Self;
  end;

destructor TMyNewForm.Destroy;
    begin
      FreeAndNil(FImage);
    inherited Destroy;
  end;



procedure TMyNewForm.SetImage(Value: TImage);
begin
  if FImage <> Value then FImage.Assign(Value);
end;

Jelly 11. Dez 2004 15:21

Re: Eigene Eigenschaften beim Vererben
 
Zitat:

Zitat von Bigmichi
Delphi-Quellcode:
 type TMyNewForm = class(TButton)
...
end ;

Also erst mal würd ich mir Gedanken über deine Namensgebung machen. Du leitest ein Objekt von TButton ab, und nennst es TMyNewForm.

Was kannst du denn nun nicht zuweisen. Gibts ne Fehlermeldung? Wo soll das Hintergrundbild denn erscheinen. Auf der Form oder auf dem Button?

Ein paar Zusatzinfos wären nicht schlecht.

Bigmichi 11. Dez 2004 15:24

Re: Eigene Eigenschaften beim Vererben
 
das es nun newform heißt ist deswegen weil es eigentlich eien Form werden soll nur das klappt auch net anderer Thread deswegen test mit button =)

der Hintergrund (besser gesagt TImage) sol sich über das ganze Control verteilen und in der Eigenschaft Hintergrudnbild sollte man halt ein JPG oder PNG bild auswählen können halt das die Form mit einem TImage bespannt ist und halt auch über den Inspector ändern kann =)

Jelly 11. Dez 2004 15:35

Re: Eigene Eigenschaften beim Vererben
 
Sorry,
aber ich versteh immer noch nicht. WAS klappt denn nicht :gruebel:

Alter Mann 11. Dez 2004 15:53

Re: Eigene Eigenschaften beim Vererben
 
Hi,

versuche es so:

Delphi-Quellcode:
 type TMyNewForm = class(TButton)
    private
      FImage: TImage;
      procedure SetPicture(Value: TPicture);
      function GetPicture : TPicture;  
    public
      constructor Create(AOwner: TComponent); override;
      destructor Destroy; override;

    published
     property Hintergrundbild: TPicture read GetImage write SetImage;
  end;

constructor TMyNewForm.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FImage := TImage.Create(Self);
  FImage.Parent := Self;
end;

destructor TMyNewForm.Destroy;
begin
  FreeAndNil(FImage);
  inherited Destroy;
end;

procedure TMyNewForm.SetPicture(Value: TPicture);
begin
  if FImage.Picture <> Value then FImage.Picture.Assign(Value);
end;

function TMyNewForm.GetPicture: TPicture;
begin
  Result := FImage.Picture;
end;

Bigmichi 11. Dez 2004 15:55

Re: Eigene Eigenschaften beim Vererben
 
hab nun ein Bild dazu gemacht =)

Bild:
http://server.future-coding.de/uff.jpg

wie ihr sehen könnt habe ich auf der linken Form meinen Button gemacht und dem eine Eigenschaft Hinterhrundbild eingefügt was man rechts im Inspector sieht schön und gut bisher :D nur das Problem ist ich kan Picture nix zuweisen :( kp wieso o.O und ausserdem brauch ich nicht alle Eigenschaften von TImage eigentlich nur Picture und eine Eigene ...


Kann mir jemand helfen ?

Jelly 11. Dez 2004 16:02

Re: Eigene Eigenschaften beim Vererben
 
Zitat:

Zitat von Bigmichi
ausserdem brauch ich nicht alle Eigenschaften von TImage eigentlich nur Picture und eine Eigene ...

Dann nimm doch TPicture statt TImage...

Um das Zeichnen des Bildes musst dich aber schon selbst kümmern. Kuck dir mal die Eigenschaft Canvas deines Forms an. Da kannst du direkt aufs Form zeichnen.

Bigmichi 11. Dez 2004 16:08

Re: Eigene Eigenschaften beim Vererben
 
es sol ja nicht auf die Form in canvas gemalt werden o.O es muss ein Image / picture sein weil ich die Daten davon brauche =)
udn wi emeisnt du selber malen o.O

hab gedacht wenn man der eigenschaft Picture ein Bild zuweist is es ein Bild ?

Jelly 11. Dez 2004 16:11

Re: Eigene Eigenschaften beim Vererben
 
Zitat:

Zitat von Bigmichi
hab gedacht wenn man der eigenschaft Picture ein Bild zuweist is es ein Bild ?

Klar. Aber erstmal hast du das Bild im Speicher. Was du dann damit anfängst ist dir überlassen...

Canvas ist sozusagen die Zeichenwand eines Controls. Darauf musst du dein Bild darstellen... Schau mal in die OH rein, da steht alles dazu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz