Autor |
Beitrag |
Al Borland
      
Beiträge: 16
|
Verfasst: Do 10.02.05 14:34
Hallo,
ich möchte eine selbstgeschriebene Delphi Komponente (abgeleitet von TGraphicControl) als ActiveX Object in einer HTML Seite nutzen. Kann man die Klasse irgendwie portieren? Wie erstellt man eine ActiveX Komponente? Gibt's dazu ein Tutorial?
Also ich bin nicht zu faul die Delphi Hilfe zu benutzen, nur leider wenn ich auf "ActiveX-Steuerelemente erstellen" klicke kommt bei mir nur "Verknüpfung nicht gefunden" 
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 10.02.05 15:26
|
|
OneOfTen
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 10.02.05 15:35
dein Link verweist auf diesen Thread, retnyg 
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 10.02.05 15:38
|
|
Al Borland 
      
Beiträge: 16
|
Verfasst: Do 10.02.05 17:28
Hm, also die Links ahben mir nicht wirklich weitergeholfen.
Aber ich hab es geschafft - ich hab zumindest eine OCX Datei.
Dazu mustte ich allerdings erst an einen anderen Arbeitsplatz,
denn Delphi5 Standard hat keinen ActiveX Experten.
Mit D6 Pro ging es dann ganz leicht:
ActiveX Steuerelement erstellen (per Assistenten)
Als Vorfahrenklasse die zu portierende Klasse auswählen
Kompilieren - Fertig ist die OCX Datei.
Nun hab ich noch eine Frage *nerv* - Wie zur Hölle installier ich das Ding?
Ich brauch ja zum Einbetten in HTML eine CLSID. Wie leg ich die fest bzw.
wie muss der Registry Eintrag aussehen?
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 10.02.05 18:06
ein activeX-control muss auch funktionieren ohne dass da vorher ein registry eintrag dafür existiert, sonst würden ja die ganzen trojaner auf den sexseiten ned funzen.
|
|
Al Borland 
      
Beiträge: 16
|
Verfasst: Fr 11.02.05 09:39
retnyg hat folgendes geschrieben: | ...sonst würden ja die ganzen trojaner auf den sexseiten ned funzen. |
 AAAhhhaaa!! So kommts raus!
OK - ActiveX einbetten - Quelle SelfHTML
Quelltext 1: 2: 3: 4: 5: 6:
| <h1>Eine MIDI-Datei</h1>
<object width="267" height="175" classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A"> <param name="filename" value="ritmo.mid"> </object> |
Zitat: | Mit dem Attribut classid= referenzieren Sie die Implementierung des gewünschten ActiveX-Controls (classid = class identifier = Klassenbezeichner). Die Angabe besteht aus der festen Zeichenfolge CLSID: - gefolgt von der Bezeichner-ID. Diese ID müssen Sie kennen. Im obigen Beispiel wird ein recht bekanntes ActiveX-Control referenziert, nämlich dasjenige, das unter Windows zum Abspielen von Multimedia-Dateien zuständig ist. Es bindet den Media-Player von Windows in den Bereich des definierten Objekts ein. Mit classid="CLSID:05589FA1-C356-11CE-BF01-00AA0055595A" binden Sie also ein ActiveX-Control ein, das es erlaubt, Sound- und Videodateien aller bekannten Formate wie WAV, AU, MID, MP3, AVI, MPEG usw. abzuspielen. |
Gibt es hier denn NIEMAND der je ein ActivX Control geschrieben hat???
|
|
chrisdrury
      
Beiträge: 184
WinXP
D5 Prof
|
Verfasst: Fr 11.02.05 09:59
Also, wenn ich mich recht erinnere, passiert beim Compilieren einer ActiveX-Anwendung ua. folgendes:
Es wird sowohl eine CAB-Datei mit der entsprechenden OCX-Komponente und eine HTML-Datei mit der dazugehörenden Class-ID im TEMP-Ordner abgelegt.
Also Dateien suchen und im HTML-Quelltext nachschauen.
Dort ist beschrieben, wie man das OCX aufrufen kann.
Das kann man dann in eine eigene HTML-Datei einbauen und diese zusammen mit dem OCX auf den Server hochladen.(Funzt dann aber meines Wissens nur mit dem IE!  )
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Fr 11.02.05 15:15
hast du schon ne lösung gefunden ? ansonsten empfehle ich dir mal in nem visual basic forum nachzufragen.
|
|
Al Borland 
      
Beiträge: 16
|
Verfasst: Fr 11.02.05 16:52
Also, da Ihr ja nichts reißt hier  musste ich selber ran.
 Alles muss man selber machen...
Also, so weit bin ich ActiveX abgeleitet wie oben beschrieben.
Ich hab es erst mal mit TColorGrid probiert.
Delphi erzeugt dann automatisch 3 Dateien:
Delphi-Quelltext 1: 2: 3:
| library ColorGridXControl1; unit ColorGridImpl1; unit ColorGridXControl1_TLB; |
In der letzteren findet sich dann auch die CLSID
Ausschnitt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| const ColorGridXControl1MajorVersion = 1; ColorGridXControl1MinorVersion = 0;
LIBID_ColorGridXControl1: TGUID = '{3F3C9361-5E82-4214-9E9B-6B646BB65909}';
IID_IColorGridX: TGUID = '{FAE87AF3-6C63-41ED-9753-7D54CBD66AF9}'; DIID_IColorGridXEvents: TGUID = '{F1F6A46F-374A-4622-9D99-87FCD9BAC39E}'; CLASS_ColorGridX: TGUID = '{58B0C4EA-690D-4DFB-8040-A31E3D1D9699}'; |
Dann habe ich das Ding kompiliert: OCX Datei wird erzeugt!
Bestens - dann habe ich das Luder installiert (mit RegSvr32) - geht auch!
Dann habe ich das Vieh in HTML eingebettet - siehe oben - kein Thema!
Das ist der Stand der Dinge: Es ist auf der Seite und lässt sich mit JavaScript ansprechen:
Quelltext 1:
| TargetCell.BgColor = ColorGrid.ForegroundColor; |
OK, ganz so nicht - man muss den dezimalen Farbwert (TOleColor) noch in Hex umwandeln.
Na ja, und so sieht es dann aus:
Aber ich forsche noch weiter 
|
|
Al Borland 
      
Beiträge: 16
|
Verfasst: Fr 11.02.05 16:58
Ach so: VB Forum?? Ich glaubs ja wohl!
Hey, wo ist denn der Smilie der göbelt geblieben?
Der sollte hier eigentlich hin!
|
|
retnyg
      
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Fr 11.02.05 17:01
sauber, das ist ja schon ganz anständig. aber zu deinem eigentlichen problem (daten grafisch darstellen) wirst du nicht umhinkommen die webseite serverseitisch dynamisch zu erzeugen und die messdaten deinem control als parameter mitzugeben. oder du lädst die dann in eine tabelle mit einem namen, worauf du dann per javascript zugreifen kannst, was aber eher umständlicher sein wird denk ich ma.
|
|
|