AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Tutorials Delphi Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.dcu

Lösung: Das leidige Problem mit der DsgnIntf bzw. Proxy.dcu

Ein Tutorial von MaBuSE · begonnen am 9. Nov 2004 · letzter Beitrag vom 27. Mär 2007
Antwort Antwort
Seite 3 von 5     123 45   
Benutzerbild von MaBuSE
MaBuSE
Registriert seit: 23. Sep 2002
Das leidige Problem mit der DsgnIntf bzw. Proxy.dcu

In Delphi 5 Komponenten wird oft die Unit DsgnIntf verwendet.

Damit ist es möglich "Component-" und "Propertyeditoren" zu programmieren, die dann in der IDE ausgeführt werden. Diese Design-Editoren sind ausschließlich für die IDE lizenziert und dürfen nicht in die eigenen Programme, welche außerhalb der IDE laufen eingebunden werden. Da es einige Verstöße (meistens wohl aus Unwissenheit) gab, wurden die Units getrennt und durch "Compiler-Magic" können die Editoren jetzt nicht mehr in Programme außerhalb der IDE eingebunden werden.

Wenn keine Laufzeit-BPLs erstellt werden müssen, ist die Lösung relativ einfach:
Aus dem Eintrag DsgnIntf in der Uses Anweisung wird einfach DesignIntf, DesignEditors.

In das Package wird dann automatisch die teilweise benötigte designide.dcp eingefügt. Und alles läuft wieder.

Falls es dennoch zu der Fehlermeldung "DesignIntf.dcu konnte nicht gefunden werden" (oder "DesignEditors.dcu konnte nicht gefunden werden") auftritt, ist der Pfad (C:\Programme\Borland\Delphi7\Source\ToolsAPI)zu den Dateien nicht im Suchpfad.

Falls die Meldung "Proxy.dcu konnte nicht gefunden werden" auftritt, muss die designide.dcp dem Package hinzugefügt werden. (requires designide im dpk)

Damit sollten sich die Komponenten kompilieren lassen.

Abschließend ein Link zum BDN - wo etwas tiefer in die Materie eingegangen wird. (englisch)
http://community.borland.com/article...,27717,00.html


Quellcode für D5 und D7 erstellen
Mit einer einfachen $IFDEF kann man Quelltext erstellen, der unter Delphi 5 und Delphi 7 kompiliert.
Delphi-Quellcode:
{$ifdef ver150}
  DesignIntf, DesignEditors,
{$else}
  DsgnIntf,
{$endif}
Dieses einfache Verfahren hat aber den Nachteil, dass es nur zwischen Delphi 7 und dem Rest unterscheidet.

Besser ist folgendes Verfahren:

Bei der JCL bzw. JVCL gibt es eine JEDI.inc Datei die einfach eingebunden werden kann.
Hier werden Symbole definiert. (z.B. DELPHI6_UP bedeutet Delphi 6 oder neuer)

Delphi-Quellcode:
uses unit1;

{$I JEDI.inc}

interface

uses
  Unit1, {$IFDEF DELPHI6_UP}DesignIntf, DesignEditors{$ELSE} DsgnIntf{$ENDIF}, Unit3, Unit4;
...
Die JEDI.INC Datei kann hier bezogen werden:
http://cvs.sourceforge.net/viewcvs.p...1.19&view=auto
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
 
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#21
  Alt 26. Jun 2005, 15:44
Hi!

Zitat von MaBuSE:
Zitat von MaBuSE:
Zitat von MaBuSE:
Bitte mit Delphi 6 / 7 Personal ausprobieren und Feedback hier ins Forum.
Ich werde dann das Tutorial anpassen.
Kann das mal bitte jemand Testen.
Danke.
Ich finde es schade, dass man sich die Mühe macht die Probleme (von z.B. Qnkel und HavoC) zu lösen,
und dann kein Feedback bekommt, ob es geklappt hat
Ich werd´s mal testen, den genau das Problem hab ich mit meiner neuen TDataList-Komponente und Delphi 7 Personel. Bei meinem Delphi 3.0 Pro klappt alles ohne jedes Problem. Echt ärgerlich das 7.0 da solche Probleme macht. ToolsApi hab ich leider auch nit...

Ich hoffe Du beobachtest Deinen Thread noch...

Grüße von TOC!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Nils_13
 
#22
  Alt 26. Jun 2005, 16:32
Zitat von TOC:
Hi!

Zitat von MaBuSE:
Zitat von MaBuSE:
Zitat von MaBuSE:
Bitte mit Delphi 6 / 7 Personal ausprobieren und Feedback hier ins Forum.
Ich werde dann das Tutorial anpassen.
Kann das mal bitte jemand Testen.
Danke.
Ich finde es schade, dass man sich die Mühe macht die Probleme (von z.B. Qnkel und HavoC) zu lösen,
und dann kein Feedback bekommt, ob es geklappt hat
Ich werd´s mal testen, den genau das Problem hab ich mit meiner neuen TDataList-Komponente und Delphi 7 Personel. Bei meinem Delphi 3.0 Pro klappt alles ohne jedes Problem. Echt ärgerlich das 7.0 da solche Probleme macht. ToolsApi hab ich leider auch nit...

Ich hoffe Du beobachtest Deinen Thread noch...

Grüße von TOC!
Sieht nicht so aus.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#23
  Alt 27. Jun 2005, 07:45
Zitat von Nils_13:
Zitat von TOC:
Echt ärgerlich das 7.0 da solche Probleme macht. ToolsApi hab ich leider auch nit...

Ich hoffe Du beobachtest Deinen Thread noch...

Grüße von TOC!
Sieht nicht so aus.
@Nils_13: Was sieht nicht so aus?

@TOC: D7 macht nicht solche Probleme !!! Nur die Personal Edition ist abgespeckt, weil kostenlos. Klappts?
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#24
  Alt 27. Jun 2005, 15:07
Hi!

Zitat von MaBuSE:
@TOC: D7 macht nicht solche Probleme !!! Nur die Personal Edition ist abgespeckt, weil kostenlos. Klappts?
@Mabuse :

Hab aus versehen die Diskette mit Deiner Label-Komponente gelöscht und konnte es nit Testen ! Hab´s mir aber grad noch mal runtergeladen.

Vielen Dank für Deinen Thread, Du hast mir echt weitergeholfen. Nämlich mit dem Link auf Borlands Erklärung zu dem Thema. Ich hab mir das aufmerksam durchgelesen und nur eine Stunde (!) gebraucht um meine TDataList-Komponente unter D7 zum laufen zu bringen. Aber wer kein English kann hat geloost !

Demnächst gibts in OpenSource ´nen neuen Thread mit all meinen Komponenten im Packet für Delphi 3.0 oder 7.0 !

Danke nochmal !

Grüße von TOC
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#25
  Alt 27. Jun 2005, 15:18
Zitat von TOC:
Hab aus versehen die Diskette mit Deiner Label-Komponente gelöscht und konnte es nit Testen ! Hab´s mir aber grad noch mal runtergeladen.
Disketten Du meinst diese schwarzen Plastik Dinger mit der Magnetscheibe drinn?
Ich habe gar kein Diskettenlaufwerk mehr im Rechner

Zitat von TOC:
Vielen Dank für Deinen Thread, Du hast mir echt weitergeholfen. Nämlich mit dem Link auf Borlands Erklärung zu dem Thema. Ich hab mir das aufmerksam durchgelesen und nur eine Stunde (!) gebraucht um meine TDataList-Komponente unter D7 zum laufen zu bringen. Aber wer kein English kann hat geloost !
Nichts zu Danken, gern geschehen. Wissen ist zum Weitergeben da. Ich profitiere ja genauso von den Antworten der Anderen.

Zitat von TOC:
Demnächst gibts in OpenSource ´nen neuen Thread mit all meinen Komponenten im Packet für Delphi 3.0 oder 7.0 !
Schreibst Du dann bitte noch, ob das mit dem Einbinden der designide.dcp funktioniert?
Dann kann ich dieses Tutorial noch mal in einen Text zusammenfassen.

Danke
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#26
  Alt 28. Jun 2005, 15:44
Hi Mabuse!

Zitat von MaBuSE:
Disketten Du meinst diese schwarzen Plastik Dinger mit der Magnetscheibe drinn?
Ich habe gar kein Diskettenlaufwerk mehr im Rechner
Kicher! Nit alle Menschen sind Millionäre! Kann mir zur Zeit keinen USB-Stick leisten und auch keine Memory-Card! Ich bin völlig pleite ! Und hier im NetCafe kostet das brennen auf ´ne CD immerhin 1.50 Euro! Da is ne Diskette ´ne billige alternatieve (für ganz ganz ganz kleine Datenmengen )!

Zitat von MaBuSE:
Nichts zu Danken, gern geschehen. Wissen ist zum Weitergeben da. Ich profitiere ja genauso von den Antworten der Anderen.
Das seh ich auch so, da sind wir uns einig. Deshalb sind auch ALLE meine Programme OpenSource!

Zitat von MaBuSE:
Schreibst Du dann bitte noch, ob das mit dem Einbinden der designide.dcp funktioniert?
Dann kann ich dieses Tutorial noch mal in einen Text zusammenfassen.
Ja, ich hab´s getestet. Ich konnte Deine Label-Komponente problemlos instalieren und verwenden, auch kompilieren kein Problem. Delphi fügt die Designide.dcp tatsächlich automatisch hinzu (teilweise).
Allerdings mußte ich die Komponente mit 'Komponente/Komponente installieren' einbinden, weil das mit Deinem Package1.dpk nit klappt.

Folgendes steht in Deinem Package :

Delphi-Quellcode:
package Package1;

{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$IMPLICITBUILD OFF}

requires
  rtl;

contains
  Unit1 in 'Unit1.pas',
  Unit2 in 'Unit2.pas';

end.
Und das versteh ich nit! Diese Units 1 und 2 fehlen aber. Im Packet sollte aber folgendes stehen:

Delphi-Quellcode:
requires
  rtl,
  designide;

contains
  myLabel_dsgn in 'myLabel_dsgn.pas',
  myLabel in 'myLabel.pas';

end.
So stehts ja auch in Deinem Beispiel. Das sollte funktionieren wenn man einfach doppelt aufs Packet klickt!
Hast Du vielleicht aus versehen einen Fehler beim UpLoad gemacht? Oder hab ich was falsch verstanden?

Grüße von TOC!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#27
  Alt 28. Jun 2005, 15:53
Zitat von TOC:
Ja, ich hab´s getestet. Ich konnte Deine Label-Komponente problemlos instalieren und verwenden, auch kompilieren kein Problem. Delphi fügt die Designide.dcp tatsächlich automatisch hinzu (teilweise).
Dann ist es möglich alle Komponenten die bisher an der fehlenden ToolsAPI in der PE Version gescheitert sind zu kompilieren und zu benutzen.

Ich werde das Tutorial bei Gelegenheit überarbeiten und hier posten.

Danke für die Info.
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#28
  Alt 28. Jun 2005, 16:03
Hi!

Zitat von MaBuSE:
Zitat von TOC:
Ja, ich hab´s getestet. Ich konnte Deine Label-Komponente problemlos instalieren und verwenden, auch kompilieren kein Problem. Delphi fügt die Designide.dcp tatsächlich automatisch hinzu (teilweise).
Dann ist es möglich alle Komponenten die bisher an der fehlenden ToolsAPI in der PE Version gescheitert sind zu kompilieren und zu benutzen.

Ich werde das Tutorial bei Gelegenheit überarbeiten und hier posten.

Danke für die Info.
Jaa! Es klappt OHNE ToolsApi! Es ist tatsächlich sehr einfach: Man muß nur darauf achten das die Editoren in einer extra datei sind (und dort registriert werden ) und die eigentlich Komponente in einer anderen Datei. Ich glaube das ist der ganze Trick !

Noch mal Danke für Deine Thread !

Grüße von TOC!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
King555
 
#29
  Alt 3. Feb 2006, 17:54
Ich habe alle Tipps in diesem Thread verfolgt, bekomme aber ein Designtime Package (AsyncPro) nicht unter Delphi 2005 Personal zum Laufen. Hat jemand eine Idee, was der Grund sein kann?

DesignIntf, DesignEditors und DsgnIntf gibt's nicht, designide.dcp ist als required eingebunden.

Nachdem ich alle Designsachen (außer aus dem required) rausgenommen habe, ist der Compiler bis zu folgender Zeile vorgestoßen:

TApdPacketStringProperty = class(TStringProperty)

Er findet nun "TStringProperty" nicht.

Ideen?
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

 
Delphi 10 Seattle Enterprise
 
#30
  Alt 6. Feb 2006, 11:17
Zitat von King555:
Ich habe alle Tipps in diesem Thread verfolgt, bekomme aber ein Designtime Package (AsyncPro) nicht unter Delphi 2005 Personal zum Laufen. Hat jemand eine Idee, was der Grund sein kann?

DesignIntf, DesignEditors und DsgnIntf gibt's nicht, designide.dcp ist als required eingebunden.
Ich kann nur sagen, dass in der designide.dcp die *.dcu Dateien aus dem ToolsApi Verz. "eingebunden" sind und Designpackages sich damit bauen lassen.
Designpackages werden nur von der IDE verwendet. In Designpackages sind z.B. Komponenteneditoren, Eigenschaftseditoren, ... definiert.
Designpackages dürfen nicht in Laufzeitprojekte eingebunden sein.
Dann lassen sich die Laufzeitprojekte nicht mehr kompilieren.

Tip: Schau mal nach, ob Das Package wirklich nur als Designtimepackage definiert ist,
oder evtl. als Runtimpackage oder Run- und Desgintimepackage.
  Mit Zitat antworten Zitat
Themen-Optionen Tutorial durchsuchen
Tutorial durchsuchen:

Erweiterte Suche
Ansicht

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:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf