Seite 1 von 1
Datei schließen
Verfasst: So, 11.10.2015 14:39
von erikafuchs
Hallo leute,
ich brauche mal wieder eure Hilfe:
Beim Öffnen meiner Datei wird ein Makro ausgeführt. Es wird ein Dialog aufgerufen. Dort gibt es auch ein Button "abbrechen". Beim Anklicken soll die Datei wider geschlossen werden. Das klappt nicht, oO stürzt ab. Ich nehme an, man kann eine Datei nicht schließen während ein Makro in dieser Datei ausgeführt wird - oder gibt es da eine Möglichkeit?
Pit
Re: Datei schließen
Verfasst: So, 11.10.2015 19:24
von F3K Total
Moin,
das geht, im Forum gibt es zig Threads dazu.
Gruß R
Re: Datei schließen
Verfasst: So, 11.10.2015 20:04
von erikafuchs
Lieber F3K Total,
ich habe gesucht. Aber entweder war das Problem ein anderes oder ähnlich und ungelöst.
Also ausprobiert habe ich den Zusatz von "StarDesktop.terminate()" und "dispose()" - beides ändert nichts, es kommt zum Absturz.
Re: Datei schließen
Verfasst: Mo, 12.10.2015 17:52
von komma4
welchen Code führt denn die Schaltfäche "Abbrechen" aus? (zeigen!)
Re: Datei schließen
Verfasst: Mo, 12.10.2015 18:25
von erikafuchs
Lieber Winfried,
ich glaube, ich habe dich auch schon mit meinem Rechentrainerprogramm belästigt - es ist etwa so umfangreich wie das Telefonbuch meiner Heimatstadt. Ich habe jetzt mal versucht, die relevanten Zeilen zu extrahieren. Die "sub start" wird beim Öffnen der Datei ausgeführt, in der "sub Namen" müssen die Schüler ihre Namen eingeben und wenn auf dem Dialog der "Abbr." Button gedrückt wird, wird die "sub Startabbruch" ausgeführt, diese soll die Datei schließen:
Code: Alles auswählen
sub start
oDoc=ThisComponent
DialogLibraries.LoadLibrary("Rechentrainer")
namen
nachname=dSheet.getCellByPosition(1,1).string
vorname=dSheet.getCellByPosition(2,1).string
Speichername="Rechentrainer " & vorname & " " & nachname & ".ods"
end sub
'*******************************************************************************************************************************************************
sub Namen
nDialog=createUnoDialog(DialogLibraries.Rechentrainer.NameDialog)
do while (len(Trim(nachname))<2 or len(Trim(vorname))<2 or len (Trim(Klasse))=0) and abbr=0
nDialog.execute()
vorname=nDialog.getControl("Vorname").text
if len(Trim(vorname))<2 then msgBox "gib deinen Vornamen ein!"
nachname=nDialog.getControl("Nachname").text
if len(Trim(nachname))<2 then msgBox "Gib deinen Nachnamen ein!"
klasse=nDialog.getControl("Klasse").text
if fix(Klasse)=0 then msgBox "Gib deine Klasse ein!"
kurs=nDialog.getControl("Kurs").text
loop
end sub
*******************************************************************************************************************************************************
'sub startabbruch
nDialog.endexecute()
oDoc=ThisComponent
oDoc.close(true)
end sub
... im Code habe ich zur Übersichtlichkeit viele Zeilen weggelassen - Reicht das so oder brauchst du mehr?
Pit