AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Installation Komp.Package - Kreuzverlinkungen

Ein Thema von christian_r · begonnen am 4. Mai 2008 · letzter Beitrag vom 23. Dez 2008
Antwort Antwort
christian_r
(Gast)

n/a Beiträge
 
#1

Installation Komp.Package - Kreuzverlinkungen

  Alt 4. Mai 2008, 19:57
Ich habe nun eine Komponente als DesignPattern entworfen. Diese wird nicht in der Komponenten-Library registriert. Von dieser Komponente ausgehend leite ich Klassen ab, welche als Komponente letztendlich registriert werden. Eingebunden wird das D-Pattern ganz normal unter "interfaces, uses".

Ich erstelle zur Zeit 2 Packages. Ein Package für das Register "Beta" und eines für das Register "Stable".

Sobald ich eines der beiden Packages eingebunden habe, will das nächste Package das erste Package als "required" zusätzlich einbinden. Und das verstehe ich nicht.

Ich mein, ich binde schließlich auch "Classes" wie üblich unter "uses" mit ein. Aber dies ist keine ursache für ein "required" des anderen Packages.

Das DesignPattern sieht folgendermaßen aus ...

Delphi-Quellcode:
unit DkComponentDesignPattern;

interface

uses
  Classes;

type
  TDkComponentDesignPattern = class( TComponent )
   protected
    procedure Test
              ( pComponent : TComponent; pOperation : TOperation );
              override;
  end;

implementation

procedure TDkComponentDesignPattern.Notification
          ( pComponent : TComponent; pOperation : TOperation );
begin
  inherited Notification( pComponent, pOperation );
  if ( pOperation = opRemove ) then
    pComponent := nil;
end;

end.
Eine registrierte Komponente baut sich folgendermaßen auf ...

Delphi-Quellcode:
unit DkTest;

interface

uses
  Classes,
  DkComponentDesignPattern;

type
  TDkTest = class( TDkComponentDesignPattern )
  end;

procedure Register
          ( );

implementation

procedure Register
          ( );
begin
  RegisterComponents( 'Beta', [ TDkTest ] );
end;

end.
Es sollte doch auch funktionieren beide Packages unabhängig voneinander zu erstellen.
  Mit Zitat antworten Zitat
christian_r
(Gast)

n/a Beiträge
 
#2

Re: Installation Komp.Package - Kreuzverlinkungen

  Alt 7. Mai 2008, 20:45
Leider gab es noch keine Antwort auf meine Problemstellung. Deshalb spreche ich das Thema noch einmal an.

Sollte ich mich doch unklar ausgedrückt haben, so fragt bitte noch einmal nach.

Danke,
Christian
  Mit Zitat antworten Zitat
christian_r
(Gast)

n/a Beiträge
 
#3

Re: Installation Komp.Package - Kreuzverlinkungen

  Alt 11. Mai 2008, 18:34
Letzter Versuch.

Ich entwerfe eine Komponente als DesignPattern. Diese Komponente wird nicht in der Component Library von Delphi installiert, sondern bildet nur die Grundlage für weitere abgeleitete Komponenten. Diese werden in eigene Packages eingebunden und dann installiert.

Jedes Package soll unabhängig von anderen Packages instalilert werden können. Das bedeutet auch, dass beim Complieren des Packages kein anderes Package eingebunden werden soll.

Die Einbindung meines DesignPatterns wird über uses im interface-Abschnitt der zu Installierendes Komponente geregelt. Bei ALLEN Komponenten.

Wenn ich nun Package 1 erstelle, kein Problem. Lediglich alle weiteren Packages verlangen aus Kompatibilitätsgründen die Einbindung des 1. Packages in das eigene Package. Für mich unverständlich. Ist das ein Delphi-Bug, oder warum ist das so?

Seit einer Woche versuche ich nun schon eine Lösung zu finden. Ich habe allen möglichen Mist ausprobiert. Es gibt aber keinen nachvollziehbaren Grund, warum dieses eine Package (und auch immer nur dieses) in alle anderen Packages eingebunden werden soll.

Wenn ich dieses Problem nicht gelöst bekomme, dann steht doch ein grundlegendes Konzept von Delphi Kopf!
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Installation Komp.Package - Kreuzverlinkungen

  Alt 11. Mai 2008, 18:51
Ich glaube du musst in der einen Unit DkComponentDesignPattern noch :
Delphi-Quellcode:
initialization
RegisterClass(TDkComponentDesignPattern);
Dann erst das Packet mit der Unit DkComponentDesignPattern installieren und dann
das andere oder beide Units in ein Packet.

Wenns nicht geht versuch mal dass eine Packet in das andere einzubinden.
Soviel ich weiß muss mann das machen, weil ja in diesem Packet die Class trin ist;
Nickel
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Installation Komp.Package - Kreuzverlinkungen

  Alt 11. Mai 2008, 19:23
Das requires ist nötig, da gemeinsame Units von zwei Modulen nur einmal vorhanden sein dürfen. Classes ist im Package Rtl.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Installation Komp.Package - Kreuzverlinkungen

  Alt 11. Mai 2008, 19:23
Hier mal ein Vorschlag...

Gruss
Thorsten
Angehängte Dateien
Dateityp: zip packages_639.zip (2,0 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
christian_r
(Gast)

n/a Beiträge
 
#7

Re: Installation Komp.Package - Kreuzverlinkungen

  Alt 23. Dez 2008, 01:59
Spätes Danke für Eure Tips. Ich war 4 Monate unabsichtlich offline. Ich schau es mir demnächst an und poste, was aus Euren Vorschlägen entstanden ist.
  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 00:53 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