Italia
Foro

Probleme mit Set("FastMode",1)

 

Jac
de
Lad
Hallöle,

ich hab mal in der XProfan-Aiuto gestöbert und bin auf eine Möglichkeit gekommen, das Systemmenü eines Programms zu erweitern. Dann habe ich noch was gespostet...dann kam was zurück...jedenfalls habe ich jetzt folgendes Problem:

Wenn ich das einbaue (mit Systemmenü und so) dann reagieren einige Buttons auf Anklicken zweimal. Das liegt an Set(FastMode,1), soviel steht fest. Jetzt meine Frage: Kann man das mit dem Systemmenü so realisieren, dass der Fastmode nicht eingeschaltet werden muss, bzw. wie kann ich das geisterhafte Doppelklicken verhindern?

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
10.11.2005  
 



Hier würde es sehr helfen wenn du ein Minimalbeispiel posten könntest.
 
10.11.2005  
 




Jac
de
Lad

KompilierenMarkierenSeparieren
 $H C:ProgrammeXProfan 8.0Includewindows.ph
 $H C:ProgrammeXProfan 8.0Includemessages.ph
 $H C:ProgrammeXProfan 8.0Includecommctrl.ph

Proc SystemMenu

    Parameters hWnd&,Message&,wParam&,lParam&

    If Equ(Message&,~WM_SYSCOMMAND)

        If Equ(wParam&,5000)

            Messagebox("Programm 1.0","Message",64)

        endif

    EndIf

    Return ~CallWindowProc(OldWndProc&,hWnd&,Message&,wParam&,lParam&)

EndProc

declare up&,down&,oldwndproc&,up%,Plugin&[64],PCount%
windowstyle 26
WindowTitle "Testprogramm"
window 100,100-800,632
Set("FastMode",1)
~AppendMenu(~GetSystemMenu(%hWnd,0),~MFT_SEPARATOR,0,0)
~AppendMenu(~GetSystemMenu(%hWnd,0),~MFT_STRING,5000,"Über Programm 1.0")
OldWndProc&=~GetWindowLong(%hWnd,~GWL_WNDPROC)
~SetWindowLong(%hWnd,~GWL_WNDPROC,ProcAddr("SystemMenu",4))
up&=CREATEBUTTON(%HWnd,"/",1,1,194,20)
down&=CREATEBUTTON(%HWnd,Add$(Chr$($5C),Chr$($2F)),1,580,194,20)

whileloop 0,13

    Plugin&[&Loop]=Control("Button",Str$(&Loop),Add($40008088,If(LT(PCount%,9),$10000000,0)),2,Add(Mul(62,&Loop),22),194,60,%HWnd,Add(1001,&Loop),%Hinstance)
    Inc PCount%

wend

while 1

    EnableWindow up&,Neq(up%,0)
    EnableWindow down&,GT(Sub(Sub(PCount%,9),up%),0)
    waitinput

    if GetFocus(up&)

        Hochscrollen
        ShowWindow(Plugin&[Sub(up%,1)],1)
        Dec up%

        Whileloop up%,Add(up%,8)

            SetWindowPos Plugin&[&Loop]=2,Add(22,Mul(62,Sub(&Loop,up%)))-194,60

        wend

        ShowWindow(Plugin&[Add(up%,9)],0)

    elseif GetFocus(down&)

        Runterscrollen
        ShowWindow(Plugin&[up%],0)

        Whileloop up%,Add(up%,8)

            SetWindowPos Plugin&[Add(&Loop,1)]=2,Add(22,Mul(62,Sub(&Loop,up%)))-194,60

        wend

        ShowWindow(Plugin&[Add(up%,9)],1)
        Inc up%

    end
wend

Ich hoffe, du kannst was damit anfangen...nur noch mal die Problemstellung:

Wenn ich Set(FastMode,1) weglasse stirbt das Prog beim hinzufügen des Eintrags Über Programm 1.0.
Wenn ich es aber einbringe funzt das, doch das Scrollen circa up& und down& klickt immer zweimal.

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
11.11.2005  
 




Jac
de
Lad
Verdammt! Kann mir jemand sagen, wie Io l' Quelltext richtig Mostra lasse? Ich kriegs einfach nicht gebacken!!!

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
11.11.2005  
 



