Zellen Ereignisse wie?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zellen Ereignisse wie?

Re: Zellen Ereignisse wie?

von komma4 » Di, 23.12.2008 12:06

steffn hat geschrieben:dass in thailand eine andere zeitzone mit anderer uhrzeit ist
... nicht nur das: Wir haben schon Jahreswechsel gehabt: aktuell ist hier das Jahr 2552
;-)


(OK: ich gebe zu, nach dem "Zug durch die "Gemeinde" morgens um 5 nicht mehr so genau hingesehen zu haben)


Alles wird Gut!

Re: Zellen Ereignisse wie?

von steffn » Mo, 22.12.2008 22:31

dass in thailand eine andere zeitzone mit anderer uhrzeit ist, wusste ich, dass dort aber die zeit fünfmal langsamer vergeht ist mir neu
(17.11. nich 12.)
:mrgreen:

joa das war mein zweiter tag hier im forum und die sdk kannte ich da noch nicht

und mit einfach meinte ich so etwas wie 'rechte maustaste', 'ereignisse', fertig
8-)

Re: Zellen Ereignisse wie?

von komma4 » Mo, 22.12.2008 21:58

Ist 'ne Woche alt, aber da muss (?) ich doch noch mal antworten...
steffn hat geschrieben:Ich glaube mittlerweile relativ sicher sagen zu können:
Die Handhabung der Ereignisse einer Zelle in Calc sind auf einfache Art und Weise nicht zugänglich. - Richtig?
"Einfach" liegt im Auge des Betrachters. Ich habe es verstanden, ein Beispiel wurde Dir benannt.

steffn hat geschrieben:Und es eine vollständige Hilfe für alle "eingebauten" Schlüsselwörter wie 'getCurrentController', 'UNOListener' und Kumpanen mit Erklärung und Beispiel ist niemandem bekannt. - Richtig?
??

Ja: es gibt ein Nachschlagewerk für alle eingebauten Schlüsselwörter: http://development.openoffice.org ==> SDK
"Niemandem bekannt": nein: das SDK ist allgemein zugänglich und sehr vielen bekannt. Auch Beispiele sind im Developer's Guide vorhanden.

Re: Zellen Ereignisse wie?

von steffn » Mo, 17.11.2008 19:06

Ich glaube mittlerweile relativ sicher sagen zu können:
Die Handhabung der Ereignisse einer Zelle in Calc sind auf einfache Art und Weise nicht zugänglich. - Richtig?
Es ist tatsächlich einfacher, sich "die paar Zellen" in einem Dialog nachzubauen, da man deren Ereignisse im Vergleich dazu auf dem Tablett serviert bekommt. - Richtig?
Und es eine vollständige Hilfe für alle "eingebauten" Schlüsselwörter wie 'getCurrentController', 'UNOListener' und Kumpanen mit Erklärung und Beispiel ist niemandem bekannt. - Richtig?
^^

Re: Zellen Ereignisse wie?

von balu » Mo, 17.11.2008 18:38

Hallo steffn,
steffn hat geschrieben:
balu hat geschrieben:Bist Du dir da ganz sicher das dies nur mit Makros zu realisieren ist?
Nein, überhaupt nicht, ich kenne aber aus meiner "Excel-Zeit" nur Makros.
Nun ja, ein paar kleinigkeiten kann man wohl auch ohne Makro realisieren, z.B. Zellformat Änderungen, aber das scheint für dich wohl ehern nicht so relevant zu sein. Besonders wenn ich diese aussage lese.
steffn hat geschrieben: Benutzer gibt einen Buchstaben ein, was meiner Meinung nach das Ereignis ~Text_change~ auslöst. Daraufhin wird der Buchstabe in einen Großbuchstaben verwandelt und der Fokus springt nach einem speziellem System zur nächsten Zelle.
Denn das ist wirklich nur per Makro zu realisieren.

steffn hat geschrieben: ... dass ich bisher eigentlich gar keine Ahnung davon habe, was die Schlüsselwörter und "das dahinter" (wie zum Beispiel createUnoListener("MyApp_", "com.sun.star.awt.XKeyHandler")) bedeuten und wie sie funktionieren.
Vielleicht solltest Du mal in unserem "OOo Basic und Java" Forum reinschauen, und dort speziell dir die Linkliste in Informationen zur StarBasic-Programmierung anschauen. Da gibt es auch Links zu Seiten wo dir dies genauer erklärt wird.


Sorry, fehler meinerseits, hätte bezüglich Winfrieds Frage genauer sein sollen. Denn ich bezog mich auf diese
komma4 hat geschrieben: Konkrete Frage: wie sieht Dein Szenario aus, was passiert, wie willst Du reagieren?
Ich zumindest sehe jetzt aber, dass Du erstmal mehr Hintergrundwissen dir aneignen möchtest.

