Seite 1 von 1

Zelle anklicken, Kreuzchen erscheint?

Verfasst: Fr, 11.01.2013 21:04
von Suboptimant
Hallo zusammen

Folgendes möchte ich gerne erreichen: Wenn in eine Zelle geklickt wird, erscheint dort ein X. Wenn nochmal geklickt wird, geht es wieder weg. Und so weiter hin und her.
Alternativ: Das kann auch ein Markierfeld sein, auch wenn das Häkchen optisch nicht so schön ist. Hier ist mein Problem aber, dass sich das nicht so einfach optisch direkt an eine bestimmte Zelle heften lässt, wie ich in diversen Foren gelesen habe (kenn mich (noch) nicht mit Makros aus).

Es kann auch was anderes als ein X sein, zb dass sich der Hintergrund von gelb auf rot verfärbt oder so.

Da soll dann noch mehr passieren, aber dafür mach ich wohl besser nen neuen Thread auf, wenn das Startproblem hier gelöst ist.

Arbeite auf Windows 7 mit Openoffice 3.4.1

(Preview: Wenn X dann andere Zelle+5)

Viele Grüsse,
Suboptimant

Re: Zelle anklicken, Kreuzchen erscheint?

Verfasst: Sa, 12.01.2013 02:52
von F3K Total
Hi,
das ist ein Thema fürs Forum OOo Basic und Java.
Naja, hier ein kleines Beispiel. Geht per Doppelklick.

Gruß R

Re: Zelle anklicken, Kreuzchen erscheint?

Verfasst: Sa, 12.01.2013 06:16
von boser
Hallo F3K Total,

ich hab dein Beispiel unter openSUSE 11.4 & LO 3.5 getestet. Nur zu Info.
Leider wird das Modul nicht ausgeführt , bzw. es ändert sich nichts, wenn ich ein Doppelklick mache.

[Edit]
Falschmeldung, ich muss das Beispiel lokal starten , nicht aus dem Internet. Es geht und die Felder werde schön rosa.
[/Edit]

Re: Zelle anklicken, Kreuzchen erscheint?

Verfasst: Sa, 12.01.2013 08:44
von Karolus
Hallo

@Rik
Bei solchen ereignisgesteuerten Sachen kannst du den "Auslöser" des Ereignisses (hier aktuelle selektierte Zelle) als Argument mitgeben, das spart die Referenzierung über thisComponent.CurrentSelection

mit Python unter Ausnutzung aller Tricks wirds dann ein Einzeiler:

Code: Alles auswählen

def toggle_x(event):
    event.setString(('x','')[event.String == 'x']) 
Karolus

Re: Zelle anklicken, Kreuzchen erscheint?

Verfasst: Sa, 12.01.2013 09:13
von F3K Total
Hallo Karolus,
danke für den Tipp! Geht auch in Starbasic mit einer Zeile, die ist aber etwas länger.

Code: Alles auswählen

Sub toggle_CellBackColor(x)
    if x.CellBackColor = 16711935 then x.CellBackColor = -1 else if x.CellBackColor = -1 then x.CellBackColor = 16711935
End Sub
Gruß Rik