| |
|
|
| Gutes Skelett für eine TrayAPP? Funktionierts überall?
{$cleq}
const appTitle=TrayApp
//messages
const m_base=wm_user+4096
const m_tray_TrackMenu_exitApp=m_base+0
//defaults
const d_hwndSizeX=300
const d_hwndSizeY=450
long hwnd.showMode=1
windowTitle apptitle
windowStyle 2 | 4 | 8 | 16 | 512 | 1024
window maxx,maxy - 0,0
hwnd.showWindow(false)
moveWindow(hwnd,(maxx/2-d_hwndSizeX/2),(maxy*0.4-d_hwndSizeY/2),d_hwndSizeX,d_hwndSizeY,false)
long tray.iconH=tray.init()
userMessages wm_close
do {
select TrayIcon(msg,1)
caseof wm_lButtonDown,wm_lButtonDblClk : hwnd.showWindow(true-hwnd.showMode)
caseof wm_rButtonDown
select tray.trackMenu()
caseof m_tray_TrackMenu_exitApp : break
endSelect
endSelect
select uMessage
caseof wm_close : hwnd.showWindow(false)
endSelect
waitinput
}
tray.close(tray.iconH)
end
tray.init{
long h=create(hIcon,A)
trayIcon(add,hWnd,1,h,appTitle)
return h
}
tray.close(long h){
int bVal=trayIcon(delete,hWnd,1)
deleteObject h
return bVal
}
tray.trackMenu{
createMenu
appendMenu m_tray_TrackMenu_exitApp,Beenden
setActiveWindow(hWnd)
int bVal=trackMenu()
setMenuitem 0
return bVal
}
hwnd.showWindow(int mode){
ifnot hwnd.showMode==mode {
showWindow(hWnd,mode)
}
if mode {
setForeGroundWindow(hwnd)
setActiveWindow(hwnd)
}
hwnd.showMode=mode
return true
}
|
|
|
| |
|
|
|
Jac de Lad | |
|
| 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 | 25.12.2007 ▲ |
|
|
|
|
Rolf Koch | Jepp Vista mag es scheinbar auch sehr |
|
|
| |
|
|
|
Michael Wodrich | Das ist ja gemogelt - Einzel- und Doppelklick zusammen... |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 26.12.2007 ▲ |
|
|
|
|
| Gib zu, es reagiert perfekt. So oft man mit links klickt - so oft wird hwndAnzeige korrekt getoggelt.
Um Einzelklick korrekt abzufangen könnte man es wie MS machen - gutes Beispiel ist die sndvol32.exe. Schnell sieht man das dort gewartet wird. (wofür es x Lösungsansätze gibt) |
|
|
| |
|
|
|
Michael Wodrich | Klang ja schon in meiner Frage an Roland an ...ob wir das selbst machen sollen.
Schön wäre ein sauberes Doppelklick-Ereignis.
Schöne Grüße Michael Wodrich
Gib zu, es reagiert perfekt.
Muß ich das extra erwähnen? |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 26.12.2007 ▲ |
|
|
|
|
| Das ist ja der Witz, solch ein sauberes Doppelklickereignis bekommst Du ja! Es ist halt Dir überlassen ob und wie Du auf den einfachen Klick reagierst. Es wäre ja auch schade wenn der einfache Klick erst nach Ablauf der Doppelklickzeit gemeldet würde. |
|
|
| |
|
|
|
| Gut, dann kann man das Skelett vielleicht noch mit ein paar Vervollständigungen abschließen.
Verbesserungsvorschläge? |
|
|
| |
|
|
|
| hm 2x geladen ist ca. 50 mal zu wenig, klickst du also hier [...] und sagst obs funzt... |
|
|
| |
|
|
|
Christian Eichler | iF
hm 2x geladen ist ca. 50 mal zu wenig, klickst du also hier [...] und sagst obs funzt...
Scheint einwandfrei zu funktionnieren (Win XP SP2). Linksklick wird ein Fenster aufgemacht, Rechtsklick ein Menü |
|
|
| Debian Lenny, Intel Celeron 2,8 Ghz, 768 MB Ram && Win XP Pro, Intel C2D 1,66Ghz, 2 GB Ram ... PROFAN² 6.6 | 27.12.2007 ▲ |
|
|
|
|
Jörg Sellmeyer | Christian Eichler
iFhm 2x geladen ist ca. 50 mal zu wenig, klickst du also hier [...] und sagst obs funzt... Scheint einwandfrei zu funktionnieren (Win XP SP2). Linksklick wird ein Fenster aufgemacht, Rechtsklick ein Menü
Dito |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 27.12.2007 ▲ |
|
|
|
|
| Hab kein Linux mit ui hier - was sagt wine? |
|
|
| |
|
|