Seite 1 von 2

Fehler bei Scrollbar im EditorGadget

Verfasst: 26.08.2007 15:32
von pede
Hallo...

Das Problem ist folgendes:
sobald ich ein EditorGadget auf ReadOnly setzte, verändern sich die Scrollbars zu "Strichen"... (bei ReadOnly = 0 passt alles!)

ein Bild wie das aussieht seht ihr hier:
http://www.purebasic.fr/german/viewtopic.php?t=14070

ist das nun wirklich ein Bug?
kann man das irgenwie umgehen?

Verfasst: 26.08.2007 15:37
von Thomas
Ich persönlich kenne das Problem nicht, aber wenn man in CAV (CodeArchivViewer) einen Code ansieht, sieht das genauso aus (ich denke mal, dass da das gleiche Problem besteht).

Verfasst: 26.08.2007 16:17
von ts-soft
Ich würde mal behaupten, das liegt am fehlendem EventHandling.
Bug sitzt vorm Monitor.

Verfasst: 26.08.2007 16:53
von pede
ts-soft, könntest du das bitte etwas genauer erklären...

per Button-Druck wird das Editor-Gadget vom ursprünglichen Read-Only Zustand in den normalen Modus versetzt...

Mal ein einfaches Beispiel:

Code: Alles auswählen

If OpenWindow(1,100, 100, 500, 500, Test$)
CreateGadgetList(WindowID(1))
EditorGadget(2, 200, 200, 200, 200, #PB_Editor_ReadOnly)
ButtonGadget(3, 100, 100, 50, 30, "Switch")
EndIf
Readonly= 1
Repeat
  event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget 
      Select EventGadget()
         Case 3
             SetGadgetAttribute(2, #PB_Editor_ReadOnly, 0)
      EndSelect
  EndSelect
Until event = #PB_Event_CloseWindow
sobald man das programm startet und viele "w" schreibt, kommt schon eine falsche Scrollbar... auch mit vielen "Enter" wird es falsch

Erst sobald man löscht und neuschreibt wirds richtig

Wie macht man das dann richtig?

Verfasst: 26.08.2007 17:04
von ts-soft
Ich kann keine Fehldarstellung feststellen (w2k), lediglich der Switchbutton
switcht nicht :mrgreen:

Verfasst: 26.08.2007 17:42
von pede
Hä?
dann versteh ich gar nix mehr...

wieso switcht er nicht?
HilfeDateiPB hat geschrieben: SetGadgetAttribute(): Mit den folgenden Attributen:
#PB_Editor_ReadOnly: Setzt den 'ReadOnly' Status. (0 bedeutet editierbar, ungleich 0 bedeutet nur lesbar)
so mach ichs ja...^^

wie müsste man es dann korrekt machen?
und wieso ändert es etwas ob du win2k oder so wie ich XP nimmst?

:freak:

Verfasst: 26.08.2007 18:04
von ts-soft
Der hier switscht:

Code: Alles auswählen

If OpenWindow(1,100, 100, 500, 500, Test$)
  CreateGadgetList(WindowID(1))
  EditorGadget(2, 200, 200, 200, 200, #PB_Editor_ReadOnly)
  ButtonGadget(3, 100, 100, 50, 30, "Switch")
EndIf

Define.l Readonly
Define.l Event

Repeat
  Event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 3
          SetGadgetAttribute(2, #PB_Editor_ReadOnly, ReadOnly)
          ReadOnly ! 1
      EndSelect
  EndSelect
Until Event = #PB_Event_CloseWindow

Verfasst: 26.08.2007 18:25
von pede
achso, ich hab gemeint bei dir ändert sich nicht das Readonly - Attribut...
Mit meinem Code wollt ich nur von ReadOnly auf Normal schalten...

aber is ja nicht so schlimm, viel schlimmer is, das auch da das Scrollbarproblem NICHT behoben wird....

wieso entsteht das überhaupt und was kann ich dagegen tun?

oder bleibt mir zum schluss nur, 2 verschiedene EditorGadgets zu benutzen, 1ns readonly und ein normales?

mfg

Verfasst: 26.08.2007 19:11
von HeX0R
Ich kann probieren wie ich will, ich bekomme den von dir gezeigten Effekt nicht reproduziert.
...und ich habe auch XP hier.

Vielleicht mal genauere Angaben, wie du das hinkriegst ?

Weil deine Anleitung schlicht und ergreifend falsch ist:
pede hat geschrieben: sobald man das programm startet und viele "w" schreibt, kommt schon eine falsche Scrollbar
Sobald ich deinen Codeschnippsel starte kann ich logischerweise nix eintippen, da ReadOnly.
Und dein Codeschnippsel kann, wie ts-soft richtig bemerkte nicht mehr zu ReadOnly zurückschalten, also was bitte soll man denn machen, um diesen Effekt hinzukriegen ?

Verfasst: 26.08.2007 19:42
von Kaeru Gaman
mir entgeht auch grad irgendwie der sinn...

entweder readonly, oder was reinschreiben.

und wozu soll das selbe editorgadget mal readonly sein und mal nicht?