AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Panel mit Label dynamisch erzeugen

Ein Thema von hans ditter · begonnen am 28. Jul 2010 · letzter Beitrag vom 17. Sep 2010
Antwort Antwort
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Panel mit Label dynamisch erzeugen

  Alt 28. Jul 2010, 20:19
Hallo hans ditter,

was man auch benutzen kann ist ein Komponenten-Template.
Damit es relativ einfach eine neue Komponente zu erschaffen ohne viel Quelltext. Jedenfalls siehe ich das bei Standard-Komponenten die nicht allzu viele Sondereigenschaften haben einer neuen abgeleiteten Komponente vor.

Allerdings ist mir nicht bekannt ob das bei den Turbos auch geht, bei dem BDS 2006 ist es dabei.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Panel mit Label dynamisch erzeugen

  Alt 28. Jul 2010, 23:09
Hi alle zusammen. Ich hatte heute erstmal mit dem Frame angefangen, aber Stahli hat bei mir das Feuer wieder entfacht...

Ich hab allerdings schon ein paar Fragen, die, hoffe ich, nicht alzu blöd sind.
Zitat:
constructor Create(AOwner: TComponent); override;
Warum ist der Owner TComponent?
Zitat:
inherited;
was besagt dies? inherited = vererbt...
und zu inherited hab ich noch eine Frage: ich hab im INet ein Tut gefunden und der schreibt beim Constructor
Zitat:
inherited Create(AOwner)
und beim Destructor
Zitat:
inherited Destroy
... ist das egal, wie ich das schreibe oder ist da ein Unterschied?
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Panel mit Label dynamisch erzeugen

  Alt 29. Jul 2010, 05:24
Zitat:
Warum ist der Owner TComponent?
In dieser Klasse sind die notwendigen Eigenschaften/Funktionalitäten implementiert
Zitat:
Zitat:
inherited;
was besagt dies? inherited = vererbt...
Es soll eine Methode der Superklasse aufgerufen werden. Wird keine angegeben, wird die Methode mit selben Namen und selber Signatur genommen.
Zitat:
und zu inherited hab ich noch eine Frage: ich hab im INet ein Tut gefunden und der schreibt beim Constructor
Zitat:
inherited Create(AOwner)
und beim Destructor
Zitat:
inherited Destroy
... ist das egal, wie ich das schreibe oder ist da ein Unterschied?
[/QUOTE]
Hier wird explizit gesagt das das geerbte Create mit dem Parameter AOwner genommen werden soll. Destroy hat keine Parameter.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.372 Beiträge
 
Delphi 12 Athens
 
#4

AW: Panel mit Label dynamisch erzeugen

  Alt 29. Jul 2010, 07:26
Inherited besagt, daß man eine Funktion/Procedur aus der Elternklasse aufrufen will.
- Beim Constructor und Destruktor muß/sollte man dieses machen, damit auch die Felder der Elternklassen initialisiert und freigegeben werden.
- Und in diesem Fall ist es doch so, daß hier gleichnamige Funktionen vorliegen (einmal das Create in deiner Klasse und dann das/die Create in den Klassenvorfahren)
und irgendwie muß man dem Compiler ja mittteilen, welche Version man aufrufen möchte ... standardmäßig wird ja immer die letzte Version (also die in deiner eigenen Klasse Deklarierte) verwendet/aufgerufen ... und mit Inherited davor dann die aus dem Vorfahren.

Wenn praktisch irgendwelche Funktionen in deiner Klasse überschrieben/verdeckt wurden, dann kannst du so die "originalen" Funktionen im Vorfahren aufrufen:
Delphi-Quellcode:
inherited Procedurname(Parameter, Parameter2, ...);
inherited Procedurname(Parameter);
inherited Procedurname;
// genauso bei Constructor und Destructor

Result := inherited Funktionsname(Parameter, Parameter2, ...);
Result := inherited Funktionsname(Parameter);
Result := inherited Funktionsname;
Wenn sich aber der Name und der Parametersatz des aufzurufenen Funktion mit der der aufrufenen Funktion gleichen, dann kann man auch "alles" weglassen und nur Inherited angeben.
Delphi-Quellcode:
inherited; // genauso bei Constructor und Destructor

Result := inherited;
Wenn also dein eigener Constructor genauso aufgebaut ist, wie einer eines Vorfahren, dann reicht ein einfaches Inherited ... also solange du nicht eigene Parameter hinzugefügt hast.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz