[erledigt] Innere Fläche eines TreeGadgets vergößern

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
E-P-S
Beiträge: 134
Registriert: 30.03.2007 09:39
Kontaktdaten:

[erledigt] Innere Fläche eines TreeGadgets vergößern

Beitrag von E-P-S »

Hi zusammen.

Ich möchte gerne wissen ob man den inneren Bereich eines Controls, in diesem Fall eines TreeGadgets, in seiner Größe verändern kann. Zur besseren Erklärung anbei mal ein Bild:
Bild

Links ist das TreeGadget zu sehen wenn alle Nodes eingeklappt sind. Dann ist rechts neben jedem Node noch Platz bis zum rechten Rend des Gadgets (so ca. 100 Pixel). Klappt man nun alle Childs eines Nodes aus, so passen diese nicht mehr ins Gadget und es wird der horizontale Scrollbalken angezeigt - so ist das völlig richtig und auch normal (siehe "1").

Scrollt man nun nach ganz rechts bis der Scrollbalken sein Ende erreicht (siehe "2"), passt das am weitesten rechts liegende Node gerade noch ins Gadget um es komplett lesen zu können - auch völlig richtig.

Ich möchte diesen "Punkt" nun weiter nach links verlagern um auch hier noch 100 Pixel zum rechten Rand des Gadgets zu haben.

Wie kann ich das bewerkstelligen? Vielen Dank schonmal.
Zuletzt geändert von E-P-S am 01.04.2010 23:46, insgesamt 1-mal geändert.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: Innere Fläche eines TreeGadgets vergößern

Beitrag von Fluid Byte »

Meinst du die Einrückung :?:

Code: Alles auswählen

OpenWindow(0,0,0,500,300,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
TreeGadget(0,0,0,250,300)
TreeGadget(1,250,0,250,300)

For i=1 To 10
	AddGadgetItem(0,-1,"Gadget item #" + Str(i),0,i)
	SetGadgetItemState(0,i-2,#PB_Tree_Expanded)
	AddGadgetItem(1,-1,"Gadget item #" + Str(i),0,i)
	SetGadgetItemState(1,i-2,#PB_Tree_Expanded)	
Next

SendMessage_(GadgetID(0),#TVM_SETINDENT,1,0)

While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
E-P-S
Beiträge: 134
Registriert: 30.03.2007 09:39
Kontaktdaten:

Re: Innere Fläche eines TreeGadgets vergößern

Beitrag von E-P-S »

Danke erstmal für die Antwort.

Nein so meinte ich das nicht - ist auch schwer zu beschreiben und wie ich mittlerweile erkannt habe wohl weder machbar noch in irgend einer Weise praktikabel (sprich sinnvoll).

Manchmal hab ich einfach bekloppte Ideen...

Sorry - Hat sich somit erledigt das Thema.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: [erledigt] Innere Fläche eines TreeGadgets vergößern

Beitrag von NicTheQuick »

Dann müsstest du im Grunde das TreeGadget in ein ScrollAreaGadget einbetten und die Events des TreeGadgets abfangen, wenn sich die Client-Area in der Größe ändert. Dann resized zu einfach das TreeGadget auf die Größe seiner Client-Area plus die 100 Pixel mehr in x-Richtung und mit der Client-Area des ScrollAreaGadgets machst du das selbe.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: Innere Fläche eines TreeGadgets vergößern

Beitrag von DarkDragon »

Fluid Byte hat geschrieben:Meinst du die Einrückung :?:
Ich glaube er meint, dass der horizontale Scrollbalken 100pixel weiter geht, damit der Inhalt nicht direkt an der rechten Kante des Gadgets aufhört. Praktisch InnerWidth vom ScrollArea aufs TreeGadget übertragen.

NicTheQuick hats wohl erfasst. Es gäbe da noch einen Trick, aber damit wird die blaue Einfärbung bei der Selektion auch breiter. Man könnte allen Item-Texten entsprechend viele Leerzeichen hinten anhängen. Aber Pixelgenau gehts damit natürlich nicht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten