Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Prism Einige Fragen zu Delphi 8 (package mit .net Komponenten) (https://www.delphipraxis.net/20172-einige-fragen-zu-delphi-8-package-mit-net-komponenten.html)

MaBuSE 14. Apr 2004 11:52


Einige Fragen zu Delphi 8 (package mit .net Komponenten)
 
Hallo,

ich habe eine kleine .net Komponente für WinForms geschrieben
(eine Test ohne Funktion)

Das ganze ist in einem Package -> dll wird erzeugt

Diese .net Komponente konnte ich auch ohne Probleme in Delphi 8 einbinden und kann Sie nun in WinForms verwenden.

Nun habe ich eine 2. Komponente in das Package gesteckt.

Diese Komponente kann ich aber nicht einbinden, da sie mir nicht bei "installierte .net Komponenten" angezeigt wird.

Was mache ich falsch?

Oder anders gefragt: Wie mache ich das?

Ich bedanke mich schon mal in Voraus für die Antworten

Falls es jemanden interessiert: Hier die Komponente - aber nicht zu genau hinschauen, ist ja nur zum test :-)
Delphi-Quellcode:
unit UserControl;

interface

uses
  System.Drawing, System.Collections, System.ComponentModel,
  System.Windows.Forms, System.Data;

type
  TUserControl = class(System.Windows.Forms.Button)
  strict private
    Components: System.ComponentModel.Container;
  strict protected
    procedure Dispose(Disposing: Boolean); override;
  private
  public
    constructor Create;
  end;

  [assembly: RuntimeRequiredAttribute(TypeOf(TUserControl))]

implementation

uses
  System.Globalization;

{$AUTOBOX ON}

constructor TUserControl.Create;
begin
  inherited Create;
  Self.Components := System.ComponentModel.Container.Create;
  // Button rot setzen
  Self.BackColor := System.Drawing.Color.FromArgb((Byte(255)),
      (Byte(128)), (Byte(128)));
end;

procedure TUserControl.Dispose(Disposing: Boolean);
begin
  if Disposing then
  begin
    if Components <> nil then
      Components.Dispose();
  end;
  inherited Dispose(Disposing);
end;

end.

MaBuSE 14. Apr 2004 15:33

Re: Einige Fragen zu Delphi 8 (package mit .net Komponenten)
 
Die 2. Komponente in ein 2. Package funktioniert.

Aber ich kann ja nicht pro Komponente ein Package erstellen :-/

Robert_G 15. Apr 2004 09:17

Re: Einige Fragen zu Delphi 8 (package mit .net Komponenten)
 
Ehrlich gesagt, ich habe noch keine Assembly für .Net geschrieben. :oops:
Aber wenn ich heute Abend Zeit habe, schaue ich mir das mal (Ich wollte mir sowieso visuelle Komponenten für managed DirectShow basteln ;) )

Robert_G 16. Apr 2004 09:02

Re: Einige Fragen zu Delphi 8 (package mit .net Komponenten)
 
Sorry, ich bin gestern nur dazu gekommen eine Komponente halbwegs fertig zu kriegen (und da war es auch schon halb 4 :shock: ).
Ich bin da aber über etwas gestoplert:
Ich kann das Package einfach per "select assembly" zu der Liste der inst. .Net-Kompos hinzufügen.
Ich kann sie auch auf mein Form ziehen und zur Designzeit verwenden. Aber wenn ich kompilieren will, dann meckert er etwas von wegen: "blabla... could not include XXX because it contains the library Borland.Delphi.System"
Klicke ich jetzt im ProjektManager auf "link in Delphi Units", dann geht es (er benutzt aber nur die .pas :cry: )

Hast du das gleiche Problem gehabt, bzw. wie hast du es umgangen?

MaBuSE 20. Apr 2004 17:38

Re: Einige Fragen zu Delphi 8 (package mit .net Komponenten)
 
Zitat:

Zitat von Robert_G
Aber wenn ich kompilieren will, dann meckert er etwas von wegen: "blabla... could not include XXX because it contains the library Borland.Delphi.System"
Klicke ich jetzt im ProjektManager auf "link in Delphi Units", dann geht es (er benutzt aber nur die .pas :cry: )

Hast du das gleiche Problem gehabt, bzw. wie hast du es umgangen?

Bei mir ist das nicht aufgetreten.

ABER: Im delphi.net Sonderheft steht das Problem beschrieben.

Seite 54, Artikel: "Was darf's sein? Library, Package oder DLL?", 1. Absatz

Ich bin noch nicht ganz durch (mit dem Lesen des Heftes).

Ich will ja auch alles verstehen und ausprobieren :mrgreen: !

mfg
MaBuSE


PS: übrigens :dp:

Robert_G 20. Apr 2004 18:13

Re: Einige Fragen zu Delphi 8 (package mit .net Komponenten)
 
Achso, den Thread habe ich total vergessen :mrrgeen:

Das Problem war einfach, dass ich die Assembly Borland.Delphi aus den Referenzen geschmissen hatte.
Als Ergebniss hat D8 sie fest in meine Assembly kompiliert. Da in dieser Assembly die RTTI steckt, hat er sich mit Händen und Füßen geweigert, sie an ein anderes Delphi Projekt zu hängen. Zwei mal die RTTI in einer Echse geht nämlich in die Hose. :tongue:

zum Thema:
Ich hatte eigentlich keine Probleme 2 Komponenten in ein Package zu bekommen. Du musst ab & zu die IDE neu starten ( :evil: ) damit er die Änderungen bemerkt.
D8 verwendet neben dem GAC noch einen eigenen Assemby cache (und der verhindert manchmal, dass die Änderungen wirksam werden).

MaBuSE 21. Apr 2004 12:22

Re: Einige Fragen zu Delphi 8 (package mit .net Komponenten)
 
Zitat:

Zitat von Robert_G
zum Thema:
Ich hatte eigentlich keine Probleme 2 Komponenten in ein Package zu bekommen. Du musst ab & zu die IDE neu starten ( :evil: ) damit er die Änderungen bemerkt.
D8 verwendet neben dem GAC noch einen eigenen Assemby cache (und der verhindert manchmal, dass die Änderungen wirksam werden).

Das wars. Danke.

Ist ja wie Windows. Neuboot -> alles klappt (oder auch nicht) :?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:03 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