Makro mehrfachen Start verhindern
Moderator: Moderatoren
Makro mehrfachen Start verhindern
Hallo Kenner und Könner,
wie kann man sicherstellen das ein Makro nur einmal gestartet wird?
kann man das irgendwie direkt abfragen ob ein bzw welches Makro läuft?
Meine Idee wäre eine Globale Variable die abgefragt
und bei Makro Start auf "on" gesetzt wird.
wie kann man sicherstellen das ein Makro nur einmal gestartet wird?
kann man das irgendwie direkt abfragen ob ein bzw welches Makro läuft?
Meine Idee wäre eine Globale Variable die abgefragt
und bei Makro Start auf "on" gesetzt wird.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Makro mehrfachen Start verhindern
Hallo clag
Nun gut, wie auch immer.
Pseudocode. ACHTUNG NICHT GETESTET!!!
Gruß
balu
Gegenfrage. Wie schaffst Du es das ein Makro mehrfach gestartet wird? Das ist mir momentan etwas schleierhaft.wie kann man sicherstellen das ein Makro nur einmal gestartet wird?
Nun gut, wie auch immer.
Globale Variable ist nicht schlecht. Das Makro welches nur einmal gestartet werden darf setzt den Status der Variablen auf TRUE oder 1.Meine Idee wäre eine Globale Variable die abgefragt
und bei Makro Start auf "on" gesetzt wird.
Pseudocode. ACHTUNG NICHT GETESTET!!!
Code: Alles auswählen
Global FirstRun as Boolean
Sub NurEinmal
FirstRun = 1
End Sub
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
wehr rächtschraipfähler findet khan si behalden
Re: Makro mehrfachen Start verhindern
Code: Alles auswählen
Global FirstRun as Boolean
Sub NurEinmal
FirstRun = 1
End Sub
Code: Alles auswählen
Global FirstRun as Boolean
Function WarNochNicht
if FirstRun = 0 Then
WarNochNicht = True
FirstRun = 1
else
WarNochNicht = False
EndIf
End Function
Gruss DG
Win7, AOO 4.1.1
Re: Makro mehrfachen Start verhindern
Hallo
und Danke für die schnellen Antworten
habe es jetzt auch in der Art gemacht, blieb mir ja auch nichts anderes übrig
was ich noch nicht verstehe warum funktioniert das nicht mit einer "Private" Variablen?
und Danke für die schnellen Antworten
habe es jetzt auch in der Art gemacht, blieb mir ja auch nichts anderes übrig
Code: Alles auswählen
Global LoopShouldRun as Boolean
Sub StopLoop
LoopShouldRun = false
End Sub
Sub RefreshLoop
if LoopShouldRun = true then
msgbox "RefreshLoop Makro läuft bereits, dieser Start wird ignoriert"
exit sub
end if
LoopShouldRun = true
myDoc = thisComponent
..
..
if LoopShouldRun = false then
msgbox "RefreshLoop Makro wurde angehalten"
exit sub
was ich noch nicht verstehe warum funktioniert das nicht mit einer "Private" Variablen?
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Makro mehrfachen Start verhindern
Hätt ich auch gedacht. Und mit Static?clag hat geschrieben: was ich noch nicht verstehe warum funktioniert das nicht mit einer "Private" Variablen?
In der Hilfe steht:
STATIC VarName As TYPNAME
Die Variable behält ihren Wert bis zum nächsten Einstieg in die FUNCTION oder SUB. Die Deklaration muss innerhalb einer SUB oder FUNCTION stehen.
Win7, AOO 4.1.1
Re: Makro mehrfachen Start verhindern
Hallo
@Dreh Gel
@Dreh Gel
Code: Alles auswählen
Global FirstRun as Boolean
Function WarNochNicht
WarNochNicht = FirstRun
End Function
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Makro mehrfachen Start verhindern
Hallo
Und nun kommt das ganz dicke fette ABER.
Aber auch nur dann, wenn die einzelnen Subs im ein und den gleichen Modul stehen. Denn Private ist auf das Modul begrenzt wo es aufgerufen wird.
Mensch clag, das müsstest Du doch schon mittlerweile Wissen das dies z.B. bei Dannenhöfer nachzulesen ist.
Gruß
balu
Da Du mal wieder mit Infos extrem sparsam umgehst, kann ich nur eins sagen: Natürlich funktioniert das mit Private.was ich noch nicht verstehe warum funktioniert das nicht mit einer "Private" Variablen?
Und nun kommt das ganz dicke fette ABER.
Aber auch nur dann, wenn die einzelnen Subs im ein und den gleichen Modul stehen. Denn Private ist auf das Modul begrenzt wo es aufgerufen wird.
Mensch clag, das müsstest Du doch schon mittlerweile Wissen das dies z.B. bei Dannenhöfer nachzulesen ist.
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
wehr rächtschraipfähler findet khan si behalden
Re: Makro mehrfachen Start verhindern
Hallo Balu,
da habe ich ungeprüft geplappert
denn jetzt funktioniert es auch mit "Privat"
Zuvor hatte ich erfolglos als "Private" deklariert und habe dann als Global deklariert womit es umgehend funktionierte.
Die Zusammenhänge habe ich nicht weiter erforscht, weil ich schon des öfteren an "Private"
gescheitert bin und immer hat es dann mit "Global" funktioniert?
Das liegt aber eher in meinem Basic Minimalwissen begründet.
Darum tauche ich hier ja öfters als Frager auf
da habe ich ungeprüft geplappert
denn jetzt funktioniert es auch mit "Privat"
Zuvor hatte ich erfolglos als "Private" deklariert und habe dann als Global deklariert womit es umgehend funktionierte.
Die Zusammenhänge habe ich nicht weiter erforscht, weil ich schon des öfteren an "Private"
gescheitert bin und immer hat es dann mit "Global" funktioniert?
Das liegt aber eher in meinem Basic Minimalwissen begründet.
Darum tauche ich hier ja öfters als Frager auf
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: Makro mehrfachen Start verhindern
Hallo Karolus
Gruss
DG
Code: Alles auswählen
Global FirstRun as Boolean
Function WarNochNicht
WarNochNicht = FirstRun
FirstRun = 1 ' oder im Macro Code auf 1 setzen :)
End Function
DG
Win7, AOO 4.1.1
Re: Makro mehrfachen Start verhindern
Hallo
Wenn du das Ding vorher als boolean deklarierst, dann weise dem Ding auch einen solchen zu, statt einer impliziten Konvertierung 1 →→ True
Wenn du das Ding vorher als boolean deklarierst, dann weise dem Ding auch einen solchen zu, statt einer impliziten Konvertierung 1 →→ True
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: Makro mehrfachen Start verhindern
Du hast ja recht, aber DEN Fehler hatte ich schon von balu übernommen.Karolus hat geschrieben:Wenn du das Ding vorher als boolean deklarierst, dann weise dem Ding auch einen solchen zu, statt einer impliziten Konvertierung 1 →→ True
Gruss
DG
Win7, AOO 4.1.1