AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein COM-Objekt - Klasse nicht registriert ...
Thema durchsuchen
Ansicht
Themen-Optionen

COM-Objekt - Klasse nicht registriert ...

Ein Thema von paule32.jk · begonnen am 26. Aug 2023 · letzter Beitrag vom 27. Aug 2023
Antwort Antwort
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
218 Beiträge
 
Delphi 11 Alexandria
 
#1

COM-Objekt - Klasse nicht registriert ...

  Alt 26. Aug 2023, 14:01
Hallo,
ich habe soeben mein erstes COM-Objekt mittels Delphi erstellt und kompilieren können.
Das COM-Objekt wird auch irgendwie registriert, da es in der Komponenten-Palette auch
erscheint (als TypeLibrary import glaube ich... ?)

Wenn ich dieses Objekt (Komponente) auf ein Formular platzieren möchte,
dann kommt der Fehler: "Klasse ist nicht registiert.".

Aber ich dachte, durch den Import wird es registriert...
weil: in der Type-Library-Liste steht mein erstelltes Objekt (samt Pfad).

Nach Neustart von Delphi wird es auch nicht aus der Komponenten-Palette gelöscht - es
ist immer noch da.

Nun die Frage:
Wie installiert man eine "dummy" COM-Klasse ?

hier die folgenden Schritte, die ich bereits unternommen habe:
1. neues Anwendungsprojekt (VCL) erstellt
2. COM-Objekt erstellt, mit Interface TTestAuto
3. Kompiliert
4. der TLB Liste hinzugefügt
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
skybibo

Registriert seit: 23. Jun 2008
Ort: NRW
23 Beiträge
 
Delphi 12 Athens
 
#2

AW: COM-Objekt - Klasse nicht registriert ...

  Alt 26. Aug 2023, 21:26
Hallo Paule,

COM Objecte können nicht wie normale Klassen verwendet werden. Zur Verwendung musst du das registrierte COM Object CraeteComObject oder CreateOleObject dynamisch einbinden.

Der Vorteil ist, das ein Programm nicht wissen muss, wo das COM Object auf dem PC abgelegt ist. Dies steht nach erfolgter Registrierung in der Registry.

Weiterhin können COM Objecte auch von anderen Programmiersprachen und Scriptsprachen (z.B. VBScript) verwendet werden.

Eine Einbindung wie eine Komponente funktioniert nicht. Es sei denn du erstellst eine ActiveX Komponente, dies ist eine Sonderform eines COM Objects.

Ein passendes Tutorial habe ich leider nicht gefunden. Fündig wirst du eventuell wenn du nach „delphi CreateOleObject“ suchst

Gruß Bernd
Bernd
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
480 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: COM-Objekt - Klasse nicht registriert ...

  Alt 26. Aug 2023, 21:29
Deine com Klasse muss noch registriert werden.
https://support.microsoft.com/de-de/...a-3f4e0cb543e5
Bernd
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.404 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: COM-Objekt - Klasse nicht registriert ...

  Alt 26. Aug 2023, 23:20
Es gibt auch andere Möglichkeiten...
Du kannst z.B. die von einer solchen DLL exportierte Funktion DllGetClassObject selbst aufrufen, dann muss das nicht über das Betriebssystem und die dort registrierte DLL laufen.
Man kann auch eine solche DLL über das Manifest der Anwendung einbinden. Dann ist keine Registrierung notwendig.

Die Frage ist, was du benötigst, sprich was du damit machen möchtest. Wenn du die Klasse für ein vorhandenes System bereitstellen möchtest, musst du es natürlich so machen, wie es dort benötigt wird.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
218 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: COM-Objekt - Klasse nicht registriert ...

  Alt 26. Aug 2023, 23:44
nun, ich schreibe an einen etwas größeren Projekt.
Dazu möchte ich gerne, das der Benutzer, ähnlich Delphi Components, die Möglichkeit
hat, das Programm zu erweiterm.

Im Moment benötige ich eigentlich nur:
- ein Item, als String
- ein Bildchen zu jeden Item
- und eine interne Funktion zu jeden Item

ich habe auf dem git account mit DLL hantiert, was wohl am einfachsten ist.
Allerdings habe ich da im Moment noch paar Problemchen.
Frag doch einfach
Alles was nicht programmiert werden kann, wird gelötet
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.404 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: COM-Objekt - Klasse nicht registriert ...

  Alt 27. Aug 2023, 00:24
Für den Zweck ist COM die am wenigsten geeignete Technik.

Du kannst eine Funktion aus der DLL exportieren, die ein Interface mit der gewünschten Funktionalität liefert.

Oder du schreibst mein Projekt für Delphi 7 um, dann kannst du das Interface einfach registrieren und im Host abrufen.

Oder du nimmst doch eine neue Delphiversion und nutzt mein Projekt direkt. Denn wenn du das veröffentlichen möchtest, bringt dir Delphi 7 ohnehin wenig, da potentielle Nutzer eher neuere Versionen nutzen dürften und Generics usw. erwarten dürften. Sprich etwas mehr Komfort.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.307 Beiträge
 
Delphi 12 Athens
 
#7

AW: COM-Objekt - Klasse nicht registriert ...

  Alt 27. Aug 2023, 00:49
LongsStrings (AnsiString/UnicodeString) auch nur wenn SharedMemory
oder eben mit Laufzeitpackages.

Delphi-Klassen/Objekte sollen, ohne Laufteitpackages, sowieso nicht genutzt werden.
Als Windows-Objekt/Interfaces oder als einfacher Bytepuffer, gibt kaum Probleme.

Selbst ein Delphi-Byte-Array ist nicht immer kompatibel, zwischen ALLEN Delphi-Versionen,
ebenso wie die LongStrings, wo über die vielen Jahre schon ein paar Mal was an den Interna rumgepfuscht wurde.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 17:05 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