EditorGadget als Logfenster. Wie immer die unterste Zeile an

Anfängerfragen zum Programmieren mit PureBasic.
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

EditorGadget als Logfenster. Wie immer die unterste Zeile an

Beitrag von SebastianJu2 »

Ich habe ein EditorGadget als Logfenster benutzt. Dabei schreibe ich immer mit AddGadgetItem() eine neue Zeile ans Ende. Allerdings sieht man immer nur die ersten Zeilen also keine aktuellen Logzeilen. Ich habe auch keine Option dafür gefunden.

Wie bekomme ich es hin dass immer die letzten Zeilen gezeigt werden? Ich will auch nicht Das log umdrehen und oben die aktuellen Zeilen anfügen.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: EditorGadget als Logfenster. Wie immer die unterste Zeil

Beitrag von Kiffi »

Wenn Du ein ListviewGadget anstelle des EditorGadgets verwendest, kannst Du folgenden Code nehmen:

Code: Alles auswählen

SetGadgetState(DeinListViewGadget, CountGadgetItems(DeinListViewGadget) - 1)
Ansonsten lässt sich das IMO nur mit API regeln: http://www.purebasic.fr/german/viewtopi ... 78#p233978

Grüße ... Kiffi
a²+b²=mc²
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: EditorGadget als Logfenster. Wie immer die unterste Zeil

Beitrag von SebastianJu2 »

Ich habe es jetzt mit der API versucht aber noch keinen Erfolg gehabt. Ist die GadgetID eine andere als die aus PB? In der Doku zur API steht dass das Handle des Fensters da drin steht.
Ich habe es an den Anfang und ans Ende gesetzt aber kein Effekt.

Code: Alles auswählen

SendMessage_(LogEditorHandle,#EM_SCROLL,#SB_BOTTOM,0)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: EditorGadget als Logfenster. Wie immer die unterste Zeil

Beitrag von Kiffi »

Code: Alles auswählen

#Window=0
#Editor=0
#Timer=0

OpenWindow(#Window, #PB_Ignore, #PB_Ignore, 300, 200, "")
EditorGadget(#Editor, 0, 0, 300, 200)
AddWindowTimer(#Window, #Timer, 100)

Repeat
  
  Select WaitWindowEvent()
      
    Case #PB_Event_Timer
      AddGadgetItem(#Editor, -1, Str(CountGadgetItems(#Editor)))
      SendMessage_(GadgetID(#Editor),#EM_SCROLL,#SB_BOTTOM,0)
      
    Case #PB_Event_CloseWindow
      Break
      
  EndSelect
  
ForEver
Grüße ... Kiffi
a²+b²=mc²
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: EditorGadget als Logfenster. Wie immer die unterste Zeil

Beitrag von SebastianJu2 »

Nach langem Suchen fand ich warum es bei deinem Code klappt und bei meinem nicht... Ich hatte das EditorGadget schon mit einem ListViewGadget ausgetauscht und dann nicht mehr dran gedacht... :P

Aber klappt jetzt... immer für alle OS zu coden scheint eh ziemlich schwer zu sein wenn man das durchziehen will.

Danke!
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: EditorGadget als Logfenster. Wie immer die unterste Zeil

Beitrag von Kiffi »

SebastianJu2 hat geschrieben:Ich hatte das EditorGadget schon mit einem ListViewGadget ausgetauscht und dann nicht mehr dran gedacht... :P
wenn Du auch gleichzeitig die Variable 'LogEditorHandle' getauscht hättest,
wäre das vielleicht früher aufgefallen. ;-)

Grüße ... Kiffi
a²+b²=mc²
SebastianJu2
Beiträge: 180
Registriert: 24.09.2010 10:39

Re: EditorGadget als Logfenster. Wie immer die unterste Zeil

Beitrag von SebastianJu2 »

Ja... nur dummerweise war ich noch nicht so weit als ich entschied dass die API wohl doch besser ist... ;)
Antworten