Ich wünsche dir viel Erfolg beim umstieg auf OOo :D


Gruß
balu

Re: Zellen Ereignisse wie?

von komma4 » Mo, 17.11.2008 18:21

steffn hat geschrieben:Benutzer gibt einen Buchstaben ein[..]Daraufhin wird der Buchstabe in einen Großbuchstaben verwandelt und der Fokus springt nach einem speziellem System zur nächsten Zelle.
Das ist machbar.
Lese die Hinweise von Stephan zur Programmierung (erstes Posting im Basic-Bereich): ohne API-Programmierung verwandelst Du Calc nicht in eine Anwendung (meiner Meinung nach sollten hier benutzerfreundliche Dialoge für eine "formatierte" Dateneingabe angeboten werden).

Andrews Makro-Dokument hat mir sehr geholfen.

Viel Erfolg.

Re: Zellen Ereignisse wie?

von steffn » Mo, 17.11.2008 17:51

balu hat geschrieben:Wie kommst Du auf die Idee, das dies so funktionieren würde wie Du dir das vorstellst!?
Ich dachte mir, dass ich irgendwie Zugang zu den Ereignissen einer Zelle erlangen kann, wie zu denen eines selbst eingefügten Steuerelements.
balu hat geschrieben:Diese Formulierung ist etwas ungenau. Was verstehst Du darunter? Soll beim eingeben eines Zeichen in einer aktivierten Zelle etwas geschehen? Und wenn ja, was soll geschehen?
Ich verstehe darunter, dass ein Ereignis ausgelöst wird, ich diesem Ereignis ein Makro zuweisen kann, in dem dann von mir eingegebener Programmcode ausgeführt wird.
balu hat geschrieben:Bist Du dir da ganz sicher das dies nur mit Makros zu realisieren ist?
Nein, überhaupt nicht, ich kenne aber aus meiner "Excel-Zeit" nur Makros.
balu hat geschrieben:Winfried hat da schon die richtige Frage gestellt, die Du aber nicht richtig beantwortet hast.
Ja, denn die habe ich letzte Nacht nicht wirklich verstanden ... und auch jetzt noch nicht.
balu hat geschrieben:Wenn Du ein Zeichen von ca. 105 möglichen eingibst, was genau soll passieren?
Benutzer gibt einen Buchstaben ein, was meiner Meinung nach das Ereignis ~Text_change~ auslöst. Daraufhin wird der Buchstabe in einen Großbuchstaben verwandelt und der Fokus springt nach einem speziellem System zur nächsten Zelle.
balu hat geschrieben:Also gib uns genauere angaben, denn nur dann können wir dir helfen.
Ich habe versucht, mich so allgemein wie möglich zu halten, damit ich möglichst viel selber machen kann beziehungsweise muss. Dafür spricht, dass ich nachher sagen kann, dass ich es allein gemacht habe. Dagegen, dass ich bisher eigentlich gar keine Ahnung davon habe, was die Schlüsselwörter und "das dahinter" (wie zum Beispiel createUnoListener("MyApp_", "com.sun.star.awt.XKeyHandler")) bedeuten und wie sie funktionieren. Ich bin einfach gesagt an die Excel-Hilfe-Beispiele mit Visual-Basic-Programmcode in Klartext gewöhnt.

Re: Zellen Ereignisse wie?

von komma4 » Mo, 17.11.2008 11:26

steffn hat geschrieben:Nach jedem eingetippten Zeichen
Dafür ist ein keyhandler zuständig:

Code: Alles auswählen

Sub RegisterKeyHandler
     Doc = ThisComponent.getCurrentController
     oKeyHandler = createUnoListener("MyApp_", "com.sun.star.awt.XKeyHandler")

     Doc.addKeyHandler(oKeyHandler) 

End Sub

Sub UnregisterKeyHandler

     Doc.removeKeyHandler(oKeyHandler)

End Sub

Sub MyApp_disposing(oEvt)

End Sub

Function MyApp_KeyPressed(oEvt) As Boolean

   Doc = ThisComponent.getCurrentController            
   Cell = Doc.getselection()   
   
   if((oEvt.Keycode >= 257) and (oEvt.Keycode <= 260))then
      if( oEvt.Keycode = 257)then
         msgbox ("1 was pressed")
         MyApp_KeyPressed = True   
      end if
      if( oEvt.Keycode = 258)then
         msgbox ("2 was pressed")
         MyApp_KeyPressed = True   
      end if
      if( oEvt.Keycode = 259)then
         msgbox ("3 was pressed")
         MyApp_KeyPressed = True   
      end if
      if( oEvt.Keycode = 260)then
         msgbox ("4 was pressed")
         MyApp_KeyPressed = True   
      end if
      else
         MyApp_KeyPressed = False
   end if
      
End Function

Function MyApp_KeyReleased(oEvt) As Boolean

     MyApp_KeyReleased = False
    
End Function 
Funktionierendes Beispiel (zum Umbauen) aus: http://www.oooforum.org/forum/viewtopic.phtml?t=33020

Re: Zellen Ereignisse wie?

von balu » Mo, 17.11.2008 11:15

Hallo steffn,
steffn hat geschrieben: ich würde Zellen gerne Ereignisse und Makros auslösen lassen und wundere mich darüber, dass das für mich bisher scheinbar unmöglich ist.
Geht schon, aber dazu fehlen ganz genau angaben wie was geschehen soll. Die einzige möglichkeit die mir da momentan dazu einfällt, ist das über
-> Ansicht
-> Symbolleiste
-> Formular-Steuerelemente
zu regeln.

steffn hat geschrieben: Ich gehe eigentlich fest davon aus, dass das irgendwie möglich ist, ohne mir "eigene" Zellen in einem Dialog zu basteln.
Wie kommst Du auf die Idee, das dies so funktionieren würde wie Du dir das vorstellst!? Gibt es da ein vergleichbares Tabellenkalkulationsprogramm das dies kann? Ohne Basteln geht da wohl nichts.

steffn hat geschrieben: Nach jedem eingetippten Zeichen in der Tabelle soll automatisch Programmcode ablaufen.
Diese Formulierung ist etwas ungenau. Was verstehst Du darunter? Soll beim eingeben eines Zeichen in einer aktivierten Zelle etwas geschehen? Und wenn ja, was soll geschehen?

Bist Du dir da ganz sicher das dies nur mit Makros zu realisieren ist?

Winfried hat da schon die richtige Frage gestellt, die Du aber nicht richtig beantwortet hast. Deshalb frage ich jetzt etwas anders.
Wenn Du ein Zeichen von ca. 105 möglichen eingibst, was genau soll passieren?
-> Zeilenumbruch
-> andere Zelle verfärbt sich
-> Daten aus einer anderen Datei, oder Tabelle einlesen
-> Daten in eine andere Datei, oder Tabelle schreiben
-> es soll was ausgerechnet werden
-> an einer vorher defenierten Stelle soll ein Text ausgegeben werden
-> ... usw, etc.

Vielleicht läßt sich ja auch einiges davon via Formel realisieren. Aber das wissen wir ohne genauere angaben nicht. Also gib uns genauere angaben, denn nur dann können wir dir helfen.


Gruß
balu

Re: Zellen Ereignisse wie?

von steffn » Mo, 17.11.2008 01:49

Nach jedem eingetippten Zeichen in der Tabelle soll automatisch Programmcode ablaufen.

Re: Zellen Ereignisse wie?

von komma4 » So, 16.11.2008 22:10

Willkommen im Forum,
steffn hat geschrieben:dass das für mich bisher scheinbar unmöglich ist. [...] fühle ich mich erschlagen von den unzähligen Treffern, vielen Foren und unzutreffenden Beispielen.
Also, ich halte fest: Du hast es noch nicht verstanden (viele Andere schon)

steffn hat geschrieben:Ich hätte gerne 'Rechtsklick auf Zelle', 'Zelle formatieren...', 'Ereignisse' - aber da ist nichts
Ein "Rechtsklick" ist meist nicht interessant (da öffnet sich nur ein Menu).
"Formatierungen" haben IMHO in Calc-Dateien nur zur Präsentation zu dienen - da brauche ich auf Formatänderungen (durch einen Benutzer) nicht reagieren.


Zurück zu Deiner Frage: es ist möglich.
im Allgemeinen wird ein listener und/oder events programmiert, um Wertänderungen zu beobachten und weiter zu reagieren.
Es ist auch möglich auf den ViewController zu reagieren.... brauchst Du das wirklich?

Konkrete Frage: wie sieht Dein Szenario aus, was passiert, wie willst Du reagieren?

Zellen Ereignisse wie?

von steffn » So, 16.11.2008 17:37

Hallo,

ich würde Zellen gerne Ereignisse und Makros auslösen lassen und wundere mich darüber, dass das für mich bisher scheinbar unmöglich ist. Ich gehe eigentlich fest davon aus, dass das irgendwie möglich ist, ohne mir "eigene" Zellen in einem Dialog zu basteln. Aber passende Texte dazu habe ich bisher nicht finden können. Auf der Suche im Internet fühle ich mich erschlagen von den unzähligen Treffern, vielen Foren und unzutreffenden Beispielen.

Ich hätte gerne 'Rechtsklick auf Zelle', 'Zelle formatieren...', 'Ereignisse' - aber da ist nichts :D

Ist mir überhaupt zu helfen?

Nach oben