BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

Wo sind die Daten für einen generierten URL gespeichert?

CALC ist die Tabellenkalkulation, die Sie immer wollten.
mikele
Beiträge: 771
Registriert: Sa 23. Jul 2011, 22:09

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von mikele » So 4. Dez 2016, 14:18

Hallo,
da beobachtest du (meines Wissens) die Variable und nicht das Objekt. Für die Untersuchung des Objekts empfehle ich dir einen Objektinspektor wie z. B. MRI.
http://extensions.services.openoffice.o ... ction-tool
Gruß,
mikele

kodela
Beiträge: 107
Registriert: Di 22. Jul 2014, 20:08

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von kodela » So 4. Dez 2016, 15:58

Hallo mikele,

ja, das ist richtig, man beobachtet eine Variable, im konkreten Fall die Variable oZelle. Trotzdem kann man das doch nicht so eng sehen, denn mit oZelle wird ja zum Beispiel die Instanz eines sehr komplexen Objektes gezeigt, nicht nur einer Variablen.

Dieses Objekt enthält alle Informationen einer Zelle. Das sind so viele, dass ich in meiner stundenlangen Suche längst noch nicht alle gesehen habe. Sehr leicht fand ich den Text-Inhalt einer Zelle in oZelle.Formula, in oZelle.FormulaLocal und noch einmal in oZelle.String. Ich fand ihren absoluten Namen, ihre Größe, ihre Position, die Vorder- und Hintergrundfarbe, den Font für die Schrift und tausend andere Informationen. Man sollte meinen, entweder muss sie auch einen eingefügten Link oder zumindest einen Verweis auf diesen Link enthalten.

Deinen Tipp, einen Objektinspektor zu verwenden, werde ich einmal im Auge behalten. Hast Du damit Erfahrung? Was leistet ein solcher im Gegensatz zum Beobachter-Fenster des Editors?

MfG, kodela

karolus
Beiträge: 651
Registriert: Di 23. Feb 2010, 12:07

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von karolus » So 4. Dez 2016, 16:45

Mit Mri kannst du mit ein paar Mausklicks zB. die momentan selektierte Zelle mit einem Link drin untersuchen:

→Extras→AddOns→Mri(Selektion) …

Da hast du dann einen Dialog mit allen Attributen und Methoden die es für eine Zelle gibt.
Die Url zum Link findest du da per …Textfields.getByIndex(0).URL

kodela
Beiträge: 107
Registriert: Di 22. Jul 2014, 20:08

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von kodela » So 4. Dez 2016, 19:16

Hallo mikele,

MRI ist installiert, aber ich bin zu dumm, um es zu verstehen. Du schreibst: →Extras→AddOns→Mri(Selektion) …

Na ja, bis zu den drei Punkten habe ich es geschafft. Wie soll es weiter gehen, wenn ich zum Beispiel mehr zu dem Objekt oZelle herausfinden will. Wenn ich das Makro im Bearbeiten-Modus öffne und es nach

Code: Alles auswählen

oZelle.insertTextContent(oTextObjekt.createTextCursor(), oLink, 1) 
dann oZelle selektiere und nun MRI <- Selection öffne, tun sich zwei Dialogfenster auf, MRI und ein namenloses. Im MRI-Fenster sind alle Felder, in denen etwas stehen könnte, leer und im dem namenlosen gibt es nur einen Textbereich in dem steht links oben "void". Unten rechts ist eine Schaltfläche "close".

Was kann ich jetzt tun. Keine Ahnung. Also selektiere ich über die Menüoption Targets "Str8ts.ods.Standard OpenOffice Basic", worauf sich etwas tut. Im Anzeigebereich in der Sektion Properties wird dies gezeigt:

Code: Alles auswählen

ActiveFrame               .frame.XFrame                     -void-              Pseud                               
ComponentWindow           .awt.XWindow                      -INTERFACE-         Pseud     Read_Only                 
ContainerWindow           .awt.XWindow                      -INTERFACE-         Pseud     Read_Only                 
Controller                .frame.XController                -INTERFACE-         Pseud     Read_Only                 
Creator                   .frame.XFramesSupplier            -INTERFACE-         Pseud                               
DispatchRecorderSupplier  .frame.XDispatchRecorderSupplier  -void-                        Transient              0  
Frames                    .frame.XFrames                    -INTERFACE-         Pseud     Read_Only                 
ImplementationId          []byte                            -SEQUENCE-          Pseud     Read_Only                 
ImplementationName        string                            com.sun.star.co...  Pseud     Read_Only                 
IndicatorInterception     .task.XStatusIndicator            -void-                        Transient              4  
IsHidden                  boolean                           False                         Read_Only,Transient    1  
LayoutManager             .frame.XLayoutManager             -INTERFACE-                   Transient              2  
Name                      string                            ""                  Pseud                               
Properties                [].beans.Property                 -Sequence-          Pseud     Read_Only                 
PropertySetInfo           .beans.XPropertySetInfo           -INTERFACE-         Pseud     Read_Only                 
SupportedCommandGroups    []short                           -Sequence-          Pseud     Read_Only                 
SupportedServiceNames     []string                          -Sequence-          Pseud     Read_Only                 
Title                     string                            Str8ts.ods.Stan...            Transient              3  
Types                     []type                            -Sequence-          Pseud     Read_Only                 
unter der Sektion Methods noch etwas mehr:

Code: Alles auswählen

acquire                              ()                                                  void                          .uno.XInterface                         
activate                             ()                                                  void                          .frame.XFrame                           
addCloseListener                     ( [in] .util.XCloseListener Listener )              void                          .util.XCloseBroadcaster                 
addEventListener                     ( [in] .lang.XEventListener xListener )             void                          .lang.XComponent                      .uno.RuntimeException  
addFrameActionListener               ( [in] .frame.XFrameActionListener xListener )      void                          .frame.XFrame                           
addPropertyChangeListener            ( [in] string aPropertyName, [in] .beans.XPropertyChangeListener xListener )  void                          .beans.XPropertySet                   .beans.UnknownPropertyException, .lang.WrappedTargetException, .uno.RuntimeException  
addTitleChangeListener               ( [in] .frame.XTitleChangeListener xListener )      void                          .frame.XTitleChangeBroadcaster          
addVetoableChangeListener            ( [in] string PropertyName, [in] .beans.XVetoableChangeListener aListener )  void                          .beans.XPropertySet                   .beans.UnknownPropertyException, .lang.WrappedTargetException, .uno.RuntimeException  
close                                ( [in] boolean DeliverOwnership )                   void                          .util.XCloseable                      .util.CloseVetoException  
contextChanged                       ()                                                  void                          .frame.XFrame                           
createStatusIndicator                ()                                                  .task.XStatusIndicator        .task.XStatusIndicatorFactory           
deactivate                           ()                                                  void                          .frame.XFrame                           
dispose                              ()                                                  void                          .lang.XComponent                      .uno.RuntimeException  
disposing                            ( [in] .lang.EventObject Source )                   void                          .lang.XEventListener                  .uno.RuntimeException  
findFrame                            ( [in] string aTargetFrameName, [in] long nSearchFlags )  .frame.XFrame                 .frame.XFrame                           
focusGained                          ( [in] .awt.FocusEvent e )                          void                          .awt.XFocusListener                     
focusLost                            ( [in] .awt.FocusEvent e )                          void                          .awt.XFocusListener                     
getActiveFrame                       ()                                                  .frame.XFrame                 .frame.XFramesSupplier                  
getComponentWindow                   ()                                                  .awt.XWindow                  .frame.XFrame                           
getConfigurableDispatchInformation   ( [in] short CommandGroup )                         [].frame.DispatchInformation  .frame.XDispatchInformationProvider     
getContainerWindow                   ()                                                  .awt.XWindow                  .frame.XFrame                           
getController                        ()                                                  .frame.XController            .frame.XFrame                           
getCreator                           ()                                                  .frame.XFramesSupplier        .frame.XFrame                           
getFrames                            ()                                                  .frame.XFrames                .frame.XFramesSupplier                  
getImplementationId                  ()                                                  []byte                        .lang.XTypeProvider                   .uno.RuntimeException  
getImplementationName                ()                                                  string                        .lang.XServiceInfo                    .uno.RuntimeException  
getName                              ()                                                  string                        .frame.XFrame                           
getProperties                        ()                                                  [].beans.Property             .beans.XPropertySetInfo               .uno.RuntimeException  
getPropertyByName                    ( [in] string aName )                               .beans.Property               .beans.XPropertySetInfo               .beans.UnknownPropertyException, .uno.RuntimeException  
getPropertySetInfo                   ()                                                  .beans.XPropertySetInfo       .beans.XPropertySet                   .uno.RuntimeException  
getPropertyValue                     ( [in] string PropertyName )                        any                           .beans.XPropertySet                   .beans.UnknownPropertyException, .lang.WrappedTargetException, .uno.RuntimeException  
getSupportedCommandGroups            ()                                                  []short                       .frame.XDispatchInformationProvider     
getSupportedServiceNames             ()                                                  []string                      .lang.XServiceInfo                    .uno.RuntimeException  
getTitle                             ()                                                  string                        .frame.XTitle                           
getTypes                             ()                                                  []type                        .lang.XTypeProvider                   .uno.RuntimeException  
hasPropertyByName                    ( [in] string Name )                                boolean                       .beans.XPropertySetInfo               .uno.RuntimeException  
initialize                           ( [in] .awt.XWindow xWindow )                       void                          .frame.XFrame                           
isActive                             ()                                                  boolean                       .frame.XFrame                           
isTop                                ()                                                  boolean                       .frame.XFrame                           
loadComponentFromURL                 ( [in] string URL, [in] string TargetFrameName, [in] long SearchFlags, [in] [].beans.PropertyValue Arguments )  .lang.XComponent              .frame.XComponentLoader               .io.IOException, .lang.IllegalArgumentException  
queryDispatch                        ( [in] .util.URL URL, [in] string TargetFrameName, [in] long SearchFlags )  .frame.XDispatch              .frame.XDispatchProvider                
queryDispatches                      ( [in] [].frame.DispatchDescriptor Requests )       [].frame.XDispatch            .frame.XDispatchProvider                
queryInterface                       ( [in] type aType )                                 any                           .uno.XInterface                       .uno.RuntimeException  
registerDispatchProviderInterceptor  ( [in] .frame.XDispatchProviderInterceptor Interceptor )  void                          .frame.XDispatchProviderInterception    
release                              ()                                                  void                          .uno.XInterface                         
releaseDispatchProviderInterceptor   ( [in] .frame.XDispatchProviderInterceptor Interceptor )  void                          .frame.XDispatchProviderInterception    
removeCloseListener                  ( [in] .util.XCloseListener Listener )              void                          .util.XCloseBroadcaster                 
removeEventListener                  ( [in] .lang.XEventListener aListener )             void                          .lang.XComponent                      .uno.RuntimeException  
removeFrameActionListener            ( [in] .frame.XFrameActionListener xListener )      void                          .frame.XFrame                           
removePropertyChangeListener         ( [in] string aPropertyName, [in] .beans.XPropertyChangeListener aListener )  void                          .beans.XPropertySet                   .beans.UnknownPropertyException, .lang.WrappedTargetException, .uno.RuntimeException  
removeTitleChangeListener            ( [in] .frame.XTitleChangeListener xListener )      void                          .frame.XTitleChangeBroadcaster          
removeVetoableChangeListener         ( [in] string PropertyName, [in] .beans.XVetoableChangeListener aListener )  void                          .beans.XPropertySet                   .beans.UnknownPropertyException, .lang.WrappedTargetException, .uno.RuntimeException  
setActiveFrame                       ( [in] .frame.XFrame Frame )                        void                          .frame.XFramesSupplier                  
setComponent                         ( [in] .awt.XWindow xComponentWindow, [in] .frame.XController xController )  boolean                       .frame.XFrame                           
setCreator                           ( [in] .frame.XFramesSupplier Creator )             void                          .frame.XFrame                           
setName                              ( [in] string aName )                               void                          .frame.XFrame                           
setPropertyValue                     ( [in] string aPropertyName, [in] any aValue )      void                          .beans.XPropertySet                   .beans.UnknownPropertyException, .beans.PropertyVetoException, .lang.IllegalArgumentException, .lang.WrappedTargetException, .uno.RuntimeException  
setTitle                             ( [in] string sTitle )                              void                          .frame.XTitle                           
supportsService                      ( [in] string ServiceName )                         boolean                       .lang.XServiceInfo                    .uno.RuntimeException  
windowActivated                      ( [in] .lang.EventObject e )                        void                          .awt.XTopWindowListener                 
windowClosed                         ( [in] .lang.EventObject e )                        void                          .awt.XTopWindowListener                 
windowClosing                        ( [in] .lang.EventObject e )                        void                          .awt.XTopWindowListener                 
windowDeactivated                    ( [in] .lang.EventObject e )                        void                          .awt.XTopWindowListener                 
windowHidden                         ( [in] .lang.EventObject e )                        void                          .awt.XWindowListener                    
windowMinimized                      ( [in] .lang.EventObject e )                        void                          .awt.XTopWindowListener                 
windowMoved                          ( [in] .awt.WindowEvent e )                         void                          .awt.XWindowListener                    
windowNormalized                     ( [in] .lang.EventObject e )                        void                          .awt.XTopWindowListener                 
windowOpened                         ( [in] .lang.EventObject e )                        void                          .awt.XTopWindowListener                 
windowResized                        ( [in] .awt.WindowEvent e )                         void                          .awt.XWindowListener                    
windowShown                          ( [in] .lang.EventObject e )                        void                          .awt.XWindowListener                    
unter der Sektion Interfaces wieder weniger:

Code: Alles auswählen

(Interfaces)
com.sun.star.awt.XFocusListener
com.sun.star.awt.XTopWindowListener
com.sun.star.awt.XWindowListener
com.sun.star.beans.XPropertySet
com.sun.star.beans.XPropertySetInfo
com.sun.star.frame.XComponentLoader
com.sun.star.frame.XDispatchInformationProvider
com.sun.star.frame.XDispatchProvider
com.sun.star.frame.XDispatchProviderInterception
com.sun.star.frame.XFrame
com.sun.star.frame.XFramesSupplier
com.sun.star.frame.XTitle
com.sun.star.frame.XTitleChangeBroadcaster
com.sun.star.lang.XComponent
com.sun.star.lang.XServiceInfo
com.sun.star.lang.XTypeProvider
com.sun.star.task.XStatusIndicatorFactory
com.sun.star.uno.XInterface
com.sun.star.util.XCloseBroadcaster
com.sun.star.util.XCloseable

(Listeners)
com.sun.star.beans.XPropertyChangeListener
com.sun.star.beans.XVetoableChangeListener
com.sun.star.frame.XFrameActionListener
com.sun.star.frame.XTitleChangeListener
com.sun.star.lang.XEventListener
com.sun.star.util.XCloseListener
und unter Services sind es dann nur noch diese zwei Zeilen:

Code: Alles auswählen

(Supported Service Names)
com.sun.star.frame.Frame
Außerdem steht jetzt im ersten Textfeld links oben: "com.sun.star.frame.XFrame" und darunter "oinitialTarget".

Am unbenannten Fenster hat sich nichts getan. Es wartet anscheinend darauf, geschlossen zu werden.

Nichts von dem, was zu sehen ist und was ich hier gezeigt habe, sagt mir etwas und in der Hilfe fand ich auch nichts. Kannst Du mir dazu etwas sagen.

MfG, kodela

mikele
Beiträge: 771
Registriert: Sa 23. Jul 2011, 22:09

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von mikele » So 4. Dez 2016, 21:59

Hallo,
für die Inspektion innerhalb eines Makros lädst du zunächst die Bibliothek per (i.d R. die erste Codezeiel im Makro):

Code: Alles auswählen

globalscope.basiclibraries.loadlibrary("MRILib")
Dann kannst du per Codezeile z. B.

Code: Alles auswählen

mri ozelle
das Objekt mit all seinen Methoden und Eigenschaften inspizieren.
Gruß,
mikele

karolus
Beiträge: 651
Registriert: Di 23. Feb 2010, 12:07

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von karolus » So 4. Dez 2016, 22:14

Dann zitiere ich mich nochmal für lern- und lese-resistente…

karolus hat geschrieben:die momentan selektierte Zelle mit einem Link drin untersuchen:

→Extras→AddOns→Mri(Selektion)
Im Mri-Dialog scrollst du dann unter Properties nach unten bis Textfields da klickst du dann drauf… wechselt zum Reiter Methods klickst auf getByIndex mit vmtl. der Vorgabe 0 … →ok wieder zurück zu Properties und ganz genau hingucken was hinter URL steht.

kodela
Beiträge: 107
Registriert: Di 22. Jul 2014, 20:08

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von kodela » Mo 5. Dez 2016, 00:49

Hallo mikele, hallo karolus,

danke für Eure Antworten. Gleich vorweg bitte ich um Enschuldigung, ich habe Euch beide leider bei meiner letzten Antwort verwechselt. Der Hinweis, dass ich mit Mri und ein paar Mausklicks zB. die momentan selektierte Zelle mit einem Link drin untersuchen könne, wofür ich Mri über →Extras→AddOns→Mri(Selektion) aufrufen müsse, kam von Dir, karolus.

Und, wie Du aus meiner Antwort an mikele ersehen kannst, ist es nicht so, dass ich diesen Hinweis nicht gelesen hätte. Ich wende mich auch entschieden gegen die Unterstellung, lernunwillig zu sein. Wäre ich das, dann hätte ich mich mit dem Hinweis von mikele, dass man den URL per sURL= ozelle.textfields(0).url auslesen könne, nicht mehr weiter um die Sache zu kümmern brauchen. Weil ich aber mehr darüber in Erfahrung bringen wollte, wo und wie so ein URL in einem Cell-Objekt hinterlegt ist. bin ich an der Sache dran geblieben und habe dann den Fehler gemacht, in meiner Antwort nicht Dich, karolus, sondern mikele anzusprechen.

Gut, nun aber zum Thema.

@mikele:

Deinem Vorschlag entsprechend habe ich MRI über "globalscope.basiclibraries.loadlibrary("MRILib")" aufgerufen, um dann über "mri ozelle" das Cell-Objekt zu inspizieren. Es öffnet sich das leere MRI-Dialogfenster und ein zweites unbenanntes Fenster, in dem in einem Textfeld lediglich "void" steht. Unten rechts ist noch eine mit "close" beschriftete Schaltfläche. Dieses Fenster scheint von dem eigentlichen Anwendungsfenster abhängig zu sein, denn wenn ich das Hauptfenster minimiere, wird auch dieses Fenster minimiert oder wenn ich das Hauptfenster in den Vordergrund bringe, wird auch dieses unbenannte Fenster in den Vordergrund gebracht und es ist immer gegenüber dem Hauptfenster im Vordergrund (modaler Dialog). Der Basic-Editor ist davon nicht betroffen.

Ich kann jetzt zwar über die Menüoption Targets im MRI-Dialig ein Objekt öffnen, zum Beispiel den Desktop oder die Str8ts-Anwendung oder OpenOffice - Basc zu Str8ts. Aber das habe ich ja alles in meiner letzten Antwort schon beschrieben. Mehr gelingt mir leider nicht.

@karolus:

Danke für das, was Du mir jetzt, in Deiner letzten Antwort jedoch nur mit den drei Punkten mitgeteilt hast. Die Eigenschaft Textfields finde ich jetzt. Hier der vollständige Eintrag:

Code: Alles auswählen

TextFields     .container.XEnumerationAccess    -INTERFACE-     Pseud     Read_Only
Wenn ich auf Textfields nur einfach klicke oder selbst wenn ich die ganze Zeile selektiere/markiere, dann finde ich unter Methods keinen Eintrag getByIndex. Mache ich einen Doppelklick darauf, wird oben in der Auswahlliste --getTextField() angezeigt und unter Methods gibt es nun folgenden Eintrag:

Code: Alles auswählen

getByIndex__( [in] long Index ) __any__.container.XIndexAccess__.lang.IndexOutOfBoundsException,__.lang.WrappedTargetException
Für die großen Zwischenräume habe ich Unterstriche gesetzt.

Mache ich auf getByIndex einen Doppelklick, öffnet sich das schon erwähnte unbenannte Fenster mit folgendem Eintrag:

Code: Alles auswählen

getByIndex(
	[in] long Index
 )
Wieder zurück zu Properties finde ich nirgend wo URL. Hier alles, was man sieht:

Code: Alles auswählen

(Name)                 (Value Type)  (Value)                       (Info.)   (Attr.)    (Handle)  
Count                  long          1                             Pseud     Read_Only       
ElementType            type          com.sun.star.text.XTextField  Pseud     Read_Only       
ImplementationId       []byte        -SEQUENCE-                    Pseud     Read_Only       
ImplementationName     string        ScCellFieldsObj               Pseud     Read_Only       
SupportedServiceNames  []string      -Sequence-                    Pseud     Read_Only       
Types                  []type        -Sequence-                    Pseud     Read_Only       
Mache ich etwas falsch oder was kann sonst die Ursache sein, dass Du etwas siehst, was ich nicht sehe?

MfG, kodela

mikele
Beiträge: 771
Registriert: Sa 23. Jul 2011, 22:09

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von mikele » Mo 5. Dez 2016, 07:33

Hallo,
Mache ich auf getByIndex einen Doppelklick, öffnet sich das schon erwähnte unbenannte Fenster mit folgendem Eintrag:
In diesem Fenster kannst du eine 0 (der gewünschte Index) eingeben und dann geht's weiter.
Gruß,
mikele

kodela
Beiträge: 107
Registriert: Di 22. Jul 2014, 20:08

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von kodela » Mo 5. Dez 2016, 14:45

Hallo mikele,

danke für Deinen Hinweis. Jetzt finde ich die URL-Eigenschaft und man könnte nach einem Doppelklick, auf den hin sich das unbenannte Dialogfenster mit dem Link öffnet, diesen sogar von dort kopieren.

Eine Frage: Hast Du die die Lösung für den Zugriff auf die URL, also "sWerte = oZelle.TextFields(0).URL", über die MRI-Extention gefunden und wenn ja, nach welchem System bist Du da vorgegangen?

Eines habe ich aber gelernt, Im "Beobachter" vom Basic-Editor bekommt man leider nicht alles gezeigt, was in so einem Objekt steckt.

MfG, kodela

mikele
Beiträge: 771
Registriert: Sa 23. Jul 2011, 22:09

Re: Wo sind die Daten für einen generierten URL gespeichert?

Beitrag von mikele » Mo 5. Dez 2016, 22:23

Hallo,
MRI ist für mich ein ganz wichtiges Werkzeug, um herauszufinden, welche Eigenschaften und Methoden zu einem Objekt verfügbar sind. Allerdings muss man mitunter ganz schön wühlen bzw. wissen in welcher Ecke man suchen muss (z. B. dass ein Hyperlink an den Text gebunden ist).
Letzten Endes war es "com.sun.star.text.TextField.URL", wo ja eigentlich alles kurz und knapp schon da steht (wenn man weiß, wie es zu lesen ist).
Inspiziere einfach mal 'drauf los (angefangen bei thiscomponent, sheets, currentcontroller etc.) und du wirst einiges entdecken.
Gruß,
mikele

Antworten