LOl
KompilierenMarkierenSeparieren - ich verbesser Dein Posting mal...

Übrigens - Du kannst Deinen Postings doch auch selbst bearbeiten...
 
11.11.2005  
 



Wehe es behauptet einer es sei Beschiss.
KompilierenMarkierenSeparieren
 {$compiler p8}
 {$runtime p8}
 $H Windows.ph
 $H Messages.ph
 $H Commctrl.ph

Proc Systemmenu

    Parameters Hwnd&,Message&,Wparam&,Lparam&

    If Equ(Message&,~Wm_syscommand)

        If Equ(Wparam&,5000)

            Messagebox("Programm 1.0","Message",64)

        Endif

    Endif

    Return ~Callwindowproc(Oldwndproc&,Hwnd&,Message&,Wparam&,Lparam&)

Endproc

Declare Up&,Down&,Oldwndproc&,Up%,Plugin&[64],Pcount%
Windowstyle 26
Windowtitle "Testprogramm"
Window 100,100-800,632
Set("FastMode",1)
~Appendmenu(~Getsystemmenu(%Hwnd,0),~Mft_separator,0,0)
~Appendmenu(~Getsystemmenu(%Hwnd,0),~Mft_string,5000,"Über Programm 1.0")
Oldwndproc&=~Getwindowlong(%Hwnd,~Gwl_wndproc)
~Setwindowlong(%Hwnd,~Gwl_wndproc,Procaddr("SystemMenu",4))
Up&=Createbutton(%Hwnd,"/",1,1,194,20)
Down&=Createbutton(%Hwnd,Add$(Chr$($5C),Chr$($2F)),1,580,194,20)

Whileloop 0,13

    Plugin&[&Loop]=Control("Button",Str$(&Loop),Add($40008088,If(Lt(Pcount%,9),$10000000,0)),2,Add(Mul(62,&Loop),22),194,60,%Hwnd,Add(1001,&Loop),%Hinstance)
    Inc Pcount%

Wend

While 1

    Enablewindow Up&,Neq(Up%,0)
    Enablewindow Down&,Gt(Sub(Sub(Pcount%,9),Up%),0)
    Waitinput
    casenot (external("USER32","GetAsyncKeyState",1)<>0) : continue

    If Getfocus(Up&)

        Hochscrollen
        Showwindow(Plugin&[Sub(Up%,1)],1)
        Dec Up%

        Whileloop Up%,Add(Up%,8)

            Setwindowpos Plugin&[&Loop]=2,Add(22,Mul(62,Sub(&Loop,Up%)))-194,60

        Wend

        Showwindow(Plugin&[Add(Up%,9)],0)

    Elseif Getfocus(Down&)

        Runterscrollen
        Showwindow(Plugin&[Up%],0)

        Whileloop Up%,Add(Up%,8)

            Setwindowpos Plugin&[Add(&Loop,1)]=2,Add(22,Mul(62,Sub(&Loop,Up%)))-194,60

        Wend

        Showwindow(Plugin&[Add(Up%,9)],1)
        Inc Up%

    
/a> Wend
 
11.11.2005  
 




Jac
de
Lad
Ahh! Ich merks mir. Bin mal auf deine Antwort gespannt. Wenns nicht geht, muss ich halt den Eintrag ausm Systemmenü wieder entfernen.

Schönes Wochenende,
Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
11.11.2005  
 



Ich glaub ich hab schon geantwortet.
 
11.11.2005  
 




Jac
de
Lad
Huch, da warste wieder schneller als ich...ich habs ausprobiert: Scrollt nicht.

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
11.11.2005  
 



Ich hätts net gepostet wenns net wenigstens bei mir funzen würde. Tjo hm...
 
11.11.2005  
 




Michael
Wodrich
Bei mir funktionieren beide, allerdings ohne Beschriftung der Buttons...
 
Programmieren, das spannendste Detektivspiel der Welt.
11.11.2005  
 



Lol also 3 Varianten
 
11.11.2005  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.320 Views

Untitledvor 0 min.

Themeninformationen

Dieses Thema hat 3 subscriber:

Jac de Lad (8x)
iF (6x)
Michael Wodrich (3x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie