Fortschrittsbalken
Moderator: Moderatoren
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Fortschrittsbalken
Hallo zusammen,
ich bastele immer noch an meinem Matheprogramm. Hier sollen meine Schüler (und jeder der möchte) verschiedene Aufgaben von Klasse 5 bis 10 üben. Die Schüler (und ich) sollen eine Rückmeldung über ihre Fehler und ihre Rechengeschwindigkeit bekommen. Ich habe dazu ein Dialog erstellt, in dem die Aufgabe (zB zum kleinen Einmaleins) gestellt wird. Nach Eingabe des Ergebnisses und Klick auf die Returntaste wird das Ergebnis überprüft und es erfolgt eine Rückmeldung. Das passiert je zB 10 Mal. Ich habe einen Fortschrittsbalken eingebaut, der in Abhängigkeit der Durchschnittszeit und der Bestzeiten aus früheren Versuchen (die kann ich berechnen), die abgelaufene Zeit zeigt. Der Balken sollte loslaufen wenn die Aufgabe gestellt wird (oder der Dialog geöffnet). Ich bekomme das nicht hin. Erstens muss man jedesmal erst einen Startknopf drücken (was ich vermeiden möchte - das ist lästig wenn man schnell rechnen will) und zweitens läuft die "if ... next" Schleife weiter wenn der Dialog geschlossen wird und der Schüler schneller war als die Vorgabe - es dauert dann eine Weile bis der Dialog wieder aufgeht.
Wenn mir noch jemand sagen kann, wie ich dene "Weiter" Knopf loswerde wäre es perfekt. Das Ergebnis soll möglichst nicht erst nach Klicken auf ein Schaltfeld überprüft werden, sondern nach Eingabe des Ergebnisses und Betätigen der Returntaste.
Wer hat eine Idee?
Grüße
Pit
(PS: Wer will kann das Programm gerne schon mal haben und seinen Senf dazugeben!)
-> da kommen noch mehr Fragen!
ich bastele immer noch an meinem Matheprogramm. Hier sollen meine Schüler (und jeder der möchte) verschiedene Aufgaben von Klasse 5 bis 10 üben. Die Schüler (und ich) sollen eine Rückmeldung über ihre Fehler und ihre Rechengeschwindigkeit bekommen. Ich habe dazu ein Dialog erstellt, in dem die Aufgabe (zB zum kleinen Einmaleins) gestellt wird. Nach Eingabe des Ergebnisses und Klick auf die Returntaste wird das Ergebnis überprüft und es erfolgt eine Rückmeldung. Das passiert je zB 10 Mal. Ich habe einen Fortschrittsbalken eingebaut, der in Abhängigkeit der Durchschnittszeit und der Bestzeiten aus früheren Versuchen (die kann ich berechnen), die abgelaufene Zeit zeigt. Der Balken sollte loslaufen wenn die Aufgabe gestellt wird (oder der Dialog geöffnet). Ich bekomme das nicht hin. Erstens muss man jedesmal erst einen Startknopf drücken (was ich vermeiden möchte - das ist lästig wenn man schnell rechnen will) und zweitens läuft die "if ... next" Schleife weiter wenn der Dialog geschlossen wird und der Schüler schneller war als die Vorgabe - es dauert dann eine Weile bis der Dialog wieder aufgeht.
Wenn mir noch jemand sagen kann, wie ich dene "Weiter" Knopf loswerde wäre es perfekt. Das Ergebnis soll möglichst nicht erst nach Klicken auf ein Schaltfeld überprüft werden, sondern nach Eingabe des Ergebnisses und Betätigen der Returntaste.
Wer hat eine Idee?
Grüße
Pit
(PS: Wer will kann das Programm gerne schon mal haben und seinen Senf dazugeben!)
-> da kommen noch mehr Fragen!
Re: Fortschrittsbalken
Hallo Erika,
Vielleicht willst Du es mal mit einer Farbanzeige (rot = schlecht, gelb ist ein Risiko, grün ist OK, blau = cool) und der bedingten Formatierung versuchen. Ist vielleicht für die Schüler und für Dich lustiger.
Beispiele findest Du in:
http://www.ooowiki.de/CalcFormatBedingt ... atierungen
Grüsse -Hans-
Vielleicht willst Du es mal mit einer Farbanzeige (rot = schlecht, gelb ist ein Risiko, grün ist OK, blau = cool) und der bedingten Formatierung versuchen. Ist vielleicht für die Schüler und für Dich lustiger.
Beispiele findest Du in:
http://www.ooowiki.de/CalcFormatBedingt ... atierungen
Grüsse -Hans-
Windows 2K, OOo-2.3.0, MS-IE-6.0, Firefox-1.0.4, MS Office 97, 260 MB RAM,
Pseudostandard MS OpenXML abstimmen ->: http://www.noooxml.org/petition
Pseudostandard MS OpenXML abstimmen ->: http://www.noooxml.org/petition
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: Fortschrittsbalken
Lieber Hans,
klar, mit Farben wollte ich das schon lösen, der Fortschrittsbalken soll natürlich entsprechend die Farbe wechseln aber erstmal muss er automatisch starten und enden.
Gruß Pit
klar, mit Farben wollte ich das schon lösen, der Fortschrittsbalken soll natürlich entsprechend die Farbe wechseln aber erstmal muss er automatisch starten und enden.
Gruß Pit
Re: Fortschrittsbalken
Hallo Pit,
Nehme mal an: Du hast 10 Felder A1 bis A10 auf einer Reihe, die jeweils eine
speziellen Formel enthalten. Die Formel soll die Farbe der Zelle anpassen je nach Inhalt einer Zahl in einer bestimmten Zelle, z.B. in B1.
Die Formel auf Feld A1 sollte nun so aussehen:
Falls die Zahl in B1 >= 1 ist, dann Feld A1 rot einfärben, sonst bleibt das Feld A1 weiss.
Die Formel auf Feld A2 sollte nun so aussehen:
Falls die Zahl in B1 >= 2 ist, dann Feld A2 rot einfärben, sonst bleibt das Feld A2 weiss.
Die Formel auf Feld A3 sollte nun so aussehen:
Falls die Zahl in B1 >= 3 ist, dann Feld A3 rot einfärben, sonst bleibt das Feld A3 weiss.
usw.
Dann hast Du auch einen "laufenden Fortschrittsanzeiger".
Auf Feld B1 steht eine Zahl zwischen 1 und 10.
Die Farbe kannst Du mit einer speziellen Logik auch noch steuern.
Diese Logik brauchst Du nicht starten. Sie ist aktiv, sobald die Zahl geändert wird.
Grüsse -Hans-
Nehme mal an: Du hast 10 Felder A1 bis A10 auf einer Reihe, die jeweils eine
speziellen Formel enthalten. Die Formel soll die Farbe der Zelle anpassen je nach Inhalt einer Zahl in einer bestimmten Zelle, z.B. in B1.
Die Formel auf Feld A1 sollte nun so aussehen:
Falls die Zahl in B1 >= 1 ist, dann Feld A1 rot einfärben, sonst bleibt das Feld A1 weiss.
Die Formel auf Feld A2 sollte nun so aussehen:
Falls die Zahl in B1 >= 2 ist, dann Feld A2 rot einfärben, sonst bleibt das Feld A2 weiss.
Die Formel auf Feld A3 sollte nun so aussehen:
Falls die Zahl in B1 >= 3 ist, dann Feld A3 rot einfärben, sonst bleibt das Feld A3 weiss.
usw.
Dann hast Du auch einen "laufenden Fortschrittsanzeiger".
Auf Feld B1 steht eine Zahl zwischen 1 und 10.
Die Farbe kannst Du mit einer speziellen Logik auch noch steuern.
Diese Logik brauchst Du nicht starten. Sie ist aktiv, sobald die Zahl geändert wird.
Grüsse -Hans-
Windows 2K, OOo-2.3.0, MS-IE-6.0, Firefox-1.0.4, MS Office 97, 260 MB RAM,
Pseudostandard MS OpenXML abstimmen ->: http://www.noooxml.org/petition
Pseudostandard MS OpenXML abstimmen ->: http://www.noooxml.org/petition
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: Fortschrittsbalken
Lieber Hans,
vielen Dank für deine Mühe, soweit ist das ja auch klar und meine erste Version (in Excel) funktionierete auch so ähnlich, die war mir aber zu unflexibel - zwischenzeitlich arbeite ich mit Diaologen und da brauche ich halt den Fortschrittsbalken (und den möglichst auch mit Zehntelsekunden).
Ps. Wenn ich nicht mit Dialogen arbeite muss ich wohl mit Listener arbeiten, das durchblicke ich noch nicht (und das ist in meinem Buch von Thomas Krumbein - das ich eh sehr schwierig finde, nicht erklärt). Das mit dem Listener und der Arbeit auf dem Tabellenblatt brauche ich allerdings später schon, wenn ich die Wertetabellen für das 8. bis 10. Schuljahr bastele. Gibt es da eine verständliche Anleitung, wie man die Eingaben in einen Bereich auf dem Tabellenblatt überwacht?
Grüße
Pit
vielen Dank für deine Mühe, soweit ist das ja auch klar und meine erste Version (in Excel) funktionierete auch so ähnlich, die war mir aber zu unflexibel - zwischenzeitlich arbeite ich mit Diaologen und da brauche ich halt den Fortschrittsbalken (und den möglichst auch mit Zehntelsekunden).
Ps. Wenn ich nicht mit Dialogen arbeite muss ich wohl mit Listener arbeiten, das durchblicke ich noch nicht (und das ist in meinem Buch von Thomas Krumbein - das ich eh sehr schwierig finde, nicht erklärt). Das mit dem Listener und der Arbeit auf dem Tabellenblatt brauche ich allerdings später schon, wenn ich die Wertetabellen für das 8. bis 10. Schuljahr bastele. Gibt es da eine verständliche Anleitung, wie man die Eingaben in einen Bereich auf dem Tabellenblatt überwacht?
Grüße
Pit
Re: Fortschrittsbalken
Hey Pit,
also, natürlich ist das alles lösbar - nur fehlen einfach die Rahmenbedingungen. Ein Fortschrittsbalken kann natürlich genau dann gestartet werden, wenn der Dialog geöffnet wird. Du kannst - wie auch allen anderen Kontrollelementen - speziellen Ereignissen ein Makro zuweisen, dass dann ausgeführt wird.
In deinem Fall wäre das das Ereignis "Dialog erhält Fokus -> Start Fortschrittsbalken" und "Dialog verliert Fokus -> Stop Fortschrittsbalken, Zeit berechnen....".
Und datürlich kannst du auch den "Weiter" Button weglassen, jetzt kommt es darauf an, ob du das Ereignis sauber definieren kannst. Beispiel: die Eingabe muss 2 stellig erfolgen: Ergebnis - Ereignis "Text modifiziert", prüfen ob 2 Stellen - dann mit Ergebnis checken. Und so weiter. Also, das hängt alles von deiner Programmierkunst ab

