[gelöst] MsgBox o.ä. selbst schließend

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

clag
********
Beiträge: 3579
Registriert: Di, 27.01.2009 15:30

[gelöst] MsgBox o.ä. selbst schließend

Beitrag von clag »

Hallo liebe Gemeinde, Kenner und Könner
folgendes würde ich gern realisieren :
aus einem ausgeführten Mkro heraus oder am Ende, eine MesgBox o.ä. aufrufen mit sehr großem Text und selbst schließend nach X sekunden , optimaler Weise in der der Mitte vom aktuellen Bild. einfach eine unübersehbare Notiz zu einem Makro das vielfach eine Einstellung ctrl-alt-nach oben / nach unten ändert die sonst nicht offensichtlich ist.
die normale MsgBox erfordert explizit Aufmerksamkeit was nach mehrfaclen ausführen des Makro nervt ;) oder auch gern eine andere Idee
Zuletzt geändert von clag am Sa, 25.10.2025 14:23, insgesamt 1-mal geändert.
LG
clag

nutzt: Win 10/ AOO 4.1.15 / Firefox
Benutzeravatar
balu
********
Beiträge: 3813
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: MsgBox o.ä. selbst schließend

Beitrag von balu »

Hallo clag.

Ja so sieht man sich wieder :-)
clag hat geschrieben: einfach eine unübersehbare Notiz zu einem Makro das vielfach eine Einstellung ctrl-alt-nach oben / nach unten ändert die sonst nicht offensichtlich ist.
Rate mal wieviele Fragezeichen sich grad vor mir auftun anhand dieses Satzes?

clag hat geschrieben: eine MesgBox o.ä. aufrufen mit sehr großem Text und selbst schließend nach X sekunden
Da kann dir geholfen werden.
Du arbeitest mit einem Makro, also nutze doch die Möglichkeiten einfach aus. Anstatt einer simplen und lächerlich kleinen MsgBox erstell dir doch selber einen eigenen Dialog.

NEIN! Nicht ein Dialog wie zwischen zwei Menschen, sondern ein Grafisches Fenster. Das kannst Du manigfaltig individuell gestalten: Textgröß, Hintergrundfarbe des Dialogs etc. etc.
Und anstatt die MsgBox aufzurufen, rufst Du den Dialog auf. Und das Thema "Zeit" dürfte auch kein Problem darstellen, denn die kannst Du selber einstellen.

Schau dir mal dieses Them an: nicht modale Dialoge


Viel Spaß beim testen ;-)



Gruß
Balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
clag
********
Beiträge: 3579
Registriert: Di, 27.01.2009 15:30

Re: MsgBox o.ä. selbst schließend

Beitrag von clag »

hallo Balu ersteinmal besten Dank
der verlinkte Beitrag liest sich so als wäre es das was ich suche
mal sehen ob ich das gebacken bekomm mein Basic wissen ist schon wieder ziemlich geüftet

aber noch eine Nachfrage zu meiem Problem kann man per Basic etwas in die Kopfzeile des Haupt Fensters etwas schreiben
also nach "MeineDatei OpenOffice Draw +...XXXX..." das wäre sogar noch besser weil der Wert dann immer sichtbar ist
LG
clag

nutzt: Win 10/ AOO 4.1.15 / Firefox
clag
********
Beiträge: 3579
Registriert: Di, 27.01.2009 15:30

Re: MsgBox o.ä. selbst schließend

Beitrag von clag »

Hallo Balu und alle anderen Leser,
nach etwa fummeln und nachlesen in verschiedenen Quellen habe ich es hinbekommen.
Der Hinweis von Balu war DER Türöffner nochmal Danke dafür. wenn man denn ersteinmal weiß wie der Zugriff auf den Dialog ist, ist es garnicht so wild.
capture_014_25102025_104902shrinkt2.jpg
capture_014_25102025_104902shrinkt2.jpg (145.7 KiB) 824 mal betrachtet
so hatte ich mir das vorgestellt.
LG
clag

nutzt: Win 10/ AOO 4.1.15 / Firefox
clag
********
Beiträge: 3579
Registriert: Di, 27.01.2009 15:30

Re: MsgBox o.ä. selbst schließend

Beitrag von clag »

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,
das war unschön darum nun Label1
LG
clag

nutzt: Win 10/ AOO 4.1.15 / Firefox
Antworten