Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Neue Eigenschaft für Image und Label (https://www.delphipraxis.net/94234-neue-eigenschaft-fuer-image-und-label.html)

Orpheus 18. Jun 2007 15:20


Neue Eigenschaft für Image und Label
 
Hi allerseits!
Wie kann man einem Image eine neue boolean-Eigenschaft namens "ausgewaehlt", und einem Label eine boolean-Eigenschaft "besetzt" hinzufügen??

Schon mal Danke im Vorraus ;)

SirThornberry 18. Jun 2007 15:22

Re: Neue Eigenschaft für Image und Label
 
das geht über Vererbung. Du musst also eine neue Komponente erstellen welche von TLabel bzw. TImage erbt und fügst dann die Eigenschaft hinzu.

Jelly 18. Jun 2007 15:23

Re: Neue Eigenschaft für Image und Label
 
Dazu musst du eine neue Komponente von TImage bzw. TLabel ableiten, und im published Teil der Klassendefinition deine neuen Eigenschaften definieren.

shmia 18. Jun 2007 15:44

Re: Neue Eigenschaft für Image und Label
 
... wobei man in der Praxis eher so vorgeht, dass man nur Standardcontrols verwendet (also keine Vererbung) und die zusätzlichenen Informationen in einer eigene Klasse speichert.

Orpheus 20. Jun 2007 12:07

Re: Neue Eigenschaft für Image und Label
 
Ok ich hab jetzt das neue Ding abgeleitet. Wie mach ich das hier jetzt genau?

Zitat:

und im published Teil der Klassendefinition deine neuen Eigenschaften definieren.

Jelly 20. Jun 2007 12:37

Re: Neue Eigenschaft für Image und Label
 
In etwa so:

Delphi-Quellcode:
unit uOrpheusImage ;
interface
uses SysUtils, Classes, graphics, ComCtrls ;

type
  TOrpheusImage = class (TImage)
  published
     property ausgewaehlt : boolean read Fausgewaehlt write Fausgewaehlt ;
  end ;

procedure Register ;

implementation

procedure Register ;
begin
      RegisterComponents(Orpheus, [TOrpheusImage ]);    
end ;

end.
Danach erstellst du ein Delphi Package (Datei->Neu->Weitere->Package), speicherst dieses unter einem beliebigen Namen ab, und fügst die uOrpheusImage unit hinzu. Das Package compilieren und installieren, und du solltest eine Meldung kriegen, dass die Komponente TOrpheusImage installiert ist.

In der VCL Palette ist jetzt eine Register Orpheus aufgetaucht mit deiner Image Komponente mit der zusätzlichen Eigenschaft.

ManuMF 20. Jun 2007 12:58

Re: Neue Eigenschaft für Image und Label
 
RegisterComponents erwartet als ersten Pasrameter IMO einen String.

_frank_ 20. Jun 2007 16:04

Re: Neue Eigenschaft für Image und Label
 
warum dazu nicht die Tag-Eigenschaft mißbrauchen?

Delphi-Quellcode:
  if boolean(image1.tag) then
    showmessage('ausgewählt (tag<>0)')
  else
    showmessage('nicht ausgewählt (tag=0)');
Gruß frank

Hansa 20. Jun 2007 18:56

Re: Neue Eigenschaft für Image und Label
 
Zitat:

Zitat von shmia
... wobei man in der Praxis eher so vorgeht, dass man nur Standardcontrols verwendet (also keine Vererbung) und die zusätzlichenen Informationen in einer eigene Klasse speichert.

Ist das wirklich Dein Ernst ? :shock: Alles selber machen und OOP außer Acht lassen ? Warum nicht das machen, was der Sir un Jelly vorschlagen ?

_frank_ 20. Jun 2007 19:25

Re: Neue Eigenschaft für Image und Label
 
Zitat:

Zitat von Hansa
Alles selber machen und OOP außer Acht lassen ?

warum "alles selber machen"?
- die standard-controls nehmen (also da schonmal gar nix machen)
- eine eigene Klasse für die Hintergrundinfos erstellen (ist imho oop ;) )
- ein objekt dieser klasse (bzw. Zeiger darauf) and das Standard-control anhängen (tag oder data-property)

wo sind da deine Bedenken? ist in meinen Augen ein sehr sparsamer / übersichtlicher code und OOP ist das auch, trotz fehlender Vererbung des Ursprungscontrols

Gruß Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.
Seite 1 von 2  1 2      

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