Von Gadget zu Gadget springen ohne Tab

Anfängerfragen zum Programmieren mit PureBasic.
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Von Gadget zu Gadget springen ohne Tab

Beitrag von marco2007 »

Hi,

wieder `mal ne blutige Anfängerfrage. Ich möchte nicht nur mit dem Tab von Gadget zu Gadget springen, sondern auch mit den Pfeiltasten. Ich habe im Forum schon gesucht, aber wahrscheinlich mit den falschen Suchbegriffen gesucht.

Laberecke:
Vielleicht ein allgemeine Frage an TS-Soft, And51, Kaeru Gaman, Kiffi, ....Wie lange programmiert Ihr schon und über welche zusätzlichen Computerkenntnisse sollte man Bescheid wissen, um so gut zu werden? Ich will auf kenen Fall schleimen, aber es fällt auf, daß Ihr fast immer bei den Lösungsfindern seid......

Danke im voraus
Marco
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Von Gadget zu Gadget springen ohne Tab

Beitrag von Kiffi »

> Ich möchte nicht nur mit dem Tab von Gadget zu Gadget springen, sondern
> auch mit den Pfeiltasten.

Du weißt schon, dass das keinem Standard für die Bedienung einer GUI
entspricht? Mit Return von Gadget zu Gadget zu springen ist ebenso unüblich,
hat sich aber irgendwann mal als Unsitte eingebürgert. Mit welchen
Pfeiltasten willst Du denn springen? Pfeil runter und Pfeil rauf? Die anderen
würden nicht funktionieren, denn dann kann man keinen
Stringgadget-Inhalt mehr editieren.

Ist das ein besonderer Kundenwunsch?

> aber es fällt auf, daß Ihr fast immer bei den Lösungsfindern seid......

das liegt daran, dass immer die selben Fragen gestellt werden und ich weiß,
wie man die Suchmaschine bedient ;-)

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

hi marco2006,

ich hab dir ein kleines beispiel gebastelt.
links und rechts wechselt das gadget durch simulieren der tab taste,
bei oben und unten wird mit SetActiveGadget() gewechselt.

Code: Alles auswählen

EnableExplicit
Procedure Keystroke(key)
  keybd_event_(key,0,0,0)
  keybd_event_(key,0,#KEYEVENTF_KEYUP,0)
EndProcedure

Procedure ChangeActiveGadget(Count)
  Protected ActiveGadget
  ActiveGadget = GetActiveGadget()
  If ActiveGadget < 0
    SetActiveGadget(0)
  Else
    ActiveGadget + Count
    If IsGadget(ActiveGadget)
      SetActiveGadget(ActiveGadget)
    Else
      SetActiveGadget(0)
    EndIf
  EndIf
EndProcedure

If OpenWindow(0, 0, 0, 222, 200, "ButtonGadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
  ButtonGadget(0, 10, 10, 200, 20, "Standard Button")
  ButtonGadget(1, 10, 40, 200, 20, "Left Button", #PB_Button_Left)
  ButtonGadget(2, 10, 70, 200, 20, "Right Button", #PB_Button_Right)
  ButtonGadget(3, 10,100, 200, 60, "Multiline Button  (längerer Text wird automatisch umgebrochen)", #PB_Button_MultiLine)
  ButtonGadget(4, 10,170, 200, 20, "Toggle Button", #PB_Button_Toggle)
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        Break
      Case #WM_KEYDOWN
        Select EventwParam()
          Case #VK_LEFT
            keybd_event_(#VK_SHIFT,0,0,0)
            Keystroke(#VK_TAB)
            keybd_event_(#VK_SHIFT,0,#KEYEVENTF_KEYUP,0)
          Case #VK_RIGHT
            Keystroke(#VK_TAB)
          Case #VK_UP
            ChangeActiveGadget(-1)
          Case #VK_DOWN
            ChangeActiveGadget(1)
        EndSelect
    EndSelect
  ForEver
EndIf
auf die nachteile hat dich Kiffi ja schon hingewiesen ;)
PureBasic 4.40 (Windows - x86)
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Kundenwunsch

Beitrag von marco2007 »

Ne, da ich noch Anfänger bin, habe ich mit dem Designer angefangen. Das ist ja im Prinzip einfach, da der Code ja automatisch erstellt wird. Nun würde ich es begrüßen mit den Pfeiltasten von Gadget zu Gadget und nicht nur mit dem Tab zu springen....wäre natürlich super, wenn das funktionieren würde (am besten mit allen, wie bei anderen Programmen)...
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> (am besten mit allen, wie bei anderen Programmen)...
Welche anderen Programme? Windowsprogramme kannste damit nicht
meinen. die machen sowas normallerweise nicht. Nur in Spielen ist so eine
Steuerung verbreitet. Da macht es ja auch Sinn.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Pfiltasten

Beitrag von marco2007 »

Hi Tobe,

danke. Wahnsinn, wie schnell gewisse Leute eine Code schreiben....Ich habe noch einen langen Weg vor mir....ich hätte natürlich schon die nächste Frage, aber mir ist das irgendwie schon peinlich....

Jetzt muss ich einmal den Code von Tobe verstehen lernen...

Hi Ts-Soft,

in der Firma haben wir so eine Access-Anwendung bei der kann man mit den Pfeiltasten (mit allen) hin und her springen....

Gruss
Marco
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> in der Firma haben wir so eine Access-Anwendung bei der kann man mit den Pfeiltasten (mit allen) hin und her springen....
wahrscheinlich innerhalb einer Tabelle (von Zelle zu Zelle), aber nicht von
Control zu Control
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
tobe
Beiträge: 146
Registriert: 14.09.2006 17:33
Wohnort: Oktoberfest

Beitrag von tobe »

ich hab es jetzt auch mal ausprobiert, zb in den systemeigenschaften von windows kann ich auch mit den cursortasten rumspringen, an textboxen bleibt man dann hängen und rahmen begrenzen die sache auch.

ps: die hälfte des codes ist einfach aus der pb-hilfe kopiert ;)
PureBasic 4.40 (Windows - x86)
marco2007
Beiträge: 906
Registriert: 26.10.2006 13:19
Kontaktdaten:

Access

Beitrag von marco2007 »

...da sind verschiedene Fenster: z.B.: bei einem muss man Kunden, Bestellnummer, etc. eingeben.. Diese Eingabegadgets in Access entsprechen Stringgadgets in PB....also Tabelle würde ich diese nicht nennen...genau da sind wir bei meinem eigentlichen Problem. Kurz erklärt: Terminalserver, eine Datenbank -> extrem langsam! Mein Ziel ist es nun, zumindenst einige Aktionen per kleiner exe-Datei auszuführen, ohne ständig auf Access zu zugreifen, ich bin kein Programmierer und C++ und alles andere wäre mir auch viel zu schwer und kompliziert und so habe ich mich für PB entschieden ...es geht um Lagerbuchung...man gibt Material, Format, ... in der Applikation ein und erst bei "ok" wird kurz auf Access zugegriffen....ich hoffe, ihr versteht, was ich meine...naja, programmiert habe ich das letzte Mal vor 18 Jahre mit AmigaBasic....es geht ja um nichts weltbewegendes...

Da hätte ich auch schon die nächste Frage. Kann ich eine vba-Code (Access) via PB ausführen?

Ich möchte natürlich PB schon richtig lernen, aber es ist am Anfang sicher leichter und motivierender, wenn man kleine Ziele hat.

Gruss
Marco
Windows 11 - PB 6.03 x64
_________________________________
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> Da hätte ich auch schon die nächste Frage. Kann ich eine vba-Code (Access) via PB ausführen?
Ich nutze kein MS-Office, kenne die Feinheiten nicht, aber VB-Script kannste hiermit ausführen:
http://www.purebasic.fr/german/viewtopi ... iptcontrol
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten