[B+] Tabstopps
Übersicht

![]() |
XenonBetreff: [B+] Tabstopps |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, viel Spaß damit =)
Ist vllt. noch etwas erweiterbar oder an persönliche Wünsche anpassbar, aber das macht ihr schön selbst [syntax="bb":1:bd59d39e8e]Const buttonsize = 25 ; Type für die Gadgets, bei denen ein Tabstopp gemacht wird Type tab_gadget Field ghandle, hwnd End Type ; Fenster und Buttons erstellen window = CreateWindow("Test", 200, 200, 200, 200, Desktop(), 1) xcount = ClientWidth(window)/buttonsize-1 ycount = ClientWidth(window)/buttonsize-1 Dim buttons(xcount, ycount) For j=0 To ycount For i=0 To xcount buttons(i, j) = CreateButton(j*xcount+i+1, i*buttonsize, j*buttonsize, buttonsize, buttonsize, window) ; Button zu den Tabstopps geben CreateTabGadget(buttons(i, j)) Next Next ; Tab Key als HotKeyEvent HotKeyEvent 15, 0, $110 Repeat Select WaitEvent() Case $110 ; Jetzt wird ein Tab gedrückt TabPressed() Case $401 ; Buttonnummer ausgeben For i = 0 To xcount For j = 0 To ycount If EventSource() = buttons(i, j) Then Notify j*xcount+i+1 Next Next Case $803 End End Select Forever ; Gadget hinzufügen zu der Tabstopliste, der Parameter bef ist zum einfügen vor einem anderen Gadget Function CreateTabGadget(ghandle, bef = 0) Local t.tab_gadget, f.tab_gadget ; Tab erstellen t.tab_gadget = New tab_gadget t\ghandle = ghandle t\hwnd = QueryObject(ghandle, 1) ; Wenn Parameter bef übergeben wurde If bef Then ; Suche Gadget und Füge davor ein For f.tab_gadget = Each tab_gadget If f\ghandle = ghandle Then Insert t Before f.tab_gadget Return 0 End If Next End If End Function ; Gadget aus der Tabstoppliste entfernen Function FreeTabGadget(ghandle) Local t.tab_gadget For t.tab_gadget = Each tab_gadget If t\ghandle = ghandle Then Delete t End If Next End Function ; Tab wurde gedrückt Function TabPressed() Local hwnd, i, n Local t.tab_gadget, f.tab_gadget ; Gadget finden das den Focus hat hwnd = GetFocus() t = Null n = 0 i = 0 ; Wenn der aktuelle Tabgadget in der Liste ist, den nächsten auswählen For f.tab_gadget = Each tab_gadget i = i + 1 If f\hwnd = hwnd Then t.tab_gadget = After f.tab_gadget n = i End If Next ; Aktiver Gadget wurde nicht gefunden --> Erster Gadget in der Tabliste wird ausgewählt If i > 0 Then If (n = i) Or (t = Null) Then t = First tab_gadget End If ; Fokus setzen SetFocus t\hwnd End If End Function[/syntax:1:bd59d39e8e] |
||
- Zuletzt bearbeitet von Xenon am Fr, Sep 24, 2004 18:54, insgesamt einmal bearbeitet
morszeck |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kannst du mal den Quelltext dokumentieren? Sonst ist der Quellcode sinnlos... | ||
WinXpProf&SP2, B3D V1.88, B+ V1.40, BMax101Beta, AMD TB1.4GHz, DDR266/768MB, GeForce3@64MB |
![]() |
Xenon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich weis nicht was da nicht verständlich is, für mich liest sich dieser einfache Code wie ein Bilderbuch, aber ich hab mal ein paar Kommentare hinzugefügt... | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group