| |
|
|
- Page 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 ▲ |
|
|
|
|
| |
|
- Page 1 - |
|
| 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
|
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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... |
|
|
| |
|
|
|
Michael Wodrich | Bei mir funktionieren beide, allerdings ohne Beschriftung der Buttons... |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 11.11.2005 ▲ |
|
|
|
|
| Lol also 3 Varianten |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
Michael Wodrich | hallo Jac,
besorge Dir doch mal AutoIt3. Dort gibt es ein Tool namens AU3Info.
Damit kannst Du die Controls ausloten.
Bei deinem letzten Button in der Anzeige stimmt was nicht - er ist nicht fortlaufend numeriert. Also ist in der Programmlogik etwas falsch.
Ach: und der UP-Button hat Nr 1000, der DOWN-Button 1001 und der erste in der Liste hat auch 1001... der letzte ohne Scrollen dann 1014
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 11.11.2005 ▲ |
|
|
|
|
Jac de Lad | Naja, mein eigentliches Programm hat ansonsten keine Probleme, nur dass es eben beim Klicken doppelt reagiert. Ich wollte jetzt nur nicht zu viel Quelltext offenlegen...
Ich schau mal nach wegen AutoIt3!
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 | Ähhh, hmmm...was soll das Programm eigentlich machen? Also ich kann jetzt keinen sinnvollen Zweck per AutoIt3 finden und ich weiß nicht, was das mit meinem Problem zu tun hat! Bitte belehre mich eines besseren!
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 ▲ |
|
|
|
|
Michael Wodrich | AutoIt ist ein Fernsteuerer (war es zu Anfang jedenfalls mal) der Tastendrücke und Mausaktionen absetzt um Programme wie von Geisterhand zu bedienen. Inzwischen hat dieses Programm enorm zugelegt und kann noch mehr (aber eigentlich nichts was Profan nicht auch potuto).
Eigentlich geht es nur um das im Freeware-Paket enthaltene Zusatzprodukt AU3Info, welches als TopMost-Fenster alles anzeigt was sich zu Controls abfragen läßt: Handle, Texte, IDs, Größenangaben, Farben, ...
Dieses Tool ist sozusagen ein Kiebitz der schnell mal verrät, welches Control gerade aktiv ist und wie es eingestellt ist. Zur Fehlersuche ist es enorm hilfreich, aber auch interessant zur Untersuchung bestehender Fenster (wie haben die das denn gelöst...).
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 12.11.2005 ▲ |
|
|
|
|
Jac de Lad | Ist es normal, dass ich nach dem Einstellen von FastMode 1 keine Dialogfenster mehr erstellen kann?
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 | 01.12.2005 ▲ |
|
|
|