| Autor |
Beitrag |
PeterVercruysse
Hält's aus hier
Beiträge: 8
|
Verfasst: Sa 17.03.07 23:41
Guten Abend Damen und Herren,
Nach lange suchen, habe ich entschieden mein Problem mit Ihnen zu teilen. Möglicherweise können Sie helfen mit einer Lösung oder zusätzliche Informationen haben. Ich fange an mit einer kurzen Erklärung des Problems und dann spezifiziere ich weiter.
Kurze Erklärung.
Wer kann mir sagen wie es möglich ist, mein eigenes Komponent in meinem eigenen Paket im IDE zu installieren um ganz genau dasselbe zu bekommen wie ein gebürtiges VCL-Komponent?
Ausführliche Beschreibung
Als Beispiel habe ich mein eigenes Komponent gemacht, und habe dafür TCustomLabel abgeleitet.
Das Komponent hat ein Published Property Version mit nur einem Getter. Es gibt auch ein Published Method MakeSound (die Implementierung dieser Methode ist... Beep)
Es gibt auch ein Register Method, damit wird mein Komponent richtig im Component Pallet registriert, und können wir das verwenden wie wir gewöhnt sind.
Bis jetzt alles Klahr. Das Komponent funktioniert wie es funktionieren muß, daß nicht die Frage ist.
Das Komponent habe ich in einem eigenen Paket kompiliert, damit können wir das einfach installieren, transportieren, ... usw.
Die Frage ist jetzt was ich einstellen muß um mit dieses Paket (Compilereinstellungen, debuginfo, paths, …) ganz genau dasselbe zu bekommen wie ein gebürtiges VCL-Komponent?
Dies heißt:
1. Das Komponent darf nicht wieder kompiliert werden, beim Build des Projektes.
2. Ein CTRL+CLICK auf dem Unit Name des Komponentes in der uses clause meines Projektes springt zur Source File des Komponentes.
3. Ein CTRL+CLICK auf dem Class Name des Komponentes in der interface section meines Projektes springt zur Source File des Komponentes.
4. Ein CTRL+CLICK auf einem property des Komponentes, welche ich anrufe in meines Projekt springt zur Source File des Komponentes.
5. Ein CTRL+CLICK auf einem Method des Komponentes springt zur Source File des Komponentes.
6. Beim debuggen ( mit F7/F8 ) die Source Files meines Komponentes in Ruhe lassen (oder besser: "Use Debug DCU's" folgen )
Was haben gemacht bis jetzt, und was arbeitet und was nicht.
Ich habe ein Paket gemacht mit :
"Debug Information" ein
"Local Symbols" ein
"Stack Frames" ein
Die Path-Einstellungen der Pakete waren:
• Output Directory : $(USR)\Bpl
• Unit output Directory : $(USR)\lib\Delphi10
• Search Path :
• Debug source Path : $(USR)\Source
• DCP output Directory : $(USR)\Bpl
Das Paket ist installiert werden, und einige Delphi-Änderungen ( Project Wide ) wirden gemacht:
• Library path : $(USR)\Bpl + $(USR)\Lib\Delphi10
• Browsing path : $(USR)\Source
• Debug DCU path : $(USR)\Lib\Delphi10\Debug
Nachdem habe ich ein kleines Testprojekt gamacht, habe ich meines Komponent auf der Form gesetzt und die Resultate waren:
Punkt 1: Das Komponent wurde nicht wieder kompiliert beim Build des Projektes, das war OK.
Punkt 2, 3 und 4 funktionierten nicht, aber Punkt 5 funktionierte
Punkt 6 funktioniert Heute nicht, aber das ist mit Debug Info kompiliert, also können wir dieses Problem lösen.
Die sechs Punkte hier arbeiten mit VCL-Components, also es muß möglich sein.
Wer kann helfen?
Zuletzt bearbeitet von PeterVercruysse am So 18.03.07 17:14, insgesamt 1-mal bearbeitet
|
|
alias5000
      
Beiträge: 2145
WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
|
Verfasst: So 18.03.07 00:55
Suchst du sowas wie folgendes:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| interface ... Procedure Register; ... implementation
Procedure Register; begin RegisterComponents('SamplePage', [TDeineKomponente]); end; |
Wenn du ein Package, dass eine Unit mit dieser Procedure installierst (extra Menüpunkt in der IDE, die "installieren" heißt), dann siehst du die Komponente in der Komponentenpalette.
Diese ganzen Sprunggeschichten (Source code finden) erreichst du dadurch, dass du in den Suchpfad (in dem Optionen) den Pfad des Quellcodes einträgst, dann weiß Delphi, wo du suchen musst.
Gruß
alias5000
_________________ Programmers never die, they just GOSUB without RETURN
|
|
PeterVercruysse 
Hält's aus hier
Beiträge: 8
|
Verfasst: So 18.03.07 11:33
Danke für das Antwort, aber ich hatte das Komponent registriert wie Sie Sagen, und es war das einfachere Teil.
Das Problem ist, daß es nicht genug ist, mein Komponent muß ganz genau dasselbe reagieren wie ein VCL-Komponent (Sie können meine Wünsche hier oben sehen)
Ich weiß daß die Frage ziemlich schwierig ist zu verstehen und zu antworten, aber das ist der Grund daß ich das auf diesem Forum frage.
|
|
PeterVercruysse 
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 22.03.07 20:33
Diese Frage erscheint auch auf dem französischen Forum und ich habe gewettet, daß die Deutschen die Antwort viel früher finden als die Franzosen ....
www.developpez.net/f...=1888225#post1888225
|
|
PeterVercruysse 
Hält's aus hier
Beiträge: 8
|
Verfasst: Di 10.04.07 20:51
|
|
HelgeLange
      
Beiträge: 735
Erhaltene Danke: 6
Windows 7
Delphi7 - Delphi XE
|
Verfasst: Di 10.04.07 21:16
meine Komponenten sind mit den Einstellungen, wie Sie sie nutzen, sehr wohl in der Lage, ihr gewünschtes verhalten zu zeigen
_________________ "Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
|
|
PeterVercruysse 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 11.04.07 23:21
Danke für das Antwort, aber konnten Sie mir etwas mehr erklären, was Sie ganz genau bedeuten?
|
|
HelgeLange
      
Beiträge: 735
Erhaltene Danke: 6
Windows 7
Delphi7 - Delphi XE
|
Verfasst: Mi 11.04.07 23:31
das beudeuted, dass ich ähnlichEinstellungen habe, wie sie, nur im Searchpath steht bei mir ein globales DCU-Verzeichnis noch, und bei mir das von ihne gewünschte Verhalten, welches sie unter den Punkten 1-6 beschrieben haben, so ausgeführt wird
_________________ "Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
|
|
|