| |
|
|
Thomas Freier | Versuche justement avec Uwe Pascals ocx-Beispielen [...] den Acrobat Reader einzubinden. allez, mais z.Z. seulement avec qui Version 5.1 [...] Verschiedene Hinweise, qui besagen, dass qui pdf.ocx ausreiche. Konnte je encore pas nachvollziehen. cela eigentliche Problem ist, si fremde la fenêtre sur dem Beispiel déménagé volonté, rester la fois plus ou bien moins graue Bereiche conservé. je bekomme simple keinen automatischen refresh hin. Vom Blue Screen jusqu'à zum frigorifier des PCs beim Ausprobieren avec den ici trouvé Beispielen alles gehabt. KompilierenMarqueSéparation $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>)
|
|
|
| |
|
|
|
| seulement à Fehlerfindung quelque chose vorran trop apporter serait je absolument hierfuer erstmal sur loadFile verzichten, weil oui c'est ca cet mir assez viel herumzuwuehlen scheint.
et ensuite ist là malheureusement(!) encore cela XProfan11-OCX-Package-Problem à cause de qui pas toujours gleichbleibenden Adressen de Variablen. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | allô Thomas!
entier sur qui Schnelle: KompilierenMarqueSéparation pas très elegant à cause de GetMessage ; besser wäre wohl SubClassing. Werde je nacher la fois testen.
@iF: ocx + XProfan11: je travaille daran (je sais, cela sage je chaque fois :notme
SeeYou Pascal |
|
|
| |
|
|
|
| Uwe Pascal Niemeier
@iF: ocx + XProfan11: je travaille daran (je sais, cela sage je chaque fois :notme
je glaub Dir cela aufs mot, kenne je cela oui de mir cela manche scheinbar garnicht so schwierigen Dinge sich mais ensuite doch simple laenger hinziehen.
Versuchst cela umzuschreiben sur z.B. globalalloc-grenier-Adressen?
si je aider peux! |
|
|
| |
|
|
|
Thomas Freier | allô Pascal,
qui Solution sieht déjà besser aus. après habe je gesucht et pas trouvé. Hatten wir cela pas déjà autrefois avec qui Adress-RTF et dem übergelegten Bild dans qui Ansicht? optimal ist es de meiner page encore pas, là je un la fenêtre comme Lineal sur cela vorhandene lege. cet mais beim zeilenweisen Déplacer toujours den Concentrer hat (qui Stift bleibt sur elle). la fois voyons si je dans einer Boucle avec Minuteur den WM_PAINT alle paire Millisekunden auslöse. un größeres Problem habe je chez qui Umschaltung vom main- dans den Textauswahl-Modus. Per clavier ist es ne...aucune Problem mais sur SendKey(%,%). Doit cela irgendwie sur ocxGet ou bien ocxPut ou bien .... avoir lieu? Ausschnitt: KompilierenMarqueSéparationWindowstyle 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 gens!
iF
Versuchst cela umzuschreiben sur z.B. globalalloc-grenier-Adressen?
Soweit suis je encore garnicht mais: qui Objekte selbst volonté oui de Windows bereitgestellt ; sauf là, wohin paramètre transfert volonté, gibts pas viel umzuschreiben. Habe mais déjà gemerkt, qui XProfan 11 empfindlicher sur grenier/Zugriffsfehler reagiert comme qui 10il. Werde pour wohl back to le roots aller doit.
@ Thomas: Mail devrait inzwischen eingetroffen son. dans qui pdf.ocx scheint qui gewünschte Funktion jedenfalls pas drin trop son. et cela Problem avec qui AcroRd32.dll ist, qui cela qui y enthaltenen Objekte/Interfaces pas sous Windows registriert sommes. Es doit irgendeine Possibilité donner, zur Laufzeit là ranzukommen...
SeeYou Pascal |
|
|
| |
|
|
|
Thomas Freier | suis un Stück plus gekommen. cela Lineal wird une extra Lineal.exe. Fest hänge je dabei, une markierten Text dans qui Zwischenablage pour qui Sprachausgabe trop kopieren. qui *.prf fonctionne seulement avec XProfan 10. qui exe getestet avec Acrobat Reader 5, 8 et 9. qui Changement qui Werkzeuge ist versionsabhängig et peux avec Droit eigestellt volonté. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | allô Thomas!
quoi deine Probleme avec qui Fernsteuerung des Adobe-Controls betrifft: cet Contrôle besteht seinerseits aus einer ganzen Reihe de verschachtelten Fenstern; un simple SendString ou bien SendKey à l' Handle des Controls reicht là pas. Zuvor doit ermittelt volonté, wecher partie des eingebetteten Adobe-Fensters oui c'est ca angesprochen volonté soll: KompilierenMarqueSéparationwindow 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 sous Adobe Reader 8 et 9. BTW: Version 9 bleibt pour Ende des Profan-Progs aussi pas plus im grenier hängen
HTH Pascal |
|
|
| |
|
|
|
Thomas Freier | merci Pascal! avec cela sommes wir oui avec deiner ocx den sous VB et Delphi gefundenen Beispielen meilenweit voraus. Werde eh bien aussi den Reader 9 einsetzen. Beim 8il était encore intéressant: wurde un Text markiert et qui Mauszeiger blieb überm Text, öffnete sich pour court Zeit un Tooltip et wurde cette angesteuert, erschien un Button zum Kopieren dans qui Zwischenablage. Den Acrobat 9 habe je getestet (qui braucht 2000 MB!) et aucun qui gesuchten ocx-Funktionen trouvé. peut-être hat qui 30 Tage Version Einschränkungen. Ärgerlich ist, dass Adobe je pour Reader Version différent Tastaturbefehle pour un et qui selbe Funktion hat. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hi Thomas!
cela wichtigste objet, qui qui Acrobat mitbringt, est AcroExch.App Such la fois avec dem OLE/COM Interface Generator im Bereich ProgID
Im Web findet on souvent Demos comment ca:
Faible AcroExchApp As Object Set AcroExchApp = CreateObject(AcroExch.App) AcroExchApp.Show
(Am Besten la fois après googeln) sais mais pas, si cet CreateObject avec qui chez ocx verwendeten Funktion identique/kompatibel ist.
avec cela sommes wir oui avec deiner ocx den sous VB et Delphi gefundenen Beispielen meilenweit voraus.
So doit cela oui aussi son
SeeYou Pascal |
|
|
| |
|
|