Zoom ScrollAreaGadget - Mittig ausrichten.
Verfasst: 31.08.2017 19:59
Hi
Also ich mach da zusammengenommen schon seit locker 2 Tagen dran rum, und hab jeden mir erdenklichen
mathematischen Weg versucht.........fast 2 Tage hab ich gebraucht um zu raffen das dieser verdammte Drecks
X ScrollBalken Wert der vom Balken Start ist, und nicht der vom kleinen Pfeil in der Mitte
Wie kriegt mann das Ding mittig ? Gibt es kein WinApi Command ? So das der kleine Pfeil
in der Mitte vom ScrollBalken, genau mittig steht ? Sprich ScrollArea steht mittig.
Ich hab hier 1280x1024 Auflösung laufen, und ein TestBild
das klassische 1024x768 hat.
Ich schalte auf Vollbild, jetzt wird das Bild auf die maximalen Dimensionen (mit Berücksichtigung des Seitenverhältnisses) auf 1280 x 960 resized.
Und es ist natürlich nichts vom ScrollArea Gadget Balken zu sehen, weil unnötig.
Jetzt vergrößere ich das 1280 x 960 Bild um 20 % auf 1536x1280 (wieder unter Berücksichtigung vom Seitenverhältniss, und passt ! nichts verzogen)
Und mache folgendes.
Und habe dann je Seite, einen 100Pixel Rahmen um das Bild, und das ScrollAreaGadget ist entsprechend angepasst.
Soweit ist mir noch alles klar, aber #PB_ScrollArea_X und #PB_ScrollArea_Y bringen mich noch um den Verstand.
Egal was ich probiert habe, es geht nie immer exakt mittig.
Was noch bei 20% und 40% Zoom geht, geht auf einmal ab 60 nicht usw
Die verdammte X balken Position muss genau 238 sein ! Dann ist der Pfeil vom Scrollbalken exakt
da wo auch die mittige Linie im Testbild ist, und das ScrollArea Dings steht mittig.
Und ich hab zig Möglichkeiten mathematischen Variationen probiert, und nur mit einer kam ich auf die
238.
GlobalFullGW & GlobalFullGH sind die Vollbild Auflösung, oder der Rahmen könnte mann sagen.
tmp_rand beträgt 100 (ja Variationen wo ich 2 x tmp_rand probiert hab, hatte ich auch, ich hatte zig Möglichkeiten ausprobiert, sogar Prozentualen Unterschied vom ScrollArea Gadget zum vorherigen Stand)
Wie gesagt ich verstehe es nicht ! Was noch bei 20% geht, geht bei 40% nicht mehr, oder was von 20 bis 60% geht.
Geht ab 80 nicht mehr.
Das verdammte Ding muss mittig bleiben, aber es verschiebt sich mit jedem Scroll Schritt immer weiter.
Ich komme nicht mehr weiter, vl weis einer von euch ja wo das Problem liegt.
Ich will gar nicht Wissen, was das erst für ein **#/%'*'# wird wenn mann z.B den linken Teil vom 100% Bild auf 120%
vergrößern will, und der linke Ausschnitt beibehalten werden soll.
Aber erst mal brauch ich die Mittel Stellung, die Zentrierung, ohne die geht gar nichts.
Also ich mach da zusammengenommen schon seit locker 2 Tagen dran rum, und hab jeden mir erdenklichen
mathematischen Weg versucht.........fast 2 Tage hab ich gebraucht um zu raffen das dieser verdammte Drecks
X ScrollBalken Wert der vom Balken Start ist, und nicht der vom kleinen Pfeil in der Mitte

Wie kriegt mann das Ding mittig ? Gibt es kein WinApi Command ? So das der kleine Pfeil
in der Mitte vom ScrollBalken, genau mittig steht ? Sprich ScrollArea steht mittig.
Ich hab hier 1280x1024 Auflösung laufen, und ein TestBild
Code: Alles auswählen
CreateImage(0,1024,768)
StartDrawing(ImageOutput(0))
DrawingMode(#PB_2DDrawing_Outlined)
Line(1024/2,0,1,768,#White)
Line(0,768/2,1024,1,#White)
Line(1024/4,0,1,768,#yellow)
Line(0,768/4,1024,1,#yellow)
Line((1024/4) * 3,0,1,768,#yellow)
Line(0,768/4 * 3,1024,1,#yellow)
Box((1024/2) - 60,(768/2) - 45,120,90,#Red)
StopDrawing()
SaveImage(0,"C:\tt.bmp")
Ich schalte auf Vollbild, jetzt wird das Bild auf die maximalen Dimensionen (mit Berücksichtigung des Seitenverhältnisses) auf 1280 x 960 resized.
Und es ist natürlich nichts vom ScrollArea Gadget Balken zu sehen, weil unnötig.
Jetzt vergrößere ich das 1280 x 960 Bild um 20 % auf 1536x1280 (wieder unter Berücksichtigung vom Seitenverhältniss, und passt ! nichts verzogen)
Und mache folgendes.
Code: Alles auswählen
tmp_rand = 100
ImageGadget(#BigGadget,tmp_rand,tmp_rand,666,666,ImageID(#Zoom))
SetGadgetAttribute(#XSBig,#PB_ScrollArea_InnerWidth,new_w + tmp_rand * 2)
SetGadgetAttribute(#XSBig,#PB_ScrollArea_InnerHeight,new_h + tmp_rand * 2)
xx = GetGadgetAttribute(#XSBig,#PB_ScrollArea_InnerWidth)
yy = GetGadgetAttribute(#XSBig,#PB_ScrollArea_InnerHeight)
Soweit ist mir noch alles klar, aber #PB_ScrollArea_X und #PB_ScrollArea_Y bringen mich noch um den Verstand.
Egal was ich probiert habe, es geht nie immer exakt mittig.
Was noch bei 20% und 40% Zoom geht, geht auf einmal ab 60 nicht usw
Die verdammte X balken Position muss genau 238 sein ! Dann ist der Pfeil vom Scrollbalken exakt
da wo auch die mittige Linie im Testbild ist, und das ScrollArea Dings steht mittig.
Und ich hab zig Möglichkeiten mathematischen Variationen probiert, und nur mit einer kam ich auf die
238.
Code: Alles auswählen
tmp_val_w.f = xx - Global_FullGW - tmp_rand
tmp_val_w.f = yy - Global_FullGH - tmp_rand
tmp_val_w=Round(tmp_val_w,#PB_Round_Down)
tmp_val_h=Round(tmp_val_h,#PB_Round_Down)
SetGadgetAttribute(#XSBig,#PB_ScrollArea_X,tmp_val_w + tmp_rand)
tmp_rand beträgt 100 (ja Variationen wo ich 2 x tmp_rand probiert hab, hatte ich auch, ich hatte zig Möglichkeiten ausprobiert, sogar Prozentualen Unterschied vom ScrollArea Gadget zum vorherigen Stand)
Wie gesagt ich verstehe es nicht ! Was noch bei 20% geht, geht bei 40% nicht mehr, oder was von 20 bis 60% geht.
Geht ab 80 nicht mehr.
Das verdammte Ding muss mittig bleiben, aber es verschiebt sich mit jedem Scroll Schritt immer weiter.
Ich komme nicht mehr weiter, vl weis einer von euch ja wo das Problem liegt.
Ich will gar nicht Wissen, was das erst für ein **#/%'*'# wird wenn mann z.B den linken Teil vom 100% Bild auf 120%
vergrößern will, und der linke Ausschnitt beibehalten werden soll.
Aber erst mal brauch ich die Mittel Stellung, die Zentrierung, ohne die geht gar nichts.