Seite 1 von 2

Cursor aus readonly-StringGadget entfernen

Verfasst: 07.06.2010 21:33
von Delle
Hallo,

ich habe ein StringGadget readonly gesetzt und mit weißem Hintergrund versehen.

Wenn der User nun reinklickt, erscheint ein Cursor und es macht den Anschein als er könnte er darin irgendetwas eingeben :)

Wie kann ich das vermeiden?

Danke,
Delle

Re: Cursor aus readonly-StringGadget entfernen

Verfasst: 07.06.2010 21:34
von ts-soft
SetActiveGadget

Re: Cursor aus readonly-StringGadget entfernen

Verfasst: 07.06.2010 21:41
von Delle
Öhm das ist genau das Gegenteil was ich wollte :)

Re: Cursor aus readonly-StringGadget entfernen

Verfasst: 07.06.2010 21:41
von ts-soft

Code: Alles auswählen

If OpenWindow(0, 0, 0, 322, 205, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  TextGadget(0, 0, 0, 0, 0, "")
  StringGadget(1, 8,  10, 306, 20, "Readonly StringGadget", #PB_String_ReadOnly)
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow : Break
      Case #PB_Event_Gadget
        If EventGadget() = 1 And EventType() = #PB_EventType_Focus
          SetActiveGadget(0)
        EndIf
    EndSelect
  ForEver
EndIf


Re: Cursor aus readonly-StringGadget entfernen

Verfasst: 08.06.2010 08:44
von Shardik
Warum so umständlich mit einem unsichtbaren "Geister"-Gadget, Thomas?
Mit HideCaret_(GadgetID(x)) geht es in Windows kürzer und eleganter:

Code: Alles auswählen

OpenWindow(0, 0, 0, 322, 205, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
StringGadget(0, 8,  10, 306, 20, "Readonly StringGadget", #PB_String_ReadOnly)
Repeat
  WindowEvent = WaitWindowEvent()
  If EventGadget() = 0 And EventType() = #PB_EventType_Focus
    HideCaret_(GadgetID(0))
  EndIf
Until WindowEvent = #PB_Event_CloseWindow
Bei dieser Vorgehensweise erscheint kein Cursor, es kann aber trotzdem noch Text markiert werden!

Re: Cursor aus readonly-StringGadget entfernen

Verfasst: 08.06.2010 09:32
von STARGÅTE
Shardik hat geschrieben:[...] geht es in Windows kürzer [...]
Aber eben nur unter Windows.

Im übrigen kann man auch einfach:
SetActiveGadget(#PB_Default)
nutzen, dann wird keins mehr aktiviert.

Code: Alles auswählen

If OpenWindow(0, 0, 0, 322, 205, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  StringGadget(1, 8,  10, 306, 20, "Readonly StringGadget", #PB_String_ReadOnly)
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow : Break
      Case #PB_Event_Gadget
        If EventGadget() = 1 And EventType() = #PB_EventType_Focus
          SetActiveGadget(#PB_Default)
        EndIf
    EndSelect
  ForEver
EndIf

Re: Cursor aus readonly-StringGadget entfernen

Verfasst: 08.06.2010 09:38
von ts-soft
Shardik hat geschrieben:Bei dieser Vorgehensweise erscheint kein Cursor, es kann aber trotzdem noch Text markiert werden!
Das macht wohl keinen Sinn :mrgreen:
Geistergadget ist ja meist auch nicht nötig, es gibt ja meist bereits irgendwelche Gadgets.

Den Tipp von STARGÅTE mit -1 kannte ich auch noch nicht :allright:

Re: Cursor aus readonly-StringGadget entfernen

Verfasst: 08.06.2010 10:06
von Shardik
ts-soft hat geschrieben:Das macht wohl keinen Sinn :mrgreen:
Das sehe ich aber anders. Nimm einmal an, daß ich IP-Adressen von anderen PCs im Netzwerk
in einem mehrzeiligen, schreibgeschützten StringGadget anzeige. Wenn ich dann eine markiere,
kann ich sie mit Strg+C kopieren und in einer Konsole hinter einem Ping-Befehl einfügen, um zu
überprüfen, ob der PC zur Zeit erreichbar ist. Wieso macht das keinen Sinn? /:->

Und wenn das Markieren nicht gewünscht ist, kann man ja STARGÅTEs Tipp verwenden. :allright:
ts-soft hat geschrieben:Geistergadget ist ja meist auch nicht nötig, es gibt ja meist bereits irgendwelche Gadgets.
Das macht dann auch einen sehr professionellen Eindruck, wenn der Anwender auf ein schreibgeschütztes
StringGadget klickt und dann plötzlich der Fokus auf ein bestimmtes anderes Gadget wechselt... :lol:

Re: Cursor aus readonly-StringGadget entfernen

Verfasst: 08.06.2010 10:21
von ts-soft
Shardik hat geschrieben:
ts-soft hat geschrieben:Geistergadget ist ja meist auch nicht nötig, es gibt ja meist bereits irgendwelche Gadgets.
Das macht dann auch einen sehr professionellen Eindruck, wenn der Anwender auf ein schreibgeschütztes
StringGadget klickt und dann plötzlich der Fokus auf ein bestimmtes anderes Gadget wechselt... :lol:
Es ist normal, das dann der Focus auf das nächste Gadget in der Tabreihenfolge springt. Was sollte daran unprofessionell sein.

Markieren ohne Cursor halte ich für unprofessionell :mrgreen:

Re: Cursor aus readonly-StringGadget entfernen

Verfasst: 08.06.2010 17:26
von edel
Warum willst du ein Stringgadget nehmen wenn es nicht wie ein solches funktionieren soll?
In dem Fall kannst du doch auch einfach nen Textgadget nehmen.