Per Klick Textfeld grün machen!

Das Präsentationsgrafikprogramm

Moderator: Moderatoren

PatrikB1985
***
Beiträge: 91
Registriert: Di, 22.12.2009 23:14
Wohnort: Bochum

Per Klick Textfeld grün machen!

Beitrag von PatrikB1985 »

Guten Tag Community!
Ich wollte eine Art Quiz machen. Habe als Anhang meinen Präsentationsscreenshot angehängt. Wie Ihr seht habe ich Kästchen mit Zahlen von 100 - 500 zu verschiedenen Themen. Ich wollte den Hintergrund vom Kästchen z.B. von der 100 grün machen, wenn man drauf geklickt hat und zu einer Folie springt. Wenn man dann wieder zurück Klick kommt man wieder zu dieser Übersicht, wo das Kästchen 100 immer noch grün sein soll. Damit man weiss wo man schon die Frage beantwortet hat. Doch bei mir bleibt die Farbe rot.

Habe es auch schon versucht den Texthintergrund grün zu machen bei Klick, aber wenn ich zurück gehe auf die Übersicht ist der Texthintergrund nicht grün.

Was mache ich falsch???

Wie kann man das machen? Habt ihr ideen?

MfG Patrik
Dateianhänge
RD-Quiz.png
RD-Quiz.png (63.77 KiB) 2731 mal betrachtet
MacBook Pro
Betriebssystem: Mac OS X 10.6.7
OO-Version: 3.3.0
Benutzeravatar
miesepeter
********
Beiträge: 2241
Registriert: Sa, 10.05.2008 15:05
Wohnort: Bayern

Re: Per Klick Textfeld grün machen!

Beitrag von miesepeter »

Hallo,

ich glaube nicht, dass du etwas falsch machst. Wenn du auf die "Hauptfolie" zurückspringst, dann wird sie neu geladen und zeigt also auch den anfänglich gewählten Hintergrund. Den kannst du dann wiederum mit Mausaktion verändern.

Die einzige Idee, die ich so spontan dazu habe, wäre, dass du von deiner Präsentation aus per Hyperlink eine zweite Antwort-Präsentation oder eine HTML-Antwortseite startest und damit nicht deine Übersichtsseite/Navigation verlässt. Die Farbe würde nicht zurückgestellt werden. Ist wahrscheinlich machbar, aber nicht besonders elegant...

Viel Erfolg!
PatrikB1985
***
Beiträge: 91
Registriert: Di, 22.12.2009 23:14
Wohnort: Bochum

Re: Per Klick Textfeld grün machen!

Beitrag von PatrikB1985 »

Das soll doch schon elegant aussehen! Gibts da vielleicht nen Makro befehl zu?
MacBook Pro
Betriebssystem: Mac OS X 10.6.7
OO-Version: 3.3.0
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Per Klick Textfeld grün machen!

Beitrag von turtle47 »

Hi Patrik,
PatrikB1985 hat geschrieben:Gibts da vielleicht nen Makro befehl zu?
Den gibt es schon. Das Ganze ist aber etwas aufwändig weil Du für jedes "Kästchen"den nachfolgenden Code entsprechend anpassen musst.
Also das Ganze 25 mal mit entsprechenden Werten.

Code: Alles auswählen

Sub Color_2_Shape1 'Sub für erstes Control
Dim oDoc As Object
Dim Page As Object
Dim RectangleShape As Object
Dim Gradient As New com.sun.star.awt.Gradient 
	oDoc = ThisComponent
	Page = oDoc.DrawPages(0) 'Erste Seite wo das Control liegt
	RectangleShape = oDoc.createInstance("com.sun.star.drawing.RectangleShape")
	RectangleShape = Page.getByIndex(0) 'Index des Controls
	Gradient.Style = com.sun.star.awt.GradientStyle.AXIAL
	Gradient.StartColor = RGB(0,139,0)
	Gradient.EndColor = RGB(0,222,0)
	Gradient.StartIntensity = 100
	Gradient.EndIntensity = 100
	Gradient.Angle = 0
	Gradient.StepCount = 80 
	RectangleShape.FillStyle = com.sun.star.drawing.FillStyle.GRADIENT
	RectangleShape.FillGradient = Gradient
	oDocCtrl = oDoc.getCurrentController()
	oDocCtrl.CurrentPage = oDoc.getDrawPages().getByIndex(1)'Seite zu der gesprungen wird
End Sub
Mit "normalen" Schaltflächen wäre das alles viel viel einfacher.
Aber Du möchtest es ja elegant haben. Also muss Du leiden. :lol:
Denke daran, dass der Index bei Null anfängt zu zählen!

Schönes Weihnachtsfest.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
PatrikB1985
***
Beiträge: 91
Registriert: Di, 22.12.2009 23:14
Wohnort: Bochum

Re: Per Klick Textfeld grün machen!

Beitrag von PatrikB1985 »

@turtle47 Danke!
Wie kann man ein Kästchen mit nem Makro verbinden?
MacBook Pro
Betriebssystem: Mac OS X 10.6.7
OO-Version: 3.3.0
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Per Klick Textfeld grün machen!

Beitrag von turtle47 »

PatrikB1985 hat geschrieben:Wie kann man ein Kästchen mit nem Makro verbinden?
Rechtsklick auf das Kästchen > Interaktion..... > Aktion beim Mausklick: im Listenfeld ganz nach unten scrollen > "Makro ausführen" auswählen und dann über die Schaltfläche "Durchsuchen..." das eingebaute Makro aktivieren.

Zum Installieren des Makros schau Dir mal die Links von Winfried an.
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
PatrikB1985
***
Beiträge: 91
Registriert: Di, 22.12.2009 23:14
Wohnort: Bochum

Re: Per Klick Textfeld grün machen!

Beitrag von PatrikB1985 »

Kriege es leider nicht hin, weil wenn ich das Makro benutzen will, dann kann ich nicht beim klick wechseln lassen, da er nicht auf die Seite springt!
MacBook Pro
Betriebssystem: Mac OS X 10.6.7
OO-Version: 3.3.0
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Per Klick Textfeld grün machen!

Beitrag von turtle47 »

Hast Du denn in dem Code auch die Zeile

Code: Alles auswählen

 oDocCtrl.CurrentPage = oDoc.getDrawPages().getByIndex(1)'Seite zu der gesprungen wird
angepasst???

.getByIndex(1) entspricht der zweiten Seite!

Also:

.getByIndex(8) entspricht der neunten Seite!

Denn ich hatte bereits geschrieben:
turtle47 hat geschrieben:Denke daran, dass der Index bei Null anfängt zu zählen!
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
PatrikB1985
***
Beiträge: 91
Registriert: Di, 22.12.2009 23:14
Wohnort: Bochum

Re: Per Klick Textfeld grün machen!

Beitrag von PatrikB1985 »

was heißt:
oDoc.getDrawPages()
und
oDoc.getCurrentController()
???
MacBook Pro
Betriebssystem: Mac OS X 10.6.7
OO-Version: 3.3.0
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Per Klick Textfeld grün machen!

Beitrag von turtle47 »

Ich denke Du hattes Englisch in der Schule. Oder?

get Draw Pages
oder
get Current Controller

ist doch nicht schwer zu übersetzen.

Vielleicht siehst Du Dich dort mal um.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
PatrikB1985
***
Beiträge: 91
Registriert: Di, 22.12.2009 23:14
Wohnort: Bochum

Re: Per Klick Textfeld grün machen!

Beitrag von PatrikB1985 »

Komischerweise macht er mir das 5 Rechteck grün, obwohl ich das 6 will!

Code: Alles auswählen

    Sub Color_2_Shape1 'Sub für erstes Control
    Dim oDoc As Object
    Dim Page As Object
    Dim RectangleShape As Object
    Dim Gradient As New com.sun.star.awt.Gradient
       oDoc = ThisComponent
       Page = oDoc.DrawPages(1) 'Erste Seite wo das Control liegt(zweite Seite)
       RectangleShape = oDoc.createInstance("com.sun.star.drawing.RectangleShape")
       RectangleShape = Page.getByIndex(6) 'Index des Controls(soll 6 Reckteck sein!)
       Gradient.Style = com.sun.star.awt.GradientStyle.AXIAL
       Gradient.StartColor = RGB(0,139,0)
       Gradient.EndColor = RGB(0,222,0)
       Gradient.StartIntensity = 100
       Gradient.EndIntensity = 100
       Gradient.Angle = 0
       Gradient.StepCount = 80
       RectangleShape.FillStyle = com.sun.star.drawing.FillStyle.GRADIENT
       RectangleShape.FillGradient = Gradient
       oDocCtrl = oDoc.getCurrentController()
       oDocCtrl.CurrentPage = oDoc.getDrawPages().getByIndex(2)'Seite zu der gesprungen wird
    End Sub
Was habe ich vergessen oder falsch gemacht?
MacBook Pro
Betriebssystem: Mac OS X 10.6.7
OO-Version: 3.3.0
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Per Klick Textfeld grün machen!

Beitrag von turtle47 »

Hi,

es kommt manchmal darauf an in welcher Reihenfolge die Schaltflächen auf das Sheet gesetzt werden und das bestimmt den Index.

Stelle mal fest, welcher Index welcher Schaltfläche zugeordnet ist.
Vergebe deshalb zuerst den Schaltflächen einen Namen: Rechtsklick auf die Schaltfläche > Kontextmenue > Name....
und dann z.B. den Namen vergeben "Thema1_100", "Thema1_200, "Thema1_300" ...... "Thema5_500".

Starte dann folgendes Makro:

Code: Alles auswählen

Sub Index_Button
Dim oDoc As Object
Dim Page As Object
	oDoc = ThisComponent
	Page = oDoc.DrawPages(0) 'Index der Seite wo die Controls liegen > ANPASSEN!!!!
	AnzahlShapes = Page.getCount()
	for i = 0 To AnzahlShapes -1
	RectangleShape = Page.getByIndex(i) 'Index des Controls
	s = s & CHR(13) & " Button: " & RectangleShape.name & " hat den Index: " & i 
	next
	msgbox s	
End Sub
Jetzt siehst Du welche Schaltfläche welchen Index hat. 8)

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
PatrikB1985
***
Beiträge: 91
Registriert: Di, 22.12.2009 23:14
Wohnort: Bochum

Re: Per Klick Textfeld grün machen!

Beitrag von PatrikB1985 »

Sorry, aber das Macro wird nicht ausgeführt auch, wenn ich die Sicherheitseinstellungen runter setze! Ich weiss ich nicht was ich machen soll!
MacBook Pro
Betriebssystem: Mac OS X 10.6.7
OO-Version: 3.3.0
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Per Klick Textfeld grün machen!

Beitrag von turtle47 »

PatrikB1985 hat geschrieben: Ich weiss ich nicht was ich machen soll!
Und ich weis nicht was Du bisher schon alles versucht hast, denn meine Glaskugel ist vereist, die Hellseherin ist im Skiurlaub und der Kartenleger findet seine Tarotkarten nicht.
PatrikB1985 hat geschrieben:aber das Macro wird nicht ausgeführt auch, wenn ich die Sicherheitseinstellungen runter setze!
Das kann die Ursache nicht sein, denn dann würde das andere Makro zum Färben ja auch nicht funktionieren.

Wenn Du das Makro über die IDE in ein neues Modul Deines Dokumentes eingebaut hast und dann oben das Symbol mit dem kleine grünen Pfeil klickst sollte zumindest die MsgBox angezeigt werden.

Sollte diese jedoch angezeigt werden aber leer sein, dann hast Du die falsche Seite ausgewählt die ausgelesen werden soll.
Page = oDoc.DrawPages(0) 'Index der Seite wo die Controls liegen > ANPASSEN!!!
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
PatrikB1985
***
Beiträge: 91
Registriert: Di, 22.12.2009 23:14
Wohnort: Bochum

Re: Per Klick Textfeld grün machen!

Beitrag von PatrikB1985 »

Danke jetzt konnte ich es sehen bin nämlich nicht auf ausführen gegangen!

Habe die Buttons jetzt verlinkt, aber er springt nicht zu angegebenen Seite, egal welchen verlinkten Button ich klicke!
Hier der von mir geänderten Code für das Dokument!

Code: Alles auswählen

    Sub Color_2_Shape1 'Sub für erstes Control
    Dim oDoc As Object
    Dim Page As Object
    Dim RectangleShape As Object
    Dim Gradient As New com.sun.star.awt.Gradient
       oDoc = ThisComponent
       Page = oDoc.DrawPages(1) 'Erste Seite wo das Control liegt
       RectangleShape = oDoc.createInstance("com.sun.star.drawing.RectangleShape")
       RectangleShape = Page.getByIndex(11) 'Index des Controls
       Gradient.Style = com.sun.star.awt.GradientStyle.AXIAL
       Gradient.StartColor = RGB(0,139,0)
       Gradient.EndColor = RGB(0,222,0)
       Gradient.StartIntensity = 100
       Gradient.EndIntensity = 100
       Gradient.Angle = 0
       Gradient.StepCount = 80
       RectangleShape.FillStyle = com.sun.star.drawing.FillStyle.GRADIENT
       RectangleShape.FillGradient = Gradient
       oDocCtrl = oDoc.getCurrentController()
       oDocCtrl.CurrentPage = oDoc.getDrawPages().getByIndex(2)'Seite zu der gesprungen wird
    End Sub
Habe die Controls auf Seite 2 und er soll auf Seite 3 springen! Wenn ich mit ESC die Präsentation unterbreche wird der gedrückte Button zwar grün, aber er srang vorher nicht auf die Seite und Zeigt mir während der Präsentation nicht an, was man schon gemacht hat. Also wird er während der Präsentation nicht grün nur, wenn ich ESC drücke!

LG Patrik
*EDIT:
Muss man für jedes neue Makro ein neues Modul erstellen?
MacBook Pro
Betriebssystem: Mac OS X 10.6.7
OO-Version: 3.3.0
Antworten