Viele Grüße
Thomas
also, natürlich ist das alles lösbar - nur fehlen einfach die Rahmenbedingungen. Ein Fortschrittsbalken kann natürlich genau dann gestartet werden, wenn der Dialog geöffnet wird. Du kannst - wie auch allen anderen Kontrollelementen - speziellen Ereignissen ein Makro zuweisen, dass dann ausgeführt wird.
In deinem Fall wäre das das Ereignis "Dialog erhält Fokus -> Start Fortschrittsbalken" und "Dialog verliert Fokus -> Stop Fortschrittsbalken, Zeit berechnen....".
Und datürlich kannst du auch den "Weiter" Button weglassen, jetzt kommt es darauf an, ob du das Ereignis sauber definieren kannst. Beispiel: die Eingabe muss 2 stellig erfolgen: Ergebnis - Ereignis "Text modifiziert", prüfen ob 2 Stellen - dann mit Ergebnis checken. Und so weiter. Also, das hängt alles von deiner Programmierkunst ab

Nein, musst du nicht, es sei denn, du erstellst den Dialog komplett per Makro - dann ja. Nutzt du aber den Dialogeditor, brauchst du keine Listener.Wenn ich nicht mit Dialogen arbeite muss ich wohl mit Listener arbeiten
OK, auf vielfachen Wunsch gibt es jetzt in der Neuauflage (verfügbar ab November) Beispiele und Erläuterungen zu Listener...das ist in meinem Buch von Thomas Krumbein - ..., nicht erklärt..

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: Fortschrittsbalken
Lieber Thomas,
da fühle ich mich ja geehrt, wenn derjenige, dem ich meine bescheidenen Makroprogrammierungsfähigkeiten verdanke, sich höchstpersönlich meines Problems annimmt. Also werde ich mich noch mal dranmachen, diesen Fortschrittsbalken zum Laufen zu bringen. "Dialog erhält Fokus" hatte ich auch logisch gefunden, es hat aber nicht zum gewünschten Ergebnis geführt - ich werde es noch mal testen. "Text" modifiziert hatte ich auch schon versucht, die Option reagiert aber auf jede Eingabe, diese kann aber je nach Aufgabe "4", "35,89" oder auch "456mm²" sein.
Das mit dem Listener habe ich, fürchte ich noch gar nicht verstanden. Zur Zeit laufen alle Aufgaben noch komplett über Dialoge - habe ich da schon Listener eingesetzt ohne es zu merken? In der weiteren Folge habe ich vor dass die Schüler zB. im 9. oder 10. Schuljahr Wertetabellen zu Funktionen auf einem Tabellenblatt ausfüllen müssen, da habe ich noch keine Ahnung wie man über ein Makro feststellt, dass in irgendeinem Feld eines Bereiches etwas eingegeben wurde.
Noch stehe ich am Anfang - aber ich habe Ergeiz da weiter zu kommen.
So long
Pit
da fühle ich mich ja geehrt, wenn derjenige, dem ich meine bescheidenen Makroprogrammierungsfähigkeiten verdanke, sich höchstpersönlich meines Problems annimmt. Also werde ich mich noch mal dranmachen, diesen Fortschrittsbalken zum Laufen zu bringen. "Dialog erhält Fokus" hatte ich auch logisch gefunden, es hat aber nicht zum gewünschten Ergebnis geführt - ich werde es noch mal testen. "Text" modifiziert hatte ich auch schon versucht, die Option reagiert aber auf jede Eingabe, diese kann aber je nach Aufgabe "4", "35,89" oder auch "456mm²" sein.
Das mit dem Listener habe ich, fürchte ich noch gar nicht verstanden. Zur Zeit laufen alle Aufgaben noch komplett über Dialoge - habe ich da schon Listener eingesetzt ohne es zu merken? In der weiteren Folge habe ich vor dass die Schüler zB. im 9. oder 10. Schuljahr Wertetabellen zu Funktionen auf einem Tabellenblatt ausfüllen müssen, da habe ich noch keine Ahnung wie man über ein Makro feststellt, dass in irgendeinem Feld eines Bereiches etwas eingegeben wurde.
Noch stehe ich am Anfang - aber ich habe Ergeiz da weiter zu kommen.
So long
Pit
-
- *****
- Beiträge: 319
- Registriert: Mi, 14.12.2005 08:08
- Wohnort: freising - oder dort, wo das bier herkommt
Re: Fortschrittsbalken
hallo erika,
grüße klaus
versuch es mal damit:dass in irgendeinem Feld eines Bereiches etwas eingegeben wurde
Code: Alles auswählen
Sub IstAktivesBlattLeer(oRg) as Boolean
Dim oRg, oQry,lFlags&
With com.sun.star.sheet.CellFlags
lFlags = .STRING + .VALUE + .FORMULA + .ANNOTATION
End With
oRg=thisComponent.CurrentController.getActiveSheet 'das gerade aktive Blatt
oQry = oRg.queryContentCells(lFlags)
IstAktivesBlattLeer = oQry.getCount()=0
' msgbox IstAktivesBlattLeer 'übergibt true oder false
if IstAktivesBlattLeer=true then
msgbox "hey hier fehlt ne eingabe"
else
msgbox "mach im programm weiter"
end if
End Sub
grüße klaus
-
- ******
- Beiträge: 690
- Registriert: Di, 13.02.2007 17:38
- Wohnort: Büttelborn
Re: Fortschrittsbalken
Lieber Klaus,
vielen Dank soweit, leider ist das Problem etwas größer, das habe ich wohl nicht genau genug beschrieben: Kennst du noch die Wertetabellen von Funktionen aus der Schule? Links ist eine Spalte mit x=0,1,2,3... und oben steht eine Funktionsgleichung zB. Y=2x²+5x-2 und dann musst du unten die Werte ausrechnen und eintragen. Für meine Schüler sind dann gleich drei oder vier Funktionsgleichungen auf einem Blatt und die müssen dann 20 oder 30 Werte eintragen (in beliebiger Reihenfolge, sie dürfen auch welche frei lassen) und das Makro muss jetzt bei jeder Eingabe in irgendeiner Zelle die Eingabe mit dem (verdeckten) Ergebnis vergleichen, die Fehler anzeigen (das geht mit bedingter Formatierung) und die Fehler zählen - das geht nur mit einem Makro, denn der Fehler muss auch gezählt werden, wenn der Wert dann irgendwann verbessert wird. Bei VBA hatte ich das schon gelöst, meine Schüler sollen aber mit Calc arbeiten und leider läuft das Excel Programm unter Calc nicht, ich muss also alles neu lernen.
Irgendjemand kann mir aber sicher sagen wie das geht, ich habe es noch nicht herausbekommen.
Grüße
Pit
vielen Dank soweit, leider ist das Problem etwas größer, das habe ich wohl nicht genau genug beschrieben: Kennst du noch die Wertetabellen von Funktionen aus der Schule? Links ist eine Spalte mit x=0,1,2,3... und oben steht eine Funktionsgleichung zB. Y=2x²+5x-2 und dann musst du unten die Werte ausrechnen und eintragen. Für meine Schüler sind dann gleich drei oder vier Funktionsgleichungen auf einem Blatt und die müssen dann 20 oder 30 Werte eintragen (in beliebiger Reihenfolge, sie dürfen auch welche frei lassen) und das Makro muss jetzt bei jeder Eingabe in irgendeiner Zelle die Eingabe mit dem (verdeckten) Ergebnis vergleichen, die Fehler anzeigen (das geht mit bedingter Formatierung) und die Fehler zählen - das geht nur mit einem Makro, denn der Fehler muss auch gezählt werden, wenn der Wert dann irgendwann verbessert wird. Bei VBA hatte ich das schon gelöst, meine Schüler sollen aber mit Calc arbeiten und leider läuft das Excel Programm unter Calc nicht, ich muss also alles neu lernen.
Irgendjemand kann mir aber sicher sagen wie das geht, ich habe es noch nicht herausbekommen.
Grüße
Pit