Studio Controls for COM via ActivX einbinden?
Moderator: Moderatoren
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Studio Controls for COM via ActivX einbinden?
Hallo,
ich habe bisher mit ActivX noch nichts gemacht. kann man so etwas in Xbase++ einbinden: "Studio Controls for COM" http://www.dbi-tech.com/StudioControlsC ... reens.aspx
Gibt es ein Xbase - ActivX Tutorial?
Gruß
Markus
ich habe bisher mit ActivX noch nichts gemacht. kann man so etwas in Xbase++ einbinden: "Studio Controls for COM" http://www.dbi-tech.com/StudioControlsC ... reens.aspx
Gibt es ein Xbase - ActivX Tutorial?
Gruß
Markus
Gruß
Markus
Markus
- Lewi
- 1000 working lines a day
- Beiträge: 830
- Registriert: Di, 07. Feb 2006 14:10
- Wohnort: Hamburg
- Danksagung erhalten: 2 Mal
Re: Studio Controls for COM via ActivX einbinden?
Ein xBase ActiceX-Tutorial?
Da ActiveX-Komponeten externe Tools oder Anwendungen sind, kann es von der Sache her schon kein (allgemeines) xBase-Tutorial geben. Allerdings gibt es bei Komponenten i.d.R. von Seiten der Anbieter eine Dokumentation bei der auch Beispiele für VB oder C++ enthalten sind.
Da ActiveX-Komponeten externe Tools oder Anwendungen sind, kann es von der Sache her schon kein (allgemeines) xBase-Tutorial geben. Allerdings gibt es bei Komponenten i.d.R. von Seiten der Anbieter eine Dokumentation bei der auch Beispiele für VB oder C++ enthalten sind.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9390
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 363 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Code: Alles auswählen
kann man so etwas in Xbase++ einbinden
www.codejock.com
Oder man macht es per Ownerdrawing selbst. Nach Durchquerung der - zugegeben nicht eben flachen - Lernkurve ist das m.E. die feinste Möglichkeit. Was da in den Beispielen gezeigt wird, habe ich. Und sogar noch schöner (und sehr leicht und verlässlich anzusteuern).
Herzlich,
Tom
Tom
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Gibt es zum Thema "Ownerdrawing" ein paar Beispiele? Ich habe nur das eine gefunden: OWNERDRW.prg
Gruß
Markus
Markus
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Da ich weiß das Tom sehr bescheiden und zurückhaltend ist: Es gibt einen Vortrag von ihm, wo er sehr schön schrittweise verschiedene Stufen des Ownerdrawings an einem Browse gezeigt hat. Das war vor 2 Jahren auf der Mitgliederversammlung in Isernhagen. Ich glaube da gibt es ein Video von, auf jeden Fall aber den Code.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Studio Controls for COM via ActivX einbinden?
suche mal bei den "native" Tools. Alle (!) Windows Controls können Ownerdraw bzw. Customdraw.satmax hat geschrieben:Gibt es zum Thema "Ownerdrawing" ein paar Beispiele? Ich habe nur das eine gefunden: OWNERDRW.prg
bei Ownerdraw geht es darum die beiden Windows Methoden o:measureItem und o:drawItem durch eigenen Xbase++ Code zu überschreiben.
siehe c:\ALASKA\XPPW32\Source\samples\basics\OWNERDRW\
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Studio Controls for COM via ActivX einbinden?
wie Tom schon sagte gibt es den Codejock Calender. Ich habe hier im Forum mal einen Thread drüber gemacht.satmax hat geschrieben:ich habe bisher mit ActivX noch nichts gemacht. kann man so etwas in Xbase++ einbinden: "Studio Controls for COM" http://www.dbi-tech.com/StudioControlsC ... reens.aspx
http://www.xbaseforum.de/viewtopic.php?f=41&t=5128
im Prinzip kann man solche Controls wie eine Xbase++ Class verwenden.satmax hat geschrieben:Gibt es ein Xbase - ActivX Tutorial?
Das Problem ist meisten die Dokumentation der Methoden, Propertys und Events die nicht vorliegt.
Ich habe, per Ownerdraw, mir einen Outlook Xbase++ Clone gebaut. wenn man Listview (native) verwendet kann man auch ein Image als Hintergrund in einem Browse haben. http://www.xbaseforum.de/viewtopic.php?f=62&t=5186
weitere Beispiele http://www.xbaseforum.de/viewtopic.php?f=23&t=5832
gruss by OHR
Jimmy
Jimmy
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Jimmy,AUGE_OHR hat geschrieben:Ich habe, per Ownerdraw, mir einen Outlook Xbase++ Clone gebaut. wenn man Listview (native) verwendet kann man auch ein Image als Hintergrund in einem Browse haben.
kann es sein, das Du ein wenig zu viel Zeit hast und nicht ausgelastet bist?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Tom,Tom hat geschrieben:[Kann man. Eine Alternative ist die "Xtreme Suite" von Codejock:
Welche Version benutzt Du? Die ActiveX?
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Studio Controls for COM via ActivX einbinden?
Das Demo hatte ich für die Devcon 2012 gebaut ... aber es wurde ja nicht mehr angenommen ( weil angeblich zu spät abgegeben )Jan hat geschrieben:kann es sein, das Du ein wenig zu viel Zeit hast und nicht ausgelastet bist?
gruss by OHR
Jimmy
Jimmy
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2944
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Hallo Jan,
wenn dann die ActiveX Version. Ich benutze diese auch, aber nur noch einen kleinen Teil (Ribbonbar).
Ist jedoch nicht ganz trivial, durch die vielen verschachtelten Objecte durchzublicken, man muss sich einarbeiten.
Kalender habe ich mittlerweile (einfache Form) mit Ownerdrawing und Browses realisiert.
wenn dann die ActiveX Version. Ich benutze diese auch, aber nur noch einen kleinen Teil (Ribbonbar).
Ist jedoch nicht ganz trivial, durch die vielen verschachtelten Objecte durchzublicken, man muss sich einarbeiten.
Kalender habe ich mittlerweile (einfache Form) mit Ownerdrawing und Browses realisiert.
Viele Grüße
Wolfgang
Wolfgang
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Das wäre für mich natürlich mal hochinteressant, TOM, kann man (ich) da irgendwie rankommen, Video und /oder Code?Jan hat geschrieben:Da ich weiß das Tom sehr bescheiden und zurückhaltend ist: Es gibt einen Vortrag von ihm, wo er sehr schön schrittweise verschiedene Stufen des Ownerdrawings an einem Browse gezeigt hat. Das war vor 2 Jahren auf der Mitgliederversammlung in Isernhagen. Ich glaube da gibt es ein Video von, auf jeden Fall aber den Code.
Jan
Gruß
Markus
Markus
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Für mich würden die Studio Controls wesentlich besser passen, Stichwort Ressourcenplanung. Das Demo verspricht genau das was ich suche...Tom hat geschrieben:Kann man. Eine Alternative ist die "Xtreme Suite" von Codejock:Code: Alles auswählen
kann man so etwas in Xbase++ einbinden
http://www.codejock.com
Oder man macht es per Ownerdrawing selbst. Nach Durchquerung der - zugegeben nicht eben flachen - Lernkurve ist das m.E. die feinste Möglichkeit. Was da in den Beispielen gezeigt wird, habe ich. Und sogar noch schöner (und sehr leicht und verlässlich anzusteuern).
Gruß
Markus
Markus
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
... aber der Preis. Das ist doch eine ganz andere Liga als Codejock.satmax hat geschrieben:Für mich würden die Studio Controls wesentlich besser passen, Stichwort Ressourcenplanung. Das Demo verspricht genau das was ich suche...
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Ich finde der Preis ist meist sekundär, die (fast perfekte) Lösung ist wichtig.Jan hat geschrieben:aber der Preis. Das ist doch eine ganz andere Liga als Codejock.
Jan
Gruß
Markus
Markus
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2944
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Ich weiss, dass Tom dieses in seiner Anwendung per Browse und Ownerdrawing realisiert hat.Stichwort Ressourcenplanung
Wenn man erst einmal einigermaßen verstanden hat, wie das Ownerdrawing funktioniert, kann man solche Sachen damit realisieren. Beim Ownerdrawing bist du bzw. deine eigene Funktion dafür verantwortlich, was im Moment, wenn eine Zelle gezeichnet werden muss, passiert. Du musst eben nur die Daten bereitstellen, dann kannst du Icons, grafische Elemente, Textzeilen etc. in dieser Zelle frei anordnen.
Ich setze mal Toms Einverständis vorraus und hänge hier die Beispiele seines Vortrages von vor einigen Jahren ran.
- Dateianhänge
-
- Beispiel.zip
- (62.71 KiB) 415-mal heruntergeladen
Viele Grüße
Wolfgang
Wolfgang
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2944
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Noch ein schönes Beispiel für ein Browse mit Ownerdrawing, in dem der eingegebene Suchtext hervorgeboben wird:
- Dateianhänge
-
- Highlight.zip
- (12.08 KiB) 394-mal heruntergeladen
Viele Grüße
Wolfgang
Wolfgang
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Ich bin gerade dabei die ersten Schritte mit ActiveX zu unternehmen.
Ich habe das ctSchedule.ocx registriert und ein minimales Beispielprogramm erstellt:
Das Programm wird auch ausgeführt und oScheduler als Object of Class AutomationObject angelegt. Im Prinzip kann ich mit diesem Objekt aber nichts machen da es laut Debugger nur 5 Eigenschaften enthält:
Cargo (NIL)
Interface (5927304)
InterfaceName ("_DctSchedule")
License ("")
Server ("")
Wie komme ich da weiter? Muss da noch etwas initialisiert werden? GetObject() wird ja offensichtlich korrekt ausgeführt.
Ich habe das ctSchedule.ocx registriert und ein minimales Beispielprogramm erstellt:
Code: Alles auswählen
#pragma library( "ascom10.lib" )
PROCEDURE MAIN
LOCAL oScheduler
oScheduler := GetObject( NIL, "{CE02C22A-8AB8-4F58-9921-C57DE0E67678}" )
IF NIL == oScheduler
? "Error"
? ComLastError()
? ComLastMessage()
ELSE
? "OK"
? ComLastError()
? ComLastMessage()
ENDIF
WAIT
RETURN
Cargo (NIL)
Interface (5927304)
InterfaceName ("_DctSchedule")
License ("")
Server ("")
Wie komme ich da weiter? Muss da noch etwas initialisiert werden? GetObject() wird ja offensichtlich korrekt ausgeführt.
Gruß
Markus
Markus
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Studio Controls for COM via ActivX einbinden?
das merkt mansatmax hat geschrieben:Ich bin gerade dabei die ersten Schritte mit ActiveX zu unternehmen.
nachdem du das OCX registriert hast solltest du den Formdesigner (XppFD.EXE) verwenden.
Menue / XbParts / ActiveX Control
jetzt bekommst du eine Liste und suchst dein OCX
unter den Eigenschaften mal nachsehen ob eine License ermittelt wurde !
zum Schluss Class Code generieren und damit dann rumspielen.
Cargo Xbase++satmax hat geschrieben:Im Prinzip kann ich mit diesem Objekt aber nichts machen da es laut Debugger nur 5 Eigenschaften enthält:
Cargo (NIL)
Interface (5927304)
InterfaceName ("_DctSchedule")
License ("")
Server ("")
Interface ist das API Handle.
InterfaceName entspräche grob einem ClassName
License meistens bei kommerziellen Versionen.
Server bei Local leer
gruss by OHR
Jimmy
Jimmy
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Danke Jimmy, das ist jetzt mal ein Anfang, ich bekomme schon etwas auf dem Bildschirm...
Gruß
Markus
Markus
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Naja, weit bin ich nicht gekommen.
Dank Jimmys Hilfe kann ich zumindest das leere Control anzeigen, kann aber zB. nicht auf die Properties zugreifen, Beispiel:
Auszug aus der Hilfe:
Ich dachte nun, ich kann ganz einfach auf so eine Eigenschaft zugreifen:
Ich erhalte aber nur die Fehlermeldung XPPERROR.LOG:
------------------------------------------------------------------------------
FEHLERPROTOKOLL von "c:\dev\DevSrc\Test ActiveX\sample.exe" Datum: 10.08.2014 17:23:19
Xbase++ Version : Xbase++ (R) Version 1.90.355
Betriebssystem : Windows 7 06.02 Build 09200
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE: ColumnWidth
oError:canDefault : J
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Parameter nicht optional.
Fehlender Parameter in Aufruf
oError:filename : NIL
oError:genCode : NIL
oError:operation : ColumnWidth
oError:osCode : -2147352561
oError:severity : 2
oError:subCode : 6500
oError:subSystem : Automation
oError:thread : 1
oError:tries : NIL
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from MAIN(57)
Nachtrag: lesend kann ich mit
x:=oTest:ActiveXControl1:ColumnWidth(1)
zugreifen.
Dank Jimmys Hilfe kann ich zumindest das leere Control anzeigen, kann aber zB. nicht auf die Properties zugreifen, Beispiel:
Auszug aus der Hilfe:
Code: Alles auswählen
ColumnWidth
Description
Returns/sets the width of the column.
Property type
Read-write property
Syntax
Visual Basic
Public Property ColumnWidth( _
ByVal nIndex As Integer _
) As Integer
Parameters
nIndex
The 1-based index value of the column.
Return Type
An Integer value.
Example
[Visual Basic and Access]
Me.ctSchedule.ColumnWidth(1) = 50
[Visual FoxPro]
thisform.ctSchedule.ColumnWidth(1) = 50
Code: Alles auswählen
PROCEDURE Main
LOCAL nEvent, oXbp, mp1, mp2
LOCAL oTest
oTest:=NewForm():New():Create()
oTest:ActiveXControl1:ColumnWidth[1] := 50 // Line 57 -> Fehler
------------------------------------------------------------------------------
FEHLERPROTOKOLL von "c:\dev\DevSrc\Test ActiveX\sample.exe" Datum: 10.08.2014 17:23:19
Xbase++ Version : Xbase++ (R) Version 1.90.355
Betriebssystem : Windows 7 06.02 Build 09200
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: C VALUE: ColumnWidth
oError:canDefault : J
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Parameter nicht optional.
Fehlender Parameter in Aufruf
oError:filename : NIL
oError:genCode : NIL
oError:operation : ColumnWidth
oError:osCode : -2147352561
oError:severity : 2
oError:subCode : 6500
oError:subSystem : Automation
oError:thread : 1
oError:tries : NIL
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from MAIN(57)
Nachtrag: lesend kann ich mit
x:=oTest:ActiveXControl1:ColumnWidth(1)
zugreifen.
Gruß
Markus
Markus
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2944
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
oTest:ActiveXControl1:ColumnWidth[1]
vielleicht
oTest:ActiveXControl1:ColumnWidth(1)
vielleicht
oTest:ActiveXControl1:ColumnWidth(1)
Viele Grüße
Wolfgang
Wolfgang
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Lesen schon:
x:=oTest:ActiveXControl1:ColumnWidth(1)
aber nicht zuweisen:
oTest:ActiveXControl1:ColumnWidth(1):=80
x:=oTest:ActiveXControl1:ColumnWidth(1)
aber nicht zuweisen:
oTest:ActiveXControl1:ColumnWidth(1):=80
Gruß
Markus
Markus
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2944
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Studio Controls for COM via ActivX einbinden?
Dann mal vielleicht:
oTest:ActiveXControl1:SetProperty("ColumnWidth",1,50)
oTest:ActiveXControl1:SetProperty("ColumnWidth",1,50)
Viele Grüße
Wolfgang
Wolfgang