AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi eigene VCL-Komponente. soll Datenstruktur mit liefern ??
Thema durchsuchen
Ansicht
Themen-Optionen

eigene VCL-Komponente. soll Datenstruktur mit liefern ??

Ein Thema von EccoBravo · begonnen am 30. Jan 2009 · letzter Beitrag vom 30. Jan 2009
Antwort Antwort
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#1

eigene VCL-Komponente. soll Datenstruktur mit liefern ??

  Alt 30. Jan 2009, 14:31
Hallo,

dieses ist eine etwas verworrene Frage, aber ich weiss hier nicht weiter:

Stellt Euch vor,
ein Hauptformular-Unit wird durch eine andere Unit bedient.

Nebenbei habe ich mir eine VCL-Komponente geschrieben, die mir gleichzeitig die Datenstruktur (Typen Classes, Objects) für mein Programm (für Hauptformular-Unit und bedienendes Unit gleichfalls) zur Verfügung stellt.

Ganz prima, ich kann aus der bedienenden Unit die Datenstruktur der VCL-Komponente über deren Properties mitbenutzen und sozusagen diese Komponente mit Dateninhalten versorgen.

Das Verlockende war, daß meine Datenstruktur (Typen Classes, Objects) der VCL-Komoponente mit der im Programm nötigen Datenstruktur übereinstimmen, und ich somit die nochmaligen Deklarationen spare.

Nun aber das Problem
wenn ich diese VCL-Komponente aus der Toolpatelle in mein Hauptformular-Unit ziehe.
Dort wird von der VCL-Komponente und all seinen gekapselten Daten eine eigene Instanz verwendet (nicht die Instanz, die von der Hilfsunit genutzt wird), und nichts ist von meinen Daten mehr vorhanden.

Das verlockende und schöne, was ich eigentlich nutzen wollte, ist die Funktionsweise der gekapselten Methoden, in denen ziemlich viel im Hintergrund laufen kann.
So brauche ich mit meiner VCL-Komponente nur einmal ein Bild zeichnen, und dieses wird jedesmal bei Änderung einer Variablen aktualisiert.
Wenn ich Datenstruktur und VCL-Komponenten strikt trennen würde, müsste ich sonst jedesmal nach Variableninhaltänderung die Aktualisierung der Zeichnung im Code anschubsen.

Ich hoffe dass Ihr meine Problembeschreibung einigermassen verstehen könnt.

Vielleicht hat da jemand eine geniale Idee, mit der ich in obiger Problematik leicht pflegbaren Code machen kann.

Danke und Grüße

EB
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: eigene VCL-Komponente. soll Datenstruktur mit liefern ??

  Alt 30. Jan 2009, 15:04
Was macht die VCL Komponente genau?
Viele Programmierer (mich eingeschlossen) mach(t)en den Fehler eine Komponente zu entwickeln,
obwohl diese Komponente so speziell ist, dass sie nur in einer einzigen Anwendung funktionieren kann.

Ein Komponente macht nur dann Sinn, wenn sie im Prinzip in jeder Anwendung ihren Dienst verrichten könnte.
Ansonsten sollte man die Komponente als ganz normale Klasse in einer eigenen Unit anlegen. (und nicht von TComponent ableiten).

Wenn dann ein Objekt diese Klasse von zwei (oder mehr) Formularen angesprochen werden soll, dann gibt es zwei Lösungsmöglichkeiten:
1.) man implementiert die Klasse als Singleton
2.) das Hauptformular erzeugt eine Instanz der Klasse und gibt einen Objektzeiger an jedes andere Formular, das auch Zugriff braucht, weiter.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#3

Re: eigene VCL-Komponente. soll Datenstruktur mit liefern ??

  Alt 30. Jan 2009, 15:11
Danke,

über den 2. Vorschlag werde ich mal nachdenken.


Danke und ein schönes WE

EB
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  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 11:43 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