AGB  ·  Datenschutz  ·  Impressum  







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

Frame als Komponente + Event

Offene Frage von "semo"
Ein Thema von semo · begonnen am 24. Jul 2009 · letzter Beitrag vom 25. Jul 2009
Antwort Antwort
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#1

Frame als Komponente + Event

  Alt 24. Jul 2009, 16:23
Ich habe gerade eine seltsame Erfahrung mit einem Frame als Komponente machen müssen.

Zur Vorgeschichte:
ich habe mehrere Programme, die fast die gleiche Oberfläche besitzen. Unter andere wird ein VirtualStringTree genutzt.
Also dachte ich mir: erstell dir einen Frame und füge in allen Programmen den Frame über die Komponentenpalette --> Frames hinzu.
Funktioniert wunderbar. Auch die Events OnGetText und OnCompareNodes des Trees kann ich setzen und diese werden auch während der Laufzeit des Programms durchlaufen.

Nun sind nicht alle Programme gleich. Bei einigen Programmen habe ich mal ein oder zwei Labels mehr.
Also dachte ich mir: kann man nicht Ableitungen von diesem Frame erstellen und den Frame als Template wie eine Komponente handhaben?
Also habe ich aus dem Frame eine Komponente erstellt - funktioniert wunderbar.

Nun erstelle ich ein neues Projekt, packe die Frame-Komponente darauf und weise das OnGetText und OnCompareNodes Event zu. Das funktioniert soweit auch, wenn man über das Strukturfenster den VirtualStringTree auswählt und dort die Events setzt. Diese beiden Events werden nur nicht zur Laufzeit des Programms durchlaufen.

Muss ich diese Events als published properties des Frames public machen?

Kann mich da jemand aufklären?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Frame als Komponente + Event

  Alt 25. Jul 2009, 11:55
Komponenten sind wie Legobausteine - Sie müssen einfach und universell einsetzbar sein,
sonst landen sie in der Ecke.
http://www.ozhobbies.eu/images/pirat...-lego-6192.jpg
Schau dir mal die Schatzkiste an; niedlich, genau so wie dein Frame in der Komponente
aber letztlich zu nix zu gebrauchen.

Ich habe natürlich schon den gleichen Fehler gemacht, und irgendwelche speziellen Sachen
in eine Komponente gepackt.
Viel Aufwand - wenig Nutzen.
fork me on Github
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Frame als Komponente + Event

  Alt 25. Jul 2009, 12:42
Was heißt hier Fehler?
Ich denke nicht, dass dies ein Fehler ist, wozu gibt es denn diese Funktionalität?

Hat jemand einen konstruktiveren Beitrag für mich?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.024 Beiträge
 
Delphi 12 Athens
 
#4

Re: Frame als Komponente + Event

  Alt 25. Jul 2009, 13:08
Es ist mir auch schon mal passiert, daß Event-Properties in Frames zur Laufzeit plötzlich nicht mehr da sind. Die Ursachen dafür konnte ich auch nicht immer ergründen (hängt auch stark von der Delphi-Version ab), aber ich habe mir angewöhnt, die Events zur Laufzeit im FormCreate oder an anderer geeigneter Stelle im Programm-Code zu setzen.

Ob es nun weise ist, den Frame als Komponente zu erstellen, mag ich hier nicht beurteilen. Als Nachteil sehe ich da den notwendigen Umweg über ein Design-Time-Package, der eine dedizierte Version der Komponente (zumindest zur Laufzeit) erzwingt, was bei der Arbeit mir mehreren Projekten in unterschiedlichen Versionen (Stichwort: Bugfixing) zu unerwünschten Nebeneffekten führt. Ich versuche eigentlich immer das gesamte Projekt versions-konsistent in einer Verzeichnisstruktur zu halten. Das Problem mit den Deisgn-Time-Packages wartet dabei allerdings noch auf seine Lösung.
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Frame als Komponente + Event

  Alt 25. Jul 2009, 23:03
Zitat:
ich habe mir angewöhnt, die Events zur Laufzeit im FormCreate oder an anderer geeigneter Stelle im Programm-Code zu setzen
Genau das will ich ja eigentlich vermeiden.
Es soll so wenig Code wie möglich wiederholt werden müssen.
  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 20:39 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