Problem mit Tree Gadget

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
chrissi87
Beiträge: 13
Registriert: 11.03.2009 12:04
Computerausstattung: Ubuntu Studio 12.04 x64, i386, Win7 Pro 64-Bit
Kontaktdaten:

Problem mit Tree Gadget

Beitrag von chrissi87 »

Hallo!

Bastel gerade ein wenig mit PB 4.2 unter Linux.

Ich habe folgendes Problem:

Ich habe ein TreeGadget erstellt und will dieses mit Einträgen füllen, was auf dem 1. Blick auch funzt.

Wenn ich immer schön der Reihe nach Item für Item hinzufüge, klappt alles wunderbar. Wenn ich jedoch nach einem Item mit dem Sublevel > 0 ein weiteres auf gleichem Sublevel hinzufügen will, wird erscheint dieses am ende aller Einträge, dieses SubLevels.

Wenn ich später mittels ID den Text ändere, ändert sich aber der Text des Items an der Stelle, wo ich das Neue eigentlich platziert hatte. Und nicht der Text des neu hinzugekommenen.

(Klingt vermutlich verwirrend, aber ich weiß nicht recht wie ich das sinnvoll beschreiben soll)

Jedenfalls der Clou ist: Unter Windows funzt der selbe Code ohne irgendwelche Probleme zu machen!

Ich hoffe hier weiß jemand Rat - Ich bin am verzweifeln!
PBFetischist
Beiträge: 55
Registriert: 26.10.2004 19:42

Beitrag von PBFetischist »

Welches Linux hast du ?

Kannst du einen Code zeigen ?

Grüße aus HH
PB 4.30 auf Windows Vista / XP SP2 und Linux
tmjuk
Beiträge: 380
Registriert: 30.06.2006 00:10
Wohnort: Backaryd, Schweden

Beitrag von tmjuk »

Ich denke, das dies weniger an Linux liegt.
Aber man wird sehen.
Schick bitte mal Code, in welchem der Fehler auftritt.

Torsten
PB 4.51 32 Windows Vista, 32 XP, PB 4.51 32 Ubuntu 10.10
chrissi87
Beiträge: 13
Registriert: 11.03.2009 12:04
Computerausstattung: Ubuntu Studio 12.04 x64, i386, Win7 Pro 64-Bit
Kontaktdaten:

Beitrag von chrissi87 »

Oh! Sorry, hatte ich ganz vergessen zu erwähnen! Ich nutze Ubuntu 8.04

Glaub fast auch nicht, dass es an Linux liegt, aber vielleicht hat ja jemand ne Idee!

Der eigentliche Code wäre zu umfangreich - hab das mal vereinfacht... :mrgreen:

Also:

Code: Alles auswählen

OpenWindow(0, 0, 0, 200, 200, "Test Tree Gadget")

  CreateGadgetList(WindowID(0))
    TreeGadget(0, 0, 0, 200, 200)
      AddGadgetItem(0, 0, "Item 1", 0, 0)
      AddGadgetItem(0, 1, "Item 2", 0, 0)
      AddGadgetItem(0, 2, "Item 5", 0, 0)
      AddGadgetItem(0, 3, "Item 6", 0, 0)
      
      AddGadgetItem(0, 2, "Sub1", 0, 1)
      AddGadgetItem(0, 3, "Sub2", 0, 1)
      
      AddGadgetItem(0, 2, "Sub3", 0, 1)
 
 
 For item = 0 To CountGadgetItems(0) - 1
    Debug GetGadgetItemText(0, item)
  
  Next item
 
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow

Also:
Man sieht die Debug - Ausgabe und das Fenster stimmen nicht wirklich überein... und die Items sind nicht wirklich da, wo ich dächte, dass sie stehen müssten. :(


Code-Tags gesetzt - Kaeru fecit
In Zukunft bitte selbst drauf achten!
Benutzeravatar
Waldixxl
Beiträge: 108
Registriert: 27.12.2005 17:35
Wohnort: Linz, Österreich

Beitrag von Waldixxl »

Hallo chrissi87
Ich habe es auch mit der Version PB 4.3 getestet und auch hier tritt das gleiche Problem auf
Meiner Meinung handelt es sich hier um einen Bug von PB.

Wenn dein Tree nicht zu groß ist kannst Du sie ja neu aufbauen

Code: Alles auswählen


Procedure RefreshTreeGadget(TreeGatget)

	Protected Anzahl=CountGadgetItems(TreeGatget) - 1
	Dim Text$(Anzahl)
	Dim Level(Anzahl)
	
	For item = 0 To Anzahl
	   Text$(item)= GetGadgetItemText(TreeGatget, item)
	   Level(item)=GetGadgetItemAttribute(TreeGatget, item,#PB_Tree_SubLevel)
	Next
	
	ClearGadgetItems(TreeGatget)   ;ClearGadgetItemList(TreeGatget) für PB 4.2
	
	For item = 0 To Anzahl
	  AddGadgetItem(0, item,Text$(item), 0, Level(item))
	Next

EndProcedure
Hat bei mir geklappt
Lesen bei schlechten Lichtverhältnissen ist nicht schlecht für die Augen, sondern trainiert sie sogar.

Linux Ubuntu Mate 18.04
PB 5.71
Intel i5
tmjuk
Beiträge: 380
Registriert: 30.06.2006 00:10
Wohnort: Backaryd, Schweden

Beitrag von tmjuk »

Hallo,

ja, deine Beobachtung stimmt.

Wird unter Linux falsch angezeigt. Habe mit 4.30 unter Suse getestet.

Um die Idee von Waldixxl aufzugreifen:
Man könnte die einzelnen Elemente ja auch in einer strukturierten Liste aufbewahren.
In der Liste werden dann die Manipulationen durchgefuehrt und dann der Tree aus der Liste neu geschrieben. Sollte eigentlich relativ fix gehen.
(Natuerlich nur als vorläufige Abhilfe).
z.B. als Struktur

Code: Alles auswählen

Structure data_list
	id.l			; Ident des Eintrages
	platz.l			; Platz im Tree
	parent_id.l		; Id des uebergeordneten Eintrages
	text.s			; Text des Eintrages
	image_id.l		; Id des zugehörigen Image
	eingeklappt.l     ; Eintrag expandiert, 1 = ja
EndStructure

Torsten
PB 4.51 32 Windows Vista, 32 XP, PB 4.51 32 Ubuntu 10.10
chrissi87
Beiträge: 13
Registriert: 11.03.2009 12:04
Computerausstattung: Ubuntu Studio 12.04 x64, i386, Win7 Pro 64-Bit
Kontaktdaten:

Beitrag von chrissi87 »

Hallo!

Also vielen Dank erstmal für eure Hilfe!

Ist zwar nicht Sinn und Zweck "die Items selbst zu verwalten"... aber so komme ich wenigstens erstmal weiter.

Vielleicht klappts ja mit der 4.40 von Hause aus! :wink:
Little John

Beitrag von Little John »

chrissi87 hat geschrieben:Vielleicht klappts ja mit der 4.40 von Hause aus! :wink:
Ja, vielleicht ...
Die Chance dafür kannst Du erhöhen, indem Du das Problem im englischen Bug-Forum meldest.

Gruß, Little John
chrissi87
Beiträge: 13
Registriert: 11.03.2009 12:04
Computerausstattung: Ubuntu Studio 12.04 x64, i386, Win7 Pro 64-Bit
Kontaktdaten:

Beitrag von chrissi87 »

Hallo Little John!

Danke! Das werde ich mal versuchen!

Mal Schauen, ob mein Englisch dafür reicht! :mrgreen:

Gruß
Chrissi87
Antworten