AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Create zur Laufzeit - benötigte Units manuell einbinden-wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Create zur Laufzeit - benötigte Units manuell einbinden-wie?

Ein Thema von s-off · begonnen am 20. Sep 2007 · letzter Beitrag vom 20. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
s-off
(Gast)

n/a Beiträge
 
#1

Create zur Laufzeit - benötigte Units manuell einbinden-wie?

  Alt 20. Sep 2007, 07:25
Hallo zusammen.

Ausgangssituation:
Wir haben in der Firma sämtliche genutzten Bibliotheken an einem zentralen Ort abgelegt und in die Suchpfade der entsprechenden Projekte eingetragen. In die IDE wurden keinerlei Packages integriert; sämtliche Komponenten werden zur Laufzeit erzeugt.

Es sind nun neue Komponenten hinzugekommen, welche ich in einem neuen Projekt nutzen möchte.
Jede Komponente benötigt mehrere Units.

Zu Hause, wo ich die Komponenten in die IDE integriert habe, würde ich mir die entsprechende Komponente auf die Form ziehen, das Projekt speichern, so dass die benötigten Units automatisch hinzugefügt werden, die visuelle Komponente wieder löschen und meinen Code zur Erzeugung zur Laufzeit schreiben.
Ohne installierte Packages ist das so natürlich nicht möglich.

Meine Frage:
Wie geht Ihr in solchen Fällen vor? Woher wisst Ihr, welche Units für eine Komponente eingebunden werden müssen?
Es kann doch nicht der richtige Weg sein, solange Units einzeln hinzuzufügen bis der Compiler nicht mehr meckert, oder?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Create zur Laufzeit - benötigte Units manuell einbinden-

  Alt 20. Sep 2007, 07:38
um eine Komponente zu instanzieren benötigt man nur eine unit. Durch ordentliche Benennung der Units weiß ich sofort in welcher Unit die Komponente ist. Heißt die Komponente Beispielsweise TIrgendwas befindet sich diese bei mir in der unit uIrgendwas.pas
Hat die Komponente irgendwelche Parameter mit Typen die unbekannt sind gehe ich genau so vor. Sind es Typen die nur mit dieser Klasse verwendet werden sind sie bereits durch einbinden der entsprechenden unit vorhanden. Sind es Klassen etc. wird wieder die entsprechende Unit eingebunden welche dem Namen des Types entspricht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#3

Re: Create zur Laufzeit - benötigte Units manuell einbinden-

  Alt 20. Sep 2007, 07:56
Vielleicht hätte ich dazu sagen sollen, dass es sich ausschliesslich um Drittkomponenten handelt, ich also keinen Einfluss auf die Struktur habe (wenn ich nicht nach jedem Update wieder alles zurechtfriemeln will).

Nehmen wir bspw. das TAdvStringGrid aus der Komponentensammlung von TMS.
Dieses benötigt drei Units, nämlich 'Grids', 'BaseGrid' und 'AdvGrid'. Woher weiss die IDE, dass sie genau diese drei Units einbinden muss, sobald ich das Grid auf meine Form gezogen und das Projekt gespeichert habe?

Die Unit 'AdvGrid' ist klar, da sich dort die Klasse befindet; aber was ist mit den anderen beiden Units?
  Mit Zitat antworten Zitat
Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#4

Re: Create zur Laufzeit - benötigte Units manuell einbinden-

  Alt 20. Sep 2007, 07:58
Gibts denn keine Dokumentation, wo drinsteht, welche Komponenten welche Unit benötigen? Ist immer noch besser als Auszuprobieren!
Richard Mahr
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Create zur Laufzeit - benötigte Units manuell einbinden-

  Alt 20. Sep 2007, 08:06
für den schlimmsten fall könntest du dir ein include bauen wo einfach alle units eingebunden werden. Bei solchen Komponentensammlungen ist es oftmals so das sehr viel abhängigkeiten vorhanden sind und indirekt sowieso fast alles eingebunden wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#6

Re: Create zur Laufzeit - benötigte Units manuell einbinden-

  Alt 20. Sep 2007, 08:08
Zitat von Tormentor32:
Gibts denn keine Dokumentation, wo drinsteht, welche Komponenten welche Unit benötigen? Ist immer noch besser als Auszuprobieren!
Kann ich Dir in diesem speziellen Fall nicht sagen, ist aber auch unerheblich, da man nicht davon ausgehen kann, dass mit jeder Komponente(nsammlung) eine ausführliche Dokumentation mitgeliefert wird.

Gibt es denn keine generelle Lösung für diese Problemstellung?

Zitat von SirThornberry:
für den schlimmsten fall könntest du dir ein include bauen wo einfach alle units eingebunden werden. Bei solchen Komponentensammlungen ist es oftmals so das sehr viel abhängigkeiten vorhanden sind und indirekt sowieso fast alles eingebunden wird.
Ja, das wäre auch mein Ansatz gewesen. Allerdings ist das gerade bei der Sammlung von TMS, welche doch etwas umfangreicher ist, nicht gerade sehr - hmm - performant ist der falsche Ausdruck, aber Ihr wisst sicherlich, was ich meine.

Naja, vielleicht gibt es ja noch ein paar innovative Ansätze - ansonsten wirds wohl beim Include bleiben.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Create zur Laufzeit - benötigte Units manuell einbinden-

  Alt 20. Sep 2007, 08:11
naja, refactoring könnte da helfen. Da kann man auch nach den units suchen lassen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#8

Re: Create zur Laufzeit - benötigte Units manuell einbinden-

  Alt 20. Sep 2007, 08:14
Zitat von SirThornberry:
naja, refactoring könnte da helfen. Da kann man auch nach den units suchen lassen.
Da wird dann aber auch wieder nur die Unit gefunden, in welcher sich die klasse befindet, hier 'AdvGrid', aber nicht sämtliche Abhängigkeiten
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Create zur Laufzeit - benötigte Units manuell einbinden-

  Alt 20. Sep 2007, 08:20
wofür müssen denn die anderen units überhaupt eingebunden werden wenn dinge daraus nicht benutzt werden? Sorry wegen der Frage aber ich hatte noch nie den Fall das ich mehrere Units einbinden musste ohne das etwas daraus in der aktuellen unit benötigt wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#10

Re: Create zur Laufzeit - benötigte Units manuell einbinden-

  Alt 20. Sep 2007, 08:32
Frag mich nicht

Hmm, wenn ich ein AdvStringGrid zur Laufzeit erzeugen möchte, und nur die Unit eingebunden habe, in der sich die Klasse befindet, dann funktioniert das merkwürdigerweise.

Aber warum bindet denn die IDE noch zwei weitere Units ein
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:21 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