| |
|
|
- Seite 1 - |
|
holmol93 | Halloooo miteinander
Ist es irgendwie möglich, in einem Dialog abzufragen, ob die Entf Taste gedrückt wurde? %scankey scheint ja keine Wirkung zu haben (nur im Hauptfenster)...
Habe das Forum mal ein wenig durchforstet, da war immer von Abfragen über die Windows API Funktionen die Rede... mit denen habe ich mich bis jetzt aber allgemein noch nicht befasst und weiss rein vom Verständnis und der Implementierung garnichts damit anzufangen
Hätte jemand ein Beispiel für diesen Fall? (Im "alten" XProfan Forum, welches man noch via Google findet, gab es mal ein ähnliches Thema, aber die Beiträge sind nicht mehr abrufbar )
EDIT:
Um das ganze klarer zu machen: Ich möchte die Entf Taste abfragen und, falls ein Listboxinhalt ausgewählt wurde, soll dieser Inhalt aus der DB, aus der er geladen wurde, gelöscht werden.
Also nach dem Motto: WENN ENTF Taste gedrückt UND Inhalt ausgewählt dann: ausgewählter Inhalt in String einlesen, DB öffnen, Inhalt suchen und löschen. Listbox komplett löschen und DB neu in Listbox laden.
Soll den Effekt haben, wie man wenn mittels ENTF einen Datensatz löschen könnte. Bis jetzt realisiere ich das mit einem "Löschen" Button, aber mittels ENTF (so kenn ich das zB aus Access) ists eleganter
Gruess us Bärn,
Danny |
|
|
| |
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
Thomas Freier | Der einfachste Weg geht über AddHotKey. Mini Beispiel KompilierenMarkierenSeparierencls
var dlg&=Create("Dialog",%hwnd,"",10,10,700,300)
var GridBox&=Create("GridBox", dlg&, "Eins;2;144;Zwei;2;144;Drei;2;144;Vier;2;144;NR;0;0", 0, 20, 20, width(dlg&)-40, height(dlg&)-70)
clearlist
MoveListToHandle(GridBox&)
AddString(GridBox&,"Eins | Zwei | Drei | Vier | 3")
AddString(GridBox&,"Zwei | Drei | Vier | Fünf | 1")
AddString(GridBox&,"Drei | Vier | Fünf | Sechs | 4")
AddString(GridBox&,"Vier | Fünf | Sechs | Sieben | 2")
AddHotKey 7001, 12, 0
AddHotKey 7001, 46, 0
while 1
waitinput
case %key=2:BREAK
If Getfocus(GridBox&)
If GetCurSel(GridBox&) > -1
'ggf. MenuItem und Button
case MenuItem(7001) OR MenuItem(7002): Messagebox("Entf gedrückt\nsoll der Datensatz Nr. " \
+GetText$(GridBox&, GetCurSel(GridBox&), 4)\
+"\ngelöscht werden","Hinweis",32)
endif
setfocus(GridBox&)
endif
wend
end
Bei DBs "schleppe" ich in der letzten Spalte die Satznummer mit (alte Marotte). Veränderungen können dann immer unmittelbar über die Satznummer erfolgen. AddHotKey hat auch seine Nachteile.
Sollte es wirklich eine Listbox gemeint sein und der Text nicht mehrfach in der DB gesucht werden soll, besteht bei mir der Listboxstring aus TEXT+Space(ausreichend)+"|"+DB-NR. Die Nummer dann per SubStr$($, -1, "|") ermitteln. |
|
|
| |
|
|
|
|
holmol93 | Heyhooo merci viumau!
Dass es so geht, hätte ich nicht gedacht, weil ich hatte das mit den Hotkeys schon ausprobiert
Und merci für das Beispiel mit der Gridbox! Ich wusste garnicht, dass es so etwas gibt, weil ich meine Fenster im ROC zusammenbastle... Wenn ich mehrere Spalten hatte, habe ich immer 2 listboxen nebeneinander gestellt :O (Ich weiss, listview.dll gibt es auch noch, aber die fand ich zu umständlich für das, was ich damit machen wollte. )
Vielen Vielen Dank!
Greeetz,
Danny |
|
|
| |
|
|
|
Thomas Freier | |
|
| |
|
|
|
holmol93 | Hey
Ich find Gridboxen sind in der "Urfassung" eh eher das, was ich mir vorgestellt habe um Datensätze anzuzeigen... Ich wollte für so etwas einfach nicht jedes mal ein Listview bemühen und weil ich nicht wusste, dass es Gridboxen gibt, habe ich zwangsläufig Listboxen dafür bemüht
Mein Programm loggt aber zB Logon Vorgänge im Programm für jeden Benutzer separat und wenn man dieses Logfile aufruft zeigt sich jetzt ein deutlicher Geschwindigkeitsvorteil im Vergleich zu Listboxen. Da konnte man bei vielen Einträgen praktisch zuschauen, wie die geladen wurden :o)
Greeetz,
Danny |
|
|
| |
|
|