Seite 1 von 1

hilfe zu AddGadgetItem bitte

Verfasst: 14.04.2016 15:32
von Charly
moinmoin nochmal,

i bin immer noch am 'kaempfen' und hab euch folgenden Ausschnitt
aus meinem PRG 'vorbereitet'

Code: Alles auswählen

Procedure mkwindowandbutton()
  
  If OpenWindow(0,0,0,800,400," TEST ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget)
    
    EditorGadget(2,10,30,WindowWidth(0)-20,WindowHeight(0)-33);,#PB_Editor_WordWrap)    
    SetGadgetColor(2, #PB_Gadget_BackColor, $666666)
    SetGadgetColor(2,#PB_Gadget_FrontColor, $00FFFF)
  EndIf
EndProcedure

mkwindowandbutton()
pos = -1

Repeat
  
  ;EventID=WaitWindowEvent()
  EventID=WindowEvent()
 
  Delay (50)
  
  i = Random(999999999999)
  
  AddGadgetItem(2,Pos,Str(i)+ " ",0,0) 
    
  If EventID = #PB_Event_CloseWindow
    End
  EndIf
  
ForEver
    

jetzt meine vielen Fragen/Probleme

1. wenn das Fenster nicht im Vordergrund ist 'steht' die
Ausgabe, warum? und wie kann man das aendern

2. wenn das Prg startet rollt die ausgabe nach unten
dann erscheint Re. der Rollbalken aber im Fenster scrollt
es nicht hoch, erst wenn i in das Fenster reinklicke, wie
aendere i das ?

3. wenn jetzt das Fenster am scrolle ist und ich mit der
Maus den Scrollbalken hochschiebe um zb. was zu suchen
springt er bei der naechste ausgabe sofort unten, finde i
nicht gut, i moechte das er dann dort bleibt bis zb. ctrl+end
gedrueckt wird oder er wird bis unten hin bewegt, auch hier:
wie ist das zu loesen ?


vielen dank! & vG
Charly

ps. der Code ist ein 'gekuerztes' Bsp. und dient zur anschauung meiner
mieserablen Programierkunst :oops:

Re: hilfe zu AddGadgetItem bitte

Verfasst: 14.04.2016 15:45
von RSBasic
Charly hat geschrieben:1. wenn das Fenster nicht im Vordergrund ist 'steht' die
Ausgabe, warum? und wie kann man das aendern
Weil es mit dem Cursor zu tun hat, der nur im EditorGadget aktiv ist, wenn das Fenster auch den Fokus hat.
Wenn das Fenster nicht im Vordergrund ist, dann ist gleichzeitig auch dein EditorGadget nicht aktiv. Also auch kein Cursor.
Du könntest beispielsweise folgenden Code verwenden: http://www.rsbasic.de/aktualisierung/wi ... crollen.pb
Charly hat geschrieben:2. wenn das Prg startet rollt die ausgabe nach unten
dann erscheint Re. der Rollbalken aber im Fenster scrollt
es nicht hoch, erst wenn i in das Fenster reinklicke, wie
aendere i das ?
3. wenn jetzt das Fenster am scrolle ist und ich mit der
Maus den Scrollbalken hochschiebe um zb. was zu suchen
springt er bei der naechste ausgabe sofort unten, finde i
nicht gut, i moechte das er dann dort bleibt bis zb. ctrl+end
gedrueckt wird oder er wird bis unten hin bewegt, auch hier:
wie ist das zu loesen ?
Das liegt am Cursor, der sich am Ende befindet. Wenn eine neue Zeile hinzugefügt wird, ist der Cursor weiterhin am Ende und es scrollt deshalb mit.

Wie man das ausschaltet, dass er nicht mitscrollt, wenn man selber scrollen möchte, weiß ich grad gar nicht. :roll:

Re: hilfe zu AddGadgetItem bitte

Verfasst: 14.04.2016 18:17
von Omi
Hallo Charly, hier iss auch Einer :wink:

Das ganze Verhalten beim Hinzufügen von Zeilen wird wohl ans System weitergereicht.
Dein Code (mit hinzugefügter Routine zum Neuzeichnen nach jedem AddGadgetItem(), damit man überhaupt was sieht) verhält sich auf Linux-Xubuntu scheinbar so wie Du es gerne hättest (bzw. wie ich's verstanden hab).
Also jeder Eingriff müßte hier sehr system-spezifisch ausfallen.

Gruß
Charly, der 2.

Re: hilfe zu AddGadgetItem bitte

Verfasst: 15.04.2016 00:44
von udg
zu Punkt 1, starten und ins EditorGadget klicken, dann mal in ein anderes Fenster oder auf den Desktop. Nun kannst du sehen wie es fleißig weiterscrollt.
Um nach Resume wieder das Scrollen global sehen zu können, musst Du wieder in das EditorGadget klicken. Dies müsste man automatisch callen, dass man nicht erst reinklicken muss. Das Klick Event hab ich jedoch nicht eingebaut.


Die anderen Punkte habe ich auch mit eingepflanzt, aber da muss noch gefeilt werden. Geht hier jedoch gut ( Windows 7 64bit )

Code: Alles auswählen

; Prozedur für Pause und Resume der Auflistung
Procedure Thread (*zzz)
  
  Repeat
    
    i = Random(125)
    AddGadgetItem(2,-1,Str(i)+ " ",0,0)
    Delay(60)

  ForEver
 EndProcedure
 
Procedure mkwindowandbutton()
 
  If OpenWindow(0,0,0,800,400," TEST ",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget)
   
    EditorGadget(2,10,6,WindowWidth(0)-20,WindowHeight(0)-40)
    SetGadgetColor(2, #PB_Gadget_BackColor, $666666): SetGadgetColor(2,#PB_Gadget_FrontColor, $00FFFF)
    ButtonGadget(1,10,370,60,25,"anhalten")
    ButtonGadget(3,80,370,60,25,"weiter")
    ButtonGadget(4,150,370,90,25,"alles löschen")
  EndIf
  
EndProcedure

mkwindowandbutton()

Define A = CreateThread(@Thread(), #NUL) ; erstelle Pause / Resume Thread
SetGadgetState(2, #PB_EventType_Focus);EditorGadget hat Mausklick bekommen und zeigt nun unten den Auflistungsfortschritt an auch wenn Du wo anders hinklickst"

Repeat
  Event = WindowEvent()
  eventtype = EventType() 
  EventGadget = EventGadget()
  
  SetForegroundWindow_(FindWindow_(0," TEST ")) ;Fenster Fokus beibehalten wenn Du wo anders ausserhalb deines Tools klickst 
  
;=================
;- unsere Buttons
;=================
  If EventGadget = 1
     PauseThread(A)
     Debug "Auflistung angehalten"
          
     ElseIf EventGadget = 3
             ResumeThread(A)
             Debug "Auflistung geht weiter"
            
             ElseIf EventGadget = 4
                     SetGadgetText(2," ")  
                     Debug "EditorGadget Inhalt gelöscht"
  EndIf 
   
Until Event = #PB_Event_CloseWindow:End
Ich hoffe das hilft wirtschaften

Re: hilfe zu AddGadgetItem bitte

Verfasst: 16.04.2016 17:38
von udg
mal das von mir ausprobiert? bringt das etwas?

Re: hilfe zu AddGadgetItem bitte

Verfasst: 17.04.2016 11:55
von Charly
Danke an alle f. die Hilfe,
hab z.Z. von der 'Chefin' des Hauses ein paar wichtige Auftraege
die i z.Z. zuerst abarbeiten muss hihihi , danach werde ich euch wieder
belaestigen

@udg es laeuf wenn das Fenster nicht im Fokus ist, mehr konnte ich noch nicht testen

vG & einen schoenen Sonntag
Charly