Gadgets automatisch nach unten scrollen
-
- Beiträge: 659
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Gadgets automatisch nach unten scrollen
Ich suche eine Möglichkeit für ein ListIconGadget oder Webgadget oder irgendein anderes Gadget, wo Text rein kann, automatisch bis ganz nach unten zu scrollen.
Ich brauche das für eine Chatbox.
Im Spiederbasic-Forum finde ich leider nichts.
Geht das vielleicht mit Javascript?
Hat jemand eine Idee?
Ich brauche das für eine Chatbox.
Im Spiederbasic-Forum finde ich leider nichts.
Geht das vielleicht mit Javascript?
Hat jemand eine Idee?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
-
- Beiträge: 659
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: Gadgets automatisch nach unten scrollen
Nun habe ich vor geraumer Zeit eine Möglichkeit gefunden mit einem Textgadget zu scrollen.
Aber ich brauche auch eine Lösung für ein Editorgadget.
Hat jemand eine Idee, wie man bei einem Editorgadget automatisch nach unten scrollen kann?
Aber ich brauche auch eine Lösung für ein Editorgadget.
Hat jemand eine Idee, wie man bei einem Editorgadget automatisch nach unten scrollen kann?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: Gadgets automatisch nach unten scrollen
schade, dass Du Deine Lösung dann nicht den anderen mitgeteilt hast.stevie1401 hat geschrieben:Nun habe ich vor geraumer Zeit eine Möglichkeit gefunden mit einem Textgadget zu scrollen.
eine Möglichkeit:stevie1401 hat geschrieben:Hat jemand eine Idee, wie man bei einem Editorgadget automatisch nach unten scrollen kann?
Code: Alles auswählen
OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
EditorGadget(0, 8, 8, 306, 133)
SetGadgetText(0, "Line 01" + #LF$ +
"Line 02" + #LF$ +
"Line 03" + #LF$ +
"Line 04" + #LF$ +
"Line 05" + #LF$ +
"Line 06" + #LF$ +
"Line 07" + #LF$ +
"Line 08" + #LF$ +
"Line 09" + #LF$ +
"Line 10" + #LF$ +
"Line 11")
gid = GadgetID(0)
! v_gid.gadget.textbox.scrollIntoView()
SetActiveGadget(0)
Hygge
-
- Beiträge: 659
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: Gadgets automatisch nach unten scrollen
Hey Kiffi, dein Beispiel funktioniert bei mir leider nicht.
Liegt es an dieser Zeile:
! v_gid.gadget.textbox.scrollIntoView()
Da steht textbox und nicht editorgadget?
Und hier die beiden Proceduren, die es ermöglichen in einer Textbox zu scrollen:
ScrollEnable(meinTextGadget) muss gleich nach dem Erstellen des Textgadget ausgeführt werden.
Danach kann man bei Bedarf Text dem Textgadget hinzugefügt werden und dann mit:
ScrollDown(meinTextGadget)
automatisch nach unten scrollen.
Liegt es an dieser Zeile:
! v_gid.gadget.textbox.scrollIntoView()
Da steht textbox und nicht editorgadget?
Und hier die beiden Proceduren, die es ermöglichen in einer Textbox zu scrollen:
Code: Alles auswählen
Procedure ScrollDown(aGadget)
Protected chatid = GadgetID(aGadget)
!$(v_chatid.div).animate({scrollTop: $(v_chatid.div).prop("scrollHeight")}, 0);
EndProcedure
Procedure ScrollEnable(aGadget)
Protected chatid
chatid = GadgetID(aGadget)
!$(v_chatid.div).css("overflow", "scroll")
EndProcedure
Danach kann man bei Bedarf Text dem Textgadget hinzugefügt werden und dann mit:
ScrollDown(meinTextGadget)
automatisch nach unten scrollen.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: Gadgets automatisch nach unten scrollen
nee, das stimmt schon so. Das ist eine dijitTextBox.stevie1401 hat geschrieben:Da steht textbox und nicht editorgadget?
seltsam. Gibt's eine Fehlermeldung (in der Konsole (F12))?stevie1401 hat geschrieben:dein Beispiel funktioniert bei mir leider nicht.
Grüße ... Peter
Nachtrag: Im IE funktioniert es in der Tat nicht (der IE mal wieder... ).
Hygge
-
- Beiträge: 659
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: Gadgets automatisch nach unten scrollen
Ich habe den Fehler gefunden.
Ich habe das Gadget nicht aktiv gesetzt.
SetActiveGadget(meinEditorgadget) fehlte. Ohne das Aktivsetzen scheint es nicht zu funktionieren.
Leider möchte ich nach dem Laden von Text in das Editorgadget und dem Runterscrollen ein Eingabetextgadget aktiv setzen. Aber wenn ich das mache, funktioniert das Scrollen nicht mehr.
Aber vielleicht kann ich da eine Pause einbauen oder so.
Erst einmal vielen Dank!
Ich habe das Gadget nicht aktiv gesetzt.
SetActiveGadget(meinEditorgadget) fehlte. Ohne das Aktivsetzen scheint es nicht zu funktionieren.
Leider möchte ich nach dem Laden von Text in das Editorgadget und dem Runterscrollen ein Eingabetextgadget aktiv setzen. Aber wenn ich das mache, funktioniert das Scrollen nicht mehr.
Aber vielleicht kann ich da eine Pause einbauen oder so.
Erst einmal vielen Dank!
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
Re: Gadgets automatisch nach unten scrollen
für das ListViewGadget und das ListIconGadget habe ich jetzt eine SetGadgetStateEx() - Funktion geschrieben.
Wenn Du magst, kannst Du das ja mal ausprobieren:
Grüße ... Peter
Wenn Du magst, kannst Du das ja mal ausprobieren:
Code: Alles auswählen
EnableExplicit
Procedure SetGadgetStateEx(Gadget, SelectedItem)
Select GadgetType(Gadget)
Case #PB_GadgetType_ListView, #PB_GadgetType_ListIcon
! setTimeout( function() {
SetGadgetState(Gadget, SelectedItem)
! if (($(spider_GadgetID(v_gadget).div).find(".dgrid-selected")).length > 0) {
! spider_GadgetID(v_gadget).gadget.scrollTo({x:0,y:$(spider_GadgetID(v_gadget).div).find(".dgrid-selected").position().top});
! } else {
! spider_GadgetID(v_gadget).gadget.scrollTo({x:0,y:0});
! }
! }, 10);
Default
Debug "Unsupported Gadget"
EndSelect
EndProcedure
Enumeration
#Window
#ListViewGadget
#ListIconGadget
EndEnumeration
Define Counter
OpenWindow(#Window, 0, 0, 510, 140, "ScrollIntoView", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
; ######################
; # ListViewGadget
; ######################
ListViewGadget(#ListViewGadget, 10, 10, 250, 120)
For Counter = 1 To 12
AddGadgetItem (#ListViewGadget, -1, "Line " + Str(Counter) + " of the ListViewGadget")
Next
SetGadgetStateEx(#ListViewGadget, 10)
; ######################
; # ListIconGadget
; ######################
ListIconGadget(#ListIconGadget, 260, 10, 250, 120, "First Column", 200)
For Counter = 1 To 12
AddGadgetItem (#ListIconGadget, -1, "Line " + Str(Counter) + " of the ListIconGadget")
Next
SetGadgetStateEx(#ListIconGadget, 10)
Hygge
-
- Beiträge: 659
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: Gadgets automatisch nach unten scrollen
Wie kann ich denn beim Editorgadget ganz an den Anfang nach oben scrollen?
...funktioniert nicht.
Code: Alles auswählen
chatid = GadgetID(#edigadget)
!$(v_chatid.div).animate({scrollTop: $(v_chatid.div).prop("scrollHeight")}, 0);
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x
-
- Beiträge: 659
- Registriert: 19.10.2014 15:51
- Kontaktdaten:
Re: Gadgets automatisch nach unten scrollen
Code: Alles auswählen
OpenWindow(0, 0, 0, 322, 150, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
EditorGadget(1, 8, 8, 306, 133)
s.s=""
For i=1 To 50
s+Str(i)+Chr(10)
Next i
SetGadgetText(1, s)
;Unteres funktioniert nicht
gid = GadgetID(1)
! v_gid.gadget.textbox.scrollIntoView(false)
SetActiveGadget(1)
;Dies auch nicht
chatid = GadgetID(1)
!$(v_chatid.div).animate({scrollTop: $(v_chatid.div).prop("scrollHeight")}, 0);
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Linux Mint 21.x