Text-Position merken, zurückspringen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Lenu
*******
Beiträge: 1085
Registriert: Sa, 30.10.2004 09:24

Text-Position merken, zurückspringen

Beitrag von Lenu »

Hallo
Ich suche eine Möglichkeit, eine Art Back-Button zu kreieren. Es geht darum: wenn ich mit einem Link im Dokument irgendwohin surfe, dass ich dann wieder an die Ausgangsposition zurückkomme. Und zwar nicht über einen weiteren direkten Link, sondern allgemein, einfach zurück, dahin, wo ich den Link gedrückt hatte.
Es müsste also möglich sein, die Position, an der ein Link gedrückt wird, zu speichern sodass man an der 'Ankunftsstelle' ein Makro auslösen kann, welches den Cursor wieder zurücksetzt.
Ich blättere hier grade im "Basic Programmierhandbuch" unter dem Thema TextCursor, komme aber irgendwie nicht weiter.
Hat jemand eine Idee?
Danke und Gruss,
Lenu
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Lenu,

das ist nicht so einfach - weil hier viele verschieden Dinge eine Rolle spielen. Der Weg sähe wie folgt aus:

Beim Klicken auf den Link muss ien Makro starten, welches folgendes tut:
1. Aktuelle Position feststellen (geht nur über den CurrentController -> und der wiederum steuert der View-Cursor. Also: View-Cursor auslesen, einen Textcursor erstellen, diesem die ausgelesene Stelle übergeben (kann jetzt aber leider nur ein Absatz- oder Absatzteil sein, also zum Beispiel der Link - meist anders formatiert als der absatz selbst und somit ein Absatzteil.)
2. den Textcursor in einer globalen Varaiblen speichern (bzw. das Textrange-Objekt)

Jetzt erfolgt der Sprung zum Linkziel.

3. Über einen Button, Shortcut oder was auch immer ein Makro zum Zurückspringen starten.
Dieses liest den gespeicherten Textcursor aus, und muss dieses Textrange-Objekt nun dem ViewCursor übergeben (denn nur der ist sichtbar!). So, nun wäre man wieder am Ausgangspunkt.

Tia, das ist der Weg. Und dazwischen liegt viel, viel Code. Sorry, aber leider fehlt mir aktuell die Zeit, das ganze umzusetzen.
Aber wenn du dich dranmachst und irgendwo hängst, helfe ich natürlich gerne.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hallo Lenu,
Was sind beans?
Bohnen? Na, im Ernst - eine genaue Übersetzung kann ich dir auch nicht geben. Hat sich so in der Computersprache eingebürgert - für kleine Schnipsel, Teile, Codefragmente, ....
Bei OOo ist mit Beans ein spezielles Basic-Modul gemeint, in dem man Strukturen für Eigenschaften - Paare definiert hat.

Übrigens: zu deinem ursprünglichen Problem: mir ist noch ein anderer Weg eingefallen - wahrscheinlich einfacher.
Beim Klick auf den Link startet das Makro:
Es fügt zuerst eine Bookmark an der Stelle des aktuellen Cursors ein., springt dann an die Link-Zieladresse. Ein anderes Makro (Taste oder Menüpunkt, Knopf oder Tastaturkürzel) springt dann zurück zu der Bookmark. Das ist recht einfach zu realisieren.
Musst du lediglich eine Schleife einbauen, die beim Erstellen der Bookmark zuerst das Dokument durc hsucht nach einer Bookmark gleichen Namens und diese löscht (frühere Sprungstelle).

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Ich habe bisher auch keine Literatur gefunden, die mir den Einstieg erleichtert hätte.
Ja, ich habe alles wesentliche Material fürs Forum hier: http://oooforum.de/viewtopic.php?t=1553 ... 21f400850e zusammengefaßt. Die dort aufgeführten Quellen haben mir eigentlich genügt um mich in die Programmierung einzuarbeiten.
Und vor alem solltest Du auch im englischen Forum nachlesen, dort gibt es sehr viele postings mit Beispielcode.

Gedruckte Bücher zu Thematik gibt es auf deutsch noch nicht(*), das derzeitige englische Standardwerk ist das auch von Dir angeführte Buch von Pitoniak (ISBN 1-930919-51-4) und das ist doch toll, oder nicht? Außerdem schreibt der Thomas mit dem Du gerade hier diskutierst hast derzeitig ein Buch über OOo-Basic-Programmierung, das wird dann das erste relevante deutschsprachige Buch dazu sein (Erscheinungsdatum (IMHO) 3.Quartal 2005).

(*)das einzige was relevante Codemengen enthält ist "StarOffice 6" vom c&l-Verlag. Du solltest das aber nicht kaufen weil der Programmierteil ist auch nur 52 Seiten lang und das meiste sind Banalitäten. (die Neuauflage des gleichen Titels zu SO 7 enthält übrigens garnichts mehr zur Programmierung)
Und wenn man irgendwo auf Beispiel-Code trifft, so werden von den Leuten meist Variablennamen benutzt wie oCursor oder Dispacher, von denen man (ich) , wenn man ihnen begegnet, nicht weiss, handelt es sich jetzt dabei um einen Variablennamen oder ist das ein reservierter Begriff für ein Objekt, einen Dienst oder was auch immer.
Dabei ist es nicht mal so, dass ich Null Ahnung hätte. Ein Perl-Script kann ich auch schreiben und auch sonst habe ich schon mit ControlLanguages gearbeitet.
Du kannst natürlich nicht wissen, welche Wörter reservierte Wörter sind, bloß Du kannst doch wenn Du eine beliebige Programmiersprache kennst in jeder anderen erkennen was die Variablen sind. Oder nicht?
Und in dem einem CodeBeispiel was Du anführst, will ich Dir ja garnicht völlig widersprechen ...
Das ist jetzt aber nur meine unwichtige Meinung und keine Kritik an Dir.
Ich sag mal so: ich habe von Null angefangen und habe vielleicht 3Monate gebraucht bis ich es verstanden hatte (so 2-4 Stunden pro Tag), was nun wieder nicht heißt das ich jedes Detail verstehe, aber das tue ich in VBA auch nicht.

UNd zum eigentlichen Thema, habe ich mich herausgehalten, weil ich es derzeitig leider so sehe wie Thomas.
Vielleicht ein Hinweis: ich bin mir relativ sicher das in diesem Forum hier (Wahrscheinlich Writer-Forum) schon mal ein User nach einer entsprechenden Tastenkombination gefragt hat. Leider konnte ich den Post nicht mehr finden. Falls Du den finden solltest, sollte dort nach meiner Erinnerung angeführt sein das es eine ältere Version gab wo dieses "Back" direkt zur Verfügung stand. Falls ich wüßte welche das wäre (und falls es sich nicht um SO5.1/5.2 könnte man diese Version installieren und versuchen das "Back" als Makro aufzeichnen. Die Hoffnung wäre das die Funktionalität auch in derzeitigen Versionen noch versteckt vorhanden ist. Denn wenn Du das Buch von Pitoniak kennst wirst Du dort kein Dispatcher-Kommando finden was dem "Back" (im geforderten Sinne) entspricht, aber vielleicht ist es nur nicht dokumentiert (oder ich habe es überlesen). Aber wie gesagt ich kann den post nicht finden und es ist nur eine sehr vage Hoffnung.

Gruß
Stephan
molnium
**
Beiträge: 40
Registriert: So, 26.06.2005 13:29

Beitrag von molnium »

Hallo!

sorry, ich grabe das hier mal aus, weil ich nach einiger Suche zur Lösung der Problematik, auch im englischen Forum nix gefunden habe.
z.b. http://www.oooforum.org/forum/viewtopic.phtml?t=12316
http://www.openoffice.org/issues/show_bug.cgi?id=16817
http://www.openoffice.org/issues/show_bug.cgi?id=13647
http://www.openoffice.org/issues/show_bug.cgi?id=5608

Wie sieht es denn inzwischen aus? Selbst in der aktuellsten Version von Staroffice/OOo ist das scheinbar nicht drin. In Word z.B. dagegen schon - und in SO 5.2 war es auch meiner Meinung nach definitiv drin.

Da ich leider keine Ahnung vom Programmieren von Makros hab (hab aber schon Fortschritte mit dem Rekorder gemacht :-) ) bin ich leider nicht in der Lage, das irgendwie selber zu lösen.

mFg
m
Raindancer
**
Beiträge: 37
Registriert: Mo, 13.02.2006 23:55
Wohnort: Deutschland

Beitrag von Raindancer »

Hallo Lenu,

ich kann Dir nur raten keinesfalls verzweifeln. Ich bin auch ein Anfänger und seit einiger Zeit bemüht von MSO auf OOo umzusteigen, d.h. von VB6, VBA zu OOo-Basic (Starbasic).
Ich kann Dir nicht sagen, wie oft ich kurz davor war den ganzen PC aus dem Fenster zu werfen. Meine (höchst unsittlichen) Flüche werde ich hier besser nicht ... Aller Anfang ist schwer.

Im Internet findest Du eine unmenge von Anleitungen, ToDos etc. Der Link von Stephan ist ein guter Start.
Dann kann ich aus eigener Erfahrung empfehlen, einfach in alten Threads hier im Forum zu lesen - DIE Informationsquelle schlechthin.

Weil ich früher mal in Clipper, kurz in C, dann VB, VBA etc. programmiert habe, dachte ich auch dann fangen wir mal los mit nem Großprojekt. Ist aber doch nicht so einfach - will sagen versuche am Anfang erst die Sprachelemente, Variablen und den restlichen Grundkram zu verinnerlichen.

... und bleib dabei, OOo ist manchmal ein bißchen "schwer" aber insgesamt wirklich gut.

Hallo Stephan,
Stephan hat geschrieben:
... Gedruckte Bücher zu Thematik gibt es auf deutsch noch nicht(*), das derzeitige englische Standardwerk ist das auch von Dir angeführte Buch von Pitoniak (ISBN 1-930919-51-4) und das ist doch toll, oder nicht? Außerdem schreibt der Thomas mit dem Du gerade hier diskutierst hast derzeitig ein Buch über OOo-Basic-Programmierung, das wird dann das erste relevante deutschsprachige Buch dazu sein (Erscheinungsdatum (IMHO) 3.Quartal 2005).

(*)das einzige was relevante Codemengen enthält ist "StarOffice 6" vom c&l-Verlag. Du solltest das aber nicht kaufen weil der Programmierteil ist auch nur 52 Seiten lang und das meiste sind Banalitäten. (die Neuauflage des gleichen Titels zu SO 7 enthält übrigens garnichts mehr zur Programmierung) ...
Darf ich (als Anfänger) Dir ein wenig widersprechen? :D
Keine Kritik!!

Es gibt nicht viel gedrucktes, aber ...
Mein freundlicher Arbeitgeber hat mir ein Buch zu OOo spendiert. Das ist recht umfangreich, an manchen Stellen - vor allem wenn es um UNO und API geht - etwas schwierig und auch nicht ganz billig. Darf ich, ohne dass das Werbung ist, hier den Titel nennen?
Wenn nicht, dann bitte vom Mod bitte löschen.

OpenOffice.org Basic (Sprache, UNO, API)
Computer & Literatur Verlag GmbH
878 Seiten, die ersten 114 Basic, Unterprogs, etc. allg.
dann Dialog-Designer, Steuerelemente ...
ab Seite 336 das API
ISBN 3-936546-14-2
49,90 Euronen

Wie gesagt am Anfang fast noch anfängertauglich, ab S. 336 wird's dann heftig. ...und tiefergehende Prog-beispiele könnten evtl. auch mehr sein.
Stephan hat geschrieben:
.Außerdem schreibt der Thomas mit dem Du gerade hier diskutierst hast derzeitig ein Buch über OOo-Basic-Programmierung, das wird dann das erste relevante deutschsprachige Buch dazu sein (Erscheinungsdatum (IMHO) 3.Quartal 2005)...
ääh, 3.Quartal 2005? Wir haben doch schon 2006. Ist das Buch schon zu haben. Täte mich echt interessieren.


Gruß
Ralf
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Ralf,

schau mal, wann der Thread begann... im Feb 2005... seit dem hat sich einiges getan.
Und - ja, du darfst natürlich Buchtitel benennen und bewerten - solange es keine Beschimpfungen etc. werden - aber das ist ja nicht so :-)
3.Quartal 2005? Wir haben doch schon 2006. Ist das Buch schon zu haben. Täte mich echt interessieren.
Es ist :-) und an den Verkaufszahlen gemessen auch die Referenz. Details siehe Signatur :-)

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Raindancer
**
Beiträge: 37
Registriert: Mo, 13.02.2006 23:55
Wohnort: Deutschland

Beitrag von Raindancer »

Hallo Thomas,

auweia, :shock: ist schon echt schlecht, wenn das mit den Augen nicht mehr so richtig funzt. :oops:

Mist - und morgen ist auch noch Feiertag. Nein, ist natürlich toll, muss man nicht arbeiten, aber leider hat auch mein Lieblingsbuchladen zu.
Also am Mittwoch - dann bin ich unterwegs. :)

So long und schönsten Feiertag
Gruß
Ralf
Antworten