AGB  ·  Datenschutz  ·  Impressum  







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

ActiveX aus Komponente generieren

Ein Thema von jam176 · begonnen am 4. Aug 2003 · letzter Beitrag vom 7. Dez 2004
Antwort Antwort
Seite 1 von 2  1 2      
jam176

Registriert seit: 21. Jul 2003
9 Beiträge
 
#1

ActiveX aus Komponente generieren

  Alt 4. Aug 2003, 11:41
Ich hab jetzt schone einiges zum Thema ActiveX gelesen und gängige Foren rauf und runter durchsucht, aber entweder ist es so leicht, dass keiner drüber redet, oder so ungewöhnlich, dass niemand sowas programmiert!

Ich habe eine Komponente gebaut, die eine dll verwendet. Daraus will ich ein ActiveX-Element machen um es später unter Navision zu verwenden. Aber ich scheitere schon daran, dass Delphi7 meine Komponente nicht in der Kombobox (VCL-Klassenname) anzeigt, wenn ich das ActiveX-Element neu erstellen will.

In Delphi5 scheint meine Komponente zwar unter den VCL-Klassennamen auf, aber wenn das ActiveX-Element erstellt ist, sind alle meine Funktionen der Ursprünglichen Komponente weg.

Was mach ich da falsch???

Das ist übrigens meine Komponente (reduziert auf eine Funktion), die ich registriert habe:
Delphi-Quellcode:
unit Waagen;

interface

uses
  SysUtils, Classes, Controls;

type
  TWaagen = class(TWinControl)

  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    procedure W_netErrorStr (iErrNr: smallint; var ErrorText: String);
   
  published
    { Published-Deklarationen }
  end;


  procedure Register;


implementation

  procedure netErrorStr (Error, MaxLen: smallint; ErrorText: PChar); stdcall; far; external 'waagen.dll';


  procedure TWaagen.W_netErrorStr(iErrNr: smallint; var ErrorText: String);
  const
    MAXLEN_ERRSTR = 81;
  var
    acErr: array[0..MAXLEN_ERRSTR] of char;
    i: integer;
  begin
    netErrorStr(iErrNr, MAXLEN_ERRSTR, acErr);

    ErrorText:='';
    for i:= 0 to MAXLEN_ERRSTR do
    begin
      if acErr[i] = #0 then break;
      ErrorText:= ErrorText + acErr[i];
    end;
  end;

  procedure Register;
  begin
    RegisterComponents('MyComponents', [TWaagen]);
  end;

end.
Wäre für jede Hilfe dankbar...

mfg
rieder/IT

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
  Mit Zitat antworten Zitat
jam176

Registriert seit: 21. Jul 2003
9 Beiträge
 
#2

Re: ActiveX aus Komponente generieren

  Alt 5. Aug 2003, 09:08
Gibt's wirklich niemanden, der mir in dieser Sache etwas sagen kann?

jam176
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: ActiveX aus Komponente generieren

  Alt 5. Aug 2003, 09:12
Moin,

eigentlich soll es ganz leicht sein. Wahrscheinlich redet deswegen auch niemand darüber Ich werde mal rumspielen und von meinen Erfahrungen berichten.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jam176

Registriert seit: 21. Jul 2003
9 Beiträge
 
#4

Re: ActiveX aus Komponente generieren

  Alt 5. Aug 2003, 09:15
boah, danke! echt!

bin gespannt...

jam176
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5

Re: ActiveX aus Komponente generieren

  Alt 5. Aug 2003, 09:46
Also warum Delphi 7 nicht mehr alle anzeigt kann ich leider auch nicht beantworten, aber bestätigen Schade eigentlich. Auch ich habe Delphi 5 zum Vergleich installiert

In die ActiveX-Komponente werden automatisch nur die Funktionen, Methoden, Eigenschaften und Ereignisse übernommen, deren Parameter vollständig COM-Kompatibel sind. Für alle anderen musst Du die Methoden selbst deklarieren und kompatibel machen und ggf. die Parameter vor der Weitergabe konvertieren.

Zur Deklaration der COM-Access-Methoden musst Du den Type-Library-Editor (im Menü View) nutzen.

Viel mehr habe ich auf Anhieb leider auch nicht in Erfahrung bringen können. Im Zweifel würde ich die ActiveX Komponente in Delphi 5 erstellen und die Sourcen dann nach Delphi 7 importieren. Dann kannst Du immerhin damit weiterarbeiten.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
jam176

Registriert seit: 21. Jul 2003
9 Beiträge
 
#6

Re: ActiveX aus Komponente generieren

  Alt 5. Aug 2003, 09:57
alles klar! lege gleich los. vielen dank für deine zeit!!!!

jam176
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: ActiveX aus Komponente generieren

  Alt 5. Aug 2003, 10:37
Keine Ursache. Es wäre schön, wenn es einfacher wäre

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Ronald

Registriert seit: 15. Okt 2003
12 Beiträge
 
#8

Re: ActiveX aus Komponente generieren

  Alt 15. Okt 2003, 13:53
Ich weiß ja nicht, ob Du Dein Problem nun bereits auch ohne meine Nachricht gelöst hast.

Ich baue unter Delphi 5 ebenfalls z.Zt. die eine oder andere Komponente in ActiveX um, um sie in Excel zu verwenden. Mein erster Versuch, über eine ActiveX-Form hat zu dem gleichen Problem geführt, wie Du es beschrieben hast. Der Einsatz über ActiveX-Element führte zu einem vollen Erfolg - einfach so !
Das nicht-darstellen der Komponente im VCL-Klassenname hat nach meiner Erkenntnis etwas mit dem Komponenten-Typ zu tun, so erscheint bei mir eine vom Typ TGraphic abgeleitet Komponente nicht in der Komponenten-Auswahl. Ich muß allerdings gestehen, daß auch ich ein absoluter Anfänger in diesem Umfeld bin und meine Erkenntnisse auf Trail-and-Error beruhen.
  Mit Zitat antworten Zitat
jam176

Registriert seit: 21. Jul 2003
9 Beiträge
 
#9

Re: ActiveX aus Komponente generieren

  Alt 15. Okt 2003, 18:15
tatsächlich habe ich das problem NICHT lösen können, denn solange ich unter delphi7 die komponente in der liste nicht auswählen kann, geht's auch nicht weiter.
ich habe daher einfach unter delphi3 oder delphi5 (weiss nicht mehr) eine völlig leere komponente erzeugt, dort wurde die dann auch angezeigt und daraus mein OCX generiert. wie gesagt ein völlig leeres, eine HÜLLE, sozusagen.
und dieses ding hab ich dann einfach als activeX von null auf programmiert.

mfg
jam176
  Mit Zitat antworten Zitat
Ronald

Registriert seit: 15. Okt 2003
12 Beiträge
 
#10

Re: ActiveX aus Komponente generieren

  Alt 16. Okt 2003, 07:12
Schmerzhaft, wenn man auf bereits geleistete Arbeit nicht zurück greifen kann. Ich hab zum Test einfach mal eine Testkomponente geschrieben und diese von dem Typ abgeleitet, vom dem auch das Objekt meiner Begierde abgeleitet wurde. Diese neue Komponente wurde bei mir ebenfalls nicht in der Komponentenauswahl angeboten, so daß sich bei mir der Verdacht erhärtet hatte, daß es einfach mit dem Komponententyp zusammenhängt, von dem die geschriebene Komponente abgeleitet wurde. Warum das allerdings so ist verschließt sich meinem kleinen Verstand. Wenn ich da etwas herausfinde, werde ich Dich informieren. In solchen Fällen würde ich (soweit möglich) mal über 'nen alternativen Komponententyp nachdenken. Da ich vorhabe noch einige von diesen Dingern zu schreiben freue ich mich schon auf die Trail-and-Error-Methode.
By th way - Ich hätte da mal 'ne Frage an Dich. Die OCX-e die ich geschrieben habe möchte ich gerne auf anderen Rechnern installieren. Aus Delphi heraus geht das ja einfach. Auf den anderen Rechnern habe ich jedoch kein Delphi installiert. Hier z.B. bietet Excel die Installation an. Nur wenn ich das versuche moniert Excel das fehlen eine Installations-Routine in den Objekten. Es wäre natürlich toll, wenn ich die Dinger an Freunde weitergeben könnte, ohnen großen Installationsaufwand vor Ort zu produzieren. Hast Du 'nen Tip für mich ?

Gruß
Ronald
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:43 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