für den Fall jemand möchte so etwas oder ähnliches, habe ich den Code noch ein bisschen aufgeräumt.
Das Makro dient dazu den aktuellen Zoom auf einen Wert einzustellen wo die "MicroSchritte" also Alt+ Pfeiltasten in Draw auf einen Wert eingestellt werden der zu 1 passt bzw ein passender Bruchteil ist , denn die krummen Zwischenwerte die Draw bei anderen Zoomwerten einstellt bringen das exakte einrasten durcheinander, nicht die Ansicht aber wenn man dann mit Alt+ Pfeiltasten Zeichnungselemente verschiebt, 0.7, 0.65 , 1.3 o.ä. machen in meinen Augen keinen Sinn.
Ich habe die beiden Zoom Makros auf Ctrl-Alt+Links und Ctrl-Alt+Rechts gelegt so kann ich schnell aus jeder Zoomstufe zur nächsten passenden Zoomstufe größer oder kleiner umstellen . Ich habe zwei Arten von Array verwendet zum Üben und die jeweilige MsgBox ist nur auskommentiert, kann man zum besseren Verständnis wieder aktivieren dann aber die "GrossAnzeige" auskommentieren. Der Dialog ist Bastelwerk kann man nichts zu hochladen, ganz simple ein Dialog mit einem LabelElement beides in gleicher HgFarbe und gut war es.
Code: Alles auswählen
Sub Zoom_enlarge
Zoomy = thiscomponent.currentcontroller.ZoomValue
' mit einem großen Array
za = Array(Array(3000, 1763, 755, 587, 352, 278, 135, 66, 33, 16, 8),_
Array(2382, 1411, 671, 535, 332, 265, 132, 66, 33, 16, 8),_
Array(1764, 1059, 588, 482, 312, 252, 130, 66, 33, 16, 8),_
Array("0.05", 0.1, 0.2, 0.25, 0.4, 0.5, 1, 2, 4, 8.25, 16.66))
For i = UBound(za()(0)) To LBound(za()(0)) step -1
if zoomy < za(1)(i) then
thiscomponent.currentcontroller.ZoomValue = za(1)(i)
GrossAnzeige za(3)(i)
' msgbox " aktueller Zoommittelwert auf " & za(1)(i) & "%" & chr$(10) &_
' " eingestellt für : " & za(3)(i) & " mm Microsteps" & chr$(10) &_
' " im Zoombereich von " & za(2)(i) & "% - " & za(0)(i) & "%"
exit sub
end if
Next
' mit 4 einzelnen Arrays
'
' zo = Array(3000, 1763, 755, 587, 352, 278, 135, 66, 33, 16, 8)
' zm = Array(2382, 1411, 671, 535, 332, 265, 132, 66, 33, 16, 8)
' zl = Array(1764, 1059, 588, 482, 312, 252, 130, 66, 33, 16, 8)
' zx = Array("0.05", 0.1, 0.2, 0.25, 0.4, 0.5, 1, 2, 4, 8.25, 16.66)
'
' For i = UBound(zo) To LBound(zo) step -1
' if zoomy < zm (i) then
' thiscomponent.currentcontroller.ZoomValue = zm (i)
' GrossAnzeige zx(i)
' msgbox " aktueller Zoommittelwert auf " & zm(i) & "%" & chr$(10) &_
' " eingestellt für : " & ZX(i) & " mm Microsteps" & chr$(10) &_
' " im Zoombereich von " & zl(i) & "% - " & zo(i) & "%"
' exit sub
' end if
' Next
End Sub
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Sub Zoom_reduce
Zoomy = thiscomponent.currentcontroller.ZoomValue
zo = Array(3000, 1763, 755, 587, 352, 278, 135, 66, 33, 16, 8)
zm = Array(2382, 1411, 671, 535, 332, 265, 132, 66, 33, 16, 8)
zl = Array(1764, 1059, 588, 482, 312, 252, 130, 66, 33, 16, 8)
zx = Array(0.05, 0.1, 0.2, 0.25, 0.4, 0.5, 1, 2, 4, 8.25, 16.55)
For i = LBound(zo)+1 To UBound(zo)
if i =10 then exit sub
if zoomy > zo (i ) then
thiscomponent.currentcontroller.ZoomValue = zm(i )
' msgbox " aktueller Zoommittelwert auf " & zm(i) & "%" & chr$(10) &_
' " eingestellt für : " & ZX(i) & " mm Microsteps" & chr$(10) &_
' " im Zoombereich von " & zl(i) & "% - " & zo(i) & "%"
GrossAnzeige zx(i)
exit sub
end if
Next
End Sub
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Sub GrossAnzeige (anzeigewert)
dialoglibraries.loadlibrary("Standard")
oDlg = createUnoDialog(dialogLibraries.Standard.Dialog1)
' oDlg.GetControl("TextField1").text = anzeigewert & " mm Microsteps"
oDlg.GetControl("Label1").text = anzeigewert & " mm"
oDlg.setVisible(true)
wait(1500)
End Sub
'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
die Zeile mit TextField1 kann eigentlich raus weil TextField mit einem blinkrenden Curser daherkam auch im "nur Lesen" Modus,