| |
|
|
Thomas Freier | Versuche gerade con Uwe Pascals ocx-Beispielen [...] el Acrobat Reader einzubinden. Geht, aber z.Z. sólo el Versión 5.1 [...] Verschiedene Hinweise, el besagen, dass el pdf.ocx ausreiche. Konnte Todavía no nachvollziehen. Das eigentliche Problema es, si fremde Ventana encima el Ejemplo movido voluntad, bleiben veces o más weniger graue Bereiche obtener. Yo bekomme simplemente no automatischen refresh hin. Vom Blue Screen a para Einfrieren des PCs beim Ausprobieren con el hier gefunden Beispielen alles gehabt. KompilierenMarcaSeparación $H Windows.ph
$H ocx2.ph
$I ocx2.inc
Windowstyle 538
var hParent& = @Create(Window, 0, OCX-Test, 1,1,%maxx-38,%maxy-38)
usermessages 16
var File$=loadfile$(Bitte Bild wählen,*.pdf)
casenot len(File$):end
ocxInit()
declare Control&
var Object&=ocxCreate({CA8A9780-280D-11CF-A24D-444553540000}, hParent&,1,1,(%maxx-90),(%maxy-78),$50800000,addr(Control&))
ocxMethod(Object&,LoadFile,*+File$)
ocxMethod(Object&,setShowToolbar,0)
ocxMethod(Object&,setShowScrollbars,1)
ocxMethod(Object&,setZoom,300)
while 1
GetMessage
waitinput
case %umessage=16:break
@Showwindow(%hwnd,0)
endwhile
ocxRelease(Object&)
destroywindow(Control&)
ocxDeInit(pan class=s2>)
|
|
|
| |
|
|
|
| Nur a Fehlerfindung algo vorran a bringen wuerde Yo necesariamente hierfuer primero en loadFile verzichten, porque genau dieses me bastante viel herumzuwuehlen scheint.
Und entonces como desafortunadamente(!) todavía el XProfan11-OCX-Package-Problema wegen el no siempre gleichbleibenden Adressen de Variables. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hola Thomas!
Ganz en el Schnelle: KompilierenMarcaSeparación No muy elegant wegen GetMessage ; mejor wäre wohl SubClassing. Werde Yo nacher veces testen.
@IF: ocx + XProfan11: Yo arbeite daran (Yo weiß, el sage Yo jedesmal :notme
SeeYou Pascal |
|
|
| |
|
|
|
| Uwe Pascal Niemeier
@IF: ocx + XProfan11: Yo arbeite daran (Yo weiß, el sage Yo jedesmal :notme
Yo glaub Usted el aufs Wort, saber Yo el sí de me manche scheinbar garnicht así schwierigen Dinge se aber entonces doch simplemente laenger hinziehen.
Versuchst el umzuschreiben en z.B. globalalloc-Speicher-Adressen?
Wenn Yo helfen kann! |
|
|
| |
|
|
|
Thomas Freier | ¡Hola Pascal,
el Solución sieht ya mejor de. Danach Yo gesucht y No se ha encontrado. Hatten wir el no ya damals con el Adress-RTF y el übergelegten Bild en el Ansicht? Optimal es de meiner Página todavía no, como Yo una Ventana como Lineal el vorhandene lege. Dieses aber beim zeilenweisen Verschieben siempre el enfoque ha (el Stift restos en él). Tiempo sehen si Yo en uno Bucle con Temporizador el WM_PAINT todos pocos Millisekunden auslöse. Ein größeres Problema Yo en Umschaltung vom Hand- en el Textauswahl-Modus. Per Tastatur es kein Problema aber encima SendKey(%,%). Muß el irgendwie encima ocxGet oder ocxPut oder .... tener lugar? Ausschnitt: KompilierenMarcaSeparaciónWindowstyle 82
var hChild& = @Create(Window, hParent&, , 0, 0, (%maxx-60), 38)
while 1
GetMessage
case %message=15:~RedrawWindow(Control&,0,0,$485)--WM_PAINT
case %umessage=16:break
If (%message=$201) & GetFocus(hChild&)
UseCursor 5
SendMessage(hChild&,$112,$F012,0)
UseCursor 0
G2l hParent&
SetWindowPos %HWnd = 0,@G2ly() - 660,38;0
SetFocus(Object&)
~InvalidateRect(%hwnd, 0, 0)
~UpdateWindow(%hwnd)
endif
If GetFocus(icon5&)
@SetActiveWindow(Control&)
SendKey(0,$A4) Alt
SendKey(0,$56) V = Textauswahl
SendKey(0,$56)
EndIf
@Showwindow(%HWND,0)
~RedrawWindow(Control&,0,0,$485)
endwhile
|
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hi Personas!
IF
Versuchst el umzuschreiben en z.B. globalalloc-Speicher-Adressen?
Soweit bin Todavía garnicht Aber: El Objetos incluso voluntad sí de Windows previsto ; außer como, wo Parámetro transferencia voluntad, gibts no viel umzuschreiben. Posesiones aber ya gemerkt, daß XProfan 11 empfindlicher en Speicher/Zugriffsfehler reagiert como el 10él. Werde dafür wohl back to the roots ir necesario.
@ Thomas: Mail müßte inzwischen eingetroffen ser. In el pdf.ocx scheint el gewünschte Función jedenfalls no drin a ser. Und el problema con el AcroRd32.dll es, daß el el en él enthaltenen Objetos/Interfaces no bajo Windows registriert son. Lo muß irgendeine Möglichkeit geben, a Laufzeit como ranzukommen...
SeeYou Pascal |
|
|
| |
|
|
|
Thomas Freier | Bin una Stück más gekommen. Das Lineal se una extra Lineal.exe. Festival hänge Yo esta, una markierten Texto en el Zwischenablage para el Sprachausgabe a kopieren. El *.prf se ejecuta sólo XProfan 10. El exe getestet con Acrobat Reader 5, 8 y 9. El Änderung el Werkzeuge es versionsabhängig y kann con Rechtsklick eigestellt voluntad. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hola Thomas!
Was deine Problemas con el Fernsteuerung des Adobe-Controls betrifft: Dieses Control besteht seinerseits de uno ganzen Reihe de verschachtelten Fenstern; una einfaches SendString oder SendKey ans Handle des Controls reicht como no. Zuvor muß ermittelt voluntad, wecher Teil des eingebetteten Adobe-Fensters genau angesprochen voluntad se: KompilierenMarcaSeparaciónwindow 10,10-755,500
usermessages 16
$H Windows.ph
$H ocx2.ph
$I ocx2.inc
ocxInit()
declare Control&,PageView&
var Object&=ocxCreate(AcroPDF.PDF,%hwnd,10,10,350,350,$50840000,addr(Control&))
var Edit&=create(multiedit,%hwnd,,385,10,350,350)
var Copy&=create(button,%hwnd,>>>,350,380,50,20)
ocxMethod(Object&,loadfile,*C:TEXT.pdf)******* Pfad bitte anpassen! *****
proc EnumChildProc-----------------EnumChildProc
parameters wnd&
if gettext$(wnd&)=AVPageView--kann versionsabhängig sein!
PageView&=wnd&
return 0
endif
return 1
endproc-----------------------------------------
settimer 200---AVPageView wird erst bei laden der PDF erstellt
whileloop 0,9--Darum warten und mehrmals nachfragen
waitinput
~EnumChildWindows(Control&,procaddr(EnumChildProc,2),0)
case PageView&:break
endwhile
killtimer
while 1
waitinput
case %umessage=16:break
if clicked(Copy&)
setfocus(PageView&)
sendstring(PageView&,^c)---STRG + c
settext Edit&,getclip$()
endif
endwhile
ocxRelease(Object&)
destroywindow(Control&)
ocxDe a> ()
Getestet bajo Adobe Reader 8 y 9. BTW: Versión 9 restos después de Ende des Profano-Progs auch no mehr en el Speicher hängen
HTH Pascal |
|
|
| |
|
|
|
Thomas Freier | Gracias Pascal! Damit son wir sí con deiner ocx el bajo VB y Delphi gefundenen Beispielen meilenweit voraus. Werde nun auch el Reader 9 einsetzen. Beim 8él war todavía interessant: wurde una Texto markiert y Mauszeiger blieb überm Texto, öffnete se después de corto Tiempo una Tooltip y fue dieser angesteuert, erschien una Button para Kopieren en el Zwischenablage. Den Acrobat 9 Yo getestet (el braucht 2000 MB!) y no el gesuchten ocx-Características gefunden. Tal vez ha el 30 Tage Versión Einschränkungen. Ärgerlich es, dass Adobe je después de Reader Versión diferente Tastaturbefehle para una y el selbe Función ha. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hi Thomas!
Das wichtigste Objeto, daß el Acrobat mitbringt, heißt AcroExch.App Such veces con el OLE/COM Interface Generator en ProgID
Im Web findet uno oft Demos como dies:
Dim AcroExchApp As Object Conjunto AcroExchApp = CreateObject(AcroExch.App) AcroExchApp.Show
(Am Besten veces danach googeln) Weiß pero no, si dieses CreateObject con el en ocx verwendeten Función identisch/kompatibel es.
Damit son wir sí con deiner ocx el bajo VB y Delphi gefundenen Beispielen meilenweit voraus.
So muß el en efecto ser
SeeYou Pascal |
|
|
| |
|
|