Français
Forum

LoadFile im wproc le cas

 
pas-XPSE:
DECLARE __cf1&,__cf2&
Def __cf1(2) !KERNEL32,GetProcAddress
Def __cf2(1) !KERNEL32,GetModuleHandleA
__cf1&=__cf1(__cf2(user32.dll),SetWindowLongA)
__cf2&=__cf1(__cf2(user32.dll),CallWindowProcA)
 $DEFINE XPSE
CLS
VAR _OWP&=call(__cf1&,%HWND,-4,PROCADDR(WPROC,4))
PRINT LOADFILE$(,)
WAITINPUT
FIN

proc WPROC

    PARAMETERS WND&, MSG&, WPARAM&, LPARAM&
    call(__cf2&,_OWP&,WND&, MSG&, WPARAM&, LPARAM&)

endproc


cls
var _owp&:=setwindowlong(hwnd,gwl_wndproc,procaddr(wproc,4))
imprimer loadfile$(,)
waitinput
end

proc wproc(Wnd&, Msg&, Wparam&, Lparam&)

    callwindowproc(_owp&,Wnd&, Msg&, Wparam&, Lparam&)

endproc


qui Source zeigt (glaube ist mais un altes Problem!) cela LoadFile$ pas den gewünschten Wert zurückgibt.

je veux ici pas sur dem Problem rumhacken mais es simple nochmals ansprechen. je denke avec ChooseDir verhält es sich ähnlich.
 
23.10.2006  
 




RGH
si on ins Profan-interne Messagehandlich eingreift, etwa par den Fastmode ou bien mittels eines Umbiegens qui Windows-Prozeduren, darf on sich pas wundern, si le vordefinierten Dialoge pas plus comment gewünscht marcher, là vous sur cela Profan-interne Messagehandling angewiesen sommes.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.10.2006  
 




RGH
si on sich mais tzrotzdem cela écrivons eigener Dialoge ersparen veux, peux on oui avant dem Aufruf de LoadFile$ qui ursprüngliche Windows-Procédure (findet sich exakt trop diesem Zweck dans &WinProc) einsetzen et direct après wieder sur qui eigene commuter, etwa so:
DECLARE __cf1&, __cf2&, MyWProc&
Def __cf1(2) !KERNEL32,GetProcAddress
Def __cf2(1) !KERNEL32,GetModuleHandleA
__cf1&=__cf1(__cf2(user32.dll),SetWindowLongA)
__cf2&=__cf1(__cf2(user32.dll),CallWindowProcA)

proc WPROC

    Paramètres WND&, MSG&, WPARAM&, LPARAM&
    call(__cf2&,_OWP&,WND&, MSG&, WPARAM&, LPARAM&)

endproc

Proc WLoadFile

    Paramètres titel$, filtre$
    call(__cf1&,%HWND,-4,&winproc)
    var erg$ = LoadFile$(titel$, filtre$)
    call(__cf1&,%HWND,-4,MyWProc&)
    return erg$

ENDPROC

Hauptprogramm
-------------
CLS
MyWProc& = PROCADDR(WPROC,4)
VAR _OWP&=call(__cf1&, %HWND, -4,MyWProc&)
PRINT WLoadFile(,)
WAITINPUT
call(__cf1&,%HWND,-4,&winproc)
FIN

ah oui: avant dem Fin doit qui Original-Procédure aussi encore eingewsetzt volonté, là es sonst beim Programmende zum Absturz venons peux.

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.10.2006  
 



OK - leuchtet un. on muss alors pour chaque Contrôle welches on SubClasst avant dem Aufruf qui vordefinierten Dialoge qui originalWinProzedur wiederherstellen - cela deckt sich aussi avec meinen Erfahrungen.

je trouve un Hinweis dans qui Hilfedatei chez den Vordefinierten Dialogen et chez ProcAddr ist angebracht et peux viele Verzweiflungen im Vorraus verhindern.
 
23.10.2006  
 




RGH
oui, je sollte es dans qui Aider à passender Stelle erwähnen.
qui geschickteste Possibilité wäre sûrement, aucun vordefinierten Dialoge dans solchen Programmen trop verwenden. qui qui Windowsprozedur selbst écrit, schafft es sûrement aussi, qui Dialoge selbst trop écrivons. ;)

Salut
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.10.2006  
 



RGH
oui, je sollte es dans qui Aider à passender Stelle erwähnen.
qui geschickteste Possibilité wäre sûrement, aucun vordefinierten Dialoge dans solchen Programmen trop verwenden. qui qui Windowsprozedur selbst écrit, schafft es sûrement aussi, qui Dialoge selbst trop écrivons. ;)

Salut
Roland


bof und dir réellement doch et avec ca eleganter - besonders si on so fainéant ist comment je es suis!

Um es kurz trop veranschaulichen - je beschäftige simple qui gleiche Exe avec neuem Prozess pour qui nötige devoir...
//seulement zur Veranschaulichung!
include usermessages.pcu = um.
include pipe.pcu = pipe.
include scrollarea.inc

si %parcount

    sélectionner par$(1)

        caseof loadfile

        app.loadfile

        caseof browsefolder

        app.browseForFolder
        otherwise
        end

    endselect

endif

var hwnd:=new(ScrollArea,0,(%maxx/2-305),(%maxy/2-300),610,430,610-18,600,sa_complete | SA_DESKTOPISDIALOG - SA_MINIMIZEBOX,apptitle)
var _owp&:=setwindowlong(hwnd,gwl_wndproc,procaddr(wproc,4))
imprimer hwnd.loadfile$(,)
waitinput
end

proc wproc(Wnd&, Msg&, Wparam&, Lparam&)

    callwindowproc(_owp&,Wnd&, Msg&, Wparam&, Lparam&)

endproc

proc hwnd.loadfile(desc$,mask$)

    enablewindow hwnd::window&,0
    var sid$:=str$(gettickcount)
    var pipe&:=pipe.create(sid$)
    pipe.push pipe&,desc$
    pipe.push pipe&,mask$
    pipe.push pipe&,str$(%hwnd)
    shell par$(0)+ loadfile +sid$
    um.add 7788

    tandis que pipe.get(pipe&)<>done

        waitinput

    Wend

    um.sub 7788
    sleep 100
    pipe.pop pipe&
    var result$:=pipe.pop(pipe&)
    pipe.close pipe&
    enablewindow hwnd::window&,1
    setactivewindow(hwnd::window&)
    return result$

endproc

proc app.loadfile

    var sid$:=par$(2)
    var pipe&:=pipe.create(sid$)
    var desc$:=pipe.pop(pipe&)
    var mask$:=pipe.pop(pipe&)
    var hwnd&:=val(pipe.pop(pipe&))
    var result$:=loadfile$(desc$,mask$)
    pipe.push pipe&,done
    pipe.push pipe&,result$
    pipe.close pipe&
    sendmessage(hwnd&,7788,0,0)
    end

endproc

 
23.10.2006  
 




Frank
Abbing

on muss alors pour chaque Contrôle welches on SubClasst avant dem Aufruf qui vordefinierten Dialoge qui originalWinProzedur wiederherstellen - cela deckt sich aussi avec meinen Erfahrungen.


mais pas avec meinen. là donnais es seulement avec dem Hauptfenster ab et à Probleme, nie mais avec anderen Controls. quoi oui aussi logisch ist, là sich qui qui Fastmode seulement sur %hwnd bezieht.
 
23.10.2006  
 




RGH
on a ici deux Tatbestände vorliegen, qui direct dans XProfan intervenir: qui Fastmode et qui Umdefinierung qui Windowsprozeduren.

oui c'est ca pris bezieht sich qui Fastmode seulement sur cela XProfan-interne Messagehandling, qui par cette weitgehend abgeschaltet wird. cela peux (doit mais pas dans chaque le cas) Auswirkungen sur qui vordefinierten Dialoge avons.

cela Zweite sommes qui Windowsroutinen. en hat XProfan 4 Strück: Hauptfenster (&WinProc), Hauptfenster im Dialogstil (&WinDProc), Dialogfenster avec @Créer(Dialog (&DlgProc) et la fenêtre avec @Créer(Fenêtre (&DlgWProc). qui vordefinierten Dialoge avons comme Elternfenster toujours cela Hauptfenster, si es car existiert, ou bien simple 0.

comment De toute façon: qui am offenen Herzen de XProfan operiert, doit avec cela le calcul, den une ou bien anderen Bypass poser trop doit. ;)
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
23.10.2006  
 



Frank Abbing
Frank Abbing
on muss alors pour chaque Contrôle welches on SubClasst avant dem Aufruf qui vordefinierten Dialoge qui originalWinProzedur wiederherstellen - cela deckt sich aussi avec meinen Erfahrungen.


mais pas avec meinen. là donnais es seulement avec dem Hauptfenster ab et à Probleme, nie mais avec anderen Controls. quoi oui aussi logisch ist, là sich qui qui Fastmode seulement sur %hwnd bezieht.


Na ensuite exposition Dir la fois que voici à Frank, je denke cela peux Votre attitude changement:
 {$cleq}
cls
var listbox&:=createlistbox(hwnd,,10,10,100,100)
var _owp&:=setwindowlong(listbox&,gwl_wndproc,procaddr(wproc,4))
imprimer loadfile$(,)
waitinput
end

proc wproc(Wnd&, Msg&, Wparam&, Lparam&)

    callwindowproc(_owp&,Wnd&, Msg&, Wparam&, Lparam&)

endproc

ici wird qui listbox& gesubclasst - et Loadfile verhält sich dämlich comment erwartet...
 
23.10.2006  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

871 Views

Untitledvor 0 min.
E.T.08.01.2012

Themeninformationen

cet Thema hat 3 participant:

iF (4x)
RGH (4x)
Frank Abbing (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie