AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Fehlerfreie Installation und Nutzung von Komponenten
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlerfreie Installation und Nutzung von Komponenten

Ein Thema von matmok · begonnen am 7. Mai 2008 · letzter Beitrag vom 8. Mai 2008
Antwort Antwort
matmok

Registriert seit: 9. Feb 2006
Ort: Köln
22 Beiträge
 
Delphi 2007 Enterprise
 
#1

Fehlerfreie Installation und Nutzung von Komponenten

  Alt 7. Mai 2008, 12:03
Die Möglichkeit Komponenten im CBuilder zu nutzen ermöglicht einfaches und schnelles Erstellen von Applikationen, also RAD. - Aber nur wenn alles fehlerfrei funktioniert. Und da sind wir schon beim Thema: Es sollte theoretisch so einfach sein: Komponente installieren, nutzen, fertig.
Doch in der Praxis tauchen Fragen und Probleme auf. Ich habe den Eindruck, dass es oft zu Zugriffsverletzungen in "rtl100.bpl" o.ä. kommt, wenn das aktuelle Projekt (falsch installierte) Komponenten enthält und wenn man diese Anwendung speichert oder kompiliert. Die Häufigkeit der Zugriffsverletzungen in "rtl100.bpl" steigt drastisch wenn eine Projektgruppe mehrere Komponenten enthält. Die IDE muß ja schon zur Design-Zeit eine Instanz einer visuellen Komponente erzeugen und die dabei enstehenden Fehlermeldungen sind nicht aussagekräftig und man kann nicht auf die fehlerhaft installierte Komponente schließen. Es könnte sein dass durch falsche Suchpfade bpl und lib nicht zusammen passen oder sogar von unterschiedlichen Versionen sind. Die Fehlerwahrscheinlichkeit nimmt zu je mehr Drittanbieterkomponenten man hat. Komponenten mit eigener Installationsroutine hinterlassen auch nach der Deinstallation Eintrage im Registry-key von BDS, z.B. Jedi. Außerdem lassen sie einem oft keine Wahl wohin die Dateien kopiert werden, $BDSPROJECTSDIR, System32, oder {Komponentenname}\Lib\C6 o.ä.. Es ensteht also ein uneinheitliches Durcheinander.

Meine Fragen sind deshalb:
- Welche Bedingungen müssen erfüllt sein damit eine Komponente fehlerfrei funktioniert?
- Welche Dateien müssen Wo abgelegt sein (bpl, bpi, lib, h, hpp, res, dcu, ...)?
- Welche Registry Einträge müssen gesetzt sein (z.B. um in der Komponentenliste sichtbar zu sein)?
- Welche Pfade müssen eingestellt sein (in der IDE, der Registry, dem Default Projekt und der Anwendung die die Komponenten nutzt)?
- Was macht die IDE beim installieren von Komponenten automatisch und um was muss ich mich kümmern?
- Auf was muss ich achten wenn ich Komponenten gleichzeitug im CB6 und im RAD Studio2007 nutzen möchte?
- Unterschiedliche Handhabung von visuellen und nichtvisuellen Komponenten?
- Was fehlt wenn die Komponente funktioniert, aber nicht in der Komponentenleiste sichtbar ist?
- Wie bzw. was von der Komponente nutzt die IDE während der Designtime und was wird letztendlich zur fertigen exe gelinkt?
- Wie deinstalliere ich eine Komponente so dass KEINE Rückstände in Registry, CBuilder und Dateien vorhanden sind?
- Welche Projektoptionen müssen Delphikomponenten haben wenn man sie für den CBuilder nutzt?
- Ist es eine gute Idee alle Komponenten auf einem Netzwerk zu installieren wenn mehrere Entwickler sie nutzen?

- Gibt es eine art "Checkliste" oder ein Standard Prozedere für eine sorglose Komponentennutzung?

Wenn man zu diesem Thema im Internet sucht bekommt man den Eindruck, dass viele Entwickler mit dieser Thematik Probleme haben und sich einen anderen mechanismus wünschen. Ich glaube nicht dasss der Mechanismus schlecht ist, in meinem Fall liegt es eher am nichtwissen wie der Mechanismus arbeitet. Vielleicht kann mir jemand helfen das besser zu verstehen.

Vielen Dank,
Tobi

(Ich verwende u.a. TMS, LMD, SDL, DevEx unter CB6 und steige momentan auf RAD Studio 2007 um. Alle Anwendungen werden statisch gelinkt. Alles auf WinXP.)
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

Re: Fehlerfreie Installation und Nutzung von Komponenten

  Alt 8. Mai 2008, 14:12
Hab ein wenig Geduld, ich werde alle Deine Fragen in ein paar Tagen ausführlich beantworten...

Ein paar schnelle Antworten geb ich Dir schon jetzt:

Zitat von matmok:
- Welche Bedingungen müssen erfüllt sein damit eine Komponente fehlerfrei funktioniert?
Die Komponente muß fehlerfrei in ein Package kompiliert sein.
Das Package muß in Belphi eingebunden sein und
alle benötigten Dateien müssen vorhanden sein (*.bpl, *.dcp, *.dcu, optional wenn benötigt *.dfm, *.res, *.dcr, ...)

Zitat von matmok:
- Welche Dateien müssen Wo abgelegt sein (bpl, bpi, lib, h, hpp, res, dcu, ...)?
*.dcp, *.dcu, *.dfm, *.res, *.obj, ... müssen im Bobliothekssuchpfad sein. (Delphi Menü -> Tools -> Optionen)
*.bpl muß im Systempfas stehen (Umgebungsveriable PATH z.B. in Eingabeaufforderung/Dos-Box zu sehen)

Zitat von matmok:
- Welche Registry Einträge müssen gesetzt sein (z.B. um in der Komponentenliste sichtbar zu sein)?
Alle Änderungen sind in HKCU\Software\Borland\Delphi\Version bzw. HKCU\Software\Borland\BDS\Version

Am Beispiel Delphi 2007:
  • HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Known Packages -> hier sind die zu ladenden Packages angegeben
  • HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Disable d Packages -> Diese Package werden nicht geladen auch wenn sie oben eingetragen sind
  • HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Library -> Suchpfade
    • Search Path -> hier Pfad zu den *.dcu, *.dcp, *.dfm , ... Dateien
    • Package Search Path -> hier Pfad zu den *.bpl Dateien
    • Browsing Path -> hier Pfad zu den Quelltextdateien (*.pas)
    • Debug DCU Path -> optional Pfad zu den *.dcu Dateien mit Debug Informationen (Mit ProjektOptionen -> Compiler -> Debug dcu verwenden wird zwischen "Debug DCU Path" und "Search Path" umgeschaltet.
  • HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Experts -> hier können Experten (Wizzards) eingebunden werden (Manche werden auch als normales Package in known Packages eingebunden)

Zitat von matmok:
- Welche Pfade müssen eingestellt sein (in der IDE, der Registry, dem Default Projekt und der Anwendung die die Komponenten nutzt)?
s.o.
zusätzlich sollte der Systempfad (PATH-Umgebungsvariable) auf alle Verzeichnisse zeigen, die benötigte *.bpl Dateien beinhalten (wichtig bei abhänigen Packages)

Zitat von matmok:
- Was macht die IDE beim installieren von Komponenten automatisch und um was muss ich mich kümmern?
Bei Delphi 2007: Wenn HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Globals \ForceEnvOptionsUpdate=1 ist, wird beim IDE Start die Datei %APPDATA%\Borland\BDS\5.0\EnvOptions.proj automatisch neu angelegt. Alternativ kannst du bei jeder Pfadänderung in der Registry in Tools -> Optionen -> Bibliothekspfade gehen und [OK] drücken. Dann wird die Datei auch neu erstellt.
Dies eDatei wird ab D2007 von msbuild.exe zum compilieren benötigt.

Zitat von matmok:
- Auf was muss ich achten wenn ich Komponenten gleichzeitug im CB6 und im RAD Studio2007 nutzen möchte?
keine Ahnung, ich verwende kein CB6, aber bei Delphi ist es so:
Quelltext kann von verschiedenen Delphi Versionen kompiliert werden.
die Kompilate (*.dcu, ...) Dateien liegen in eigenen Verzeichnissen z.B. ...\D7\...\lib\*.dcu und ...\D2007\...\lib\*.dcu
In das jeweilige Delphi sollten nur die Verzeichnisse mit den entsprechenden Dateien im Suchpfad stehen.

Zitat von matmok:
- Unterschiedliche Handhabung von visuellen und nichtvisuellen Komponenten?
nein

Zitat von matmok:
- Was fehlt wenn die Komponente funktioniert, aber nicht in der Komponentenleiste sichtbar ist?
Eintrag ist in Pfaden vorhanden, aber eintrag in known packages fehlt

Zitat von matmok:
- Wie bzw. was von der Komponente nutzt die IDE während der Designtime und was wird letztendlich zur fertigen exe gelinkt?
oft gibt es mehrere Packages pro Komponentensammlung. Einige sind DesigntimePackages einige RuntimePackages oder gemischte Packages, die beides können. Es gibt diverse Funktionen (Units) die nicht in eine Anwendung gelinkt werden können. (Komponenten Editoren, Property Editoren, Experten, ... - also Dinge die eine Änderung des Standardverhaltens der IDE hervorrufen)

Zitat von matmok:
- Wie deinstalliere ich eine Komponente so dass KEINE Rückstände in Registry, CBuilder und Dateien vorhanden sind?
Entsprechende Einträge in der Registry löschen (s.o.) und Dateien löschen

Zitat von matmok:
- Welche Projektoptionen müssen Delphikomponenten haben wenn man sie für den CBuilder nutzt?
keine Ahnung, wie gesagt ich arbeite nur mit Delphi

Zitat von matmok:
- Ist es eine gute Idee alle Komponenten auf einem Netzwerk zu installieren wenn mehrere Entwickler sie nutzen?
Jein - Wir haben alle Komponenten in der Versionsverwaltung auf die wir quasi wie ein Netzlaufwerk zufreifen.
Wobei jeder Entwickler eine eigene Sicht auf die Dateien hat. Er kann also niemanden blockieren, weil Windows die Datei öffnet.
Aber: Der Zugriff ist natürlich viel langsamer als lokal.
Mit [dp]DelphiSpeedUp[dp] wirds aber erträglich

Zitat von matmok:
- Gibt es eine art "Checkliste" oder ein Standard Prozedere für eine sorglose Komponentennutzung?
nein, aber obige Angaben sollten Dir schon mal helfen.

Ausführliches gibt es später (in ein paar Tagen)

Ich hoffe das hilft dir.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
matmok

Registriert seit: 9. Feb 2006
Ort: Köln
22 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Fehlerfreie Installation und Nutzung von Komponenten

  Alt 8. Mai 2008, 15:12
Vielen Dank für die schnelle und (jetzt schon) ausführliche Antwort! Kann den Rest kaum abwarten. So brauche ich mich in Zukunft nicht mehr auf mein gefährliches Halbwissen verlassen, sondern weiss Bescheid. Dann kann ich mich endlich wieder mehr auf die 'eigentlichen' Probleme, also auf das Programmieren selbst konzentrieren, statt mit der IDE zu kämpfen.

mfg,
Matmok
  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 14:15 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