TextFelder lesen und beschreiben

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

Moderator: Moderatoren

Gabriel123
***
Beiträge: 65
Registriert: Mo, 14.01.2008 19:31

TextFelder lesen und beschreiben

Beitrag von Gabriel123 »

Hallo,

ich habe ein eigenartiges Problem mit einigen TextFeldern. In Formular1 funktioniert folgender Code einwandfrei!
Das Makro kopiert den Inhalt eines TextFelds in eine globale Variable und dann wieder in ein TextFeld. Umweg über Variable brauche ich für später...

Code: Alles auswählen

sub linksrechts
oForm = thisComponent.drawpage.forms.getByName("gafuform")
with oForm
txtNotiz2 =.getByName("Notiz2").text
.getByName("Notiz12").text= txtNotiz2
End With 
end sub 
Jetzt habe ich in Formular2 (kein Unterformular) auch zwei TextFelder und nutze genau den gleichen Code außer getbyname(gafuform1).
Jetzt kennt er die Felder auf einmal nicht (no such element) obwohl sie genau so heißen wie im ersten Formular. Wie kann es denn sein, dass der Code in einem Formular läuft und in einem anderen nicht??!
Gabriel123
***
Beiträge: 65
Registriert: Mo, 14.01.2008 19:31

Re: TextFelder lesen und beschreiben

Beitrag von Gabriel123 »

Habe ich denn das TextFeld überhaupt richtig angesprochen oder ist es zufall, dass es in Formular1 läuft? Sonst muss ich halt ein Formatiertes textfeld nehmen wenn Textfelder schwieriger anzusprechen sind...nur da habe ich keinen Zeilenumbruch
Gabriel123
***
Beiträge: 65
Registriert: Mo, 14.01.2008 19:31

Re: TextFelder lesen und beschreiben

Beitrag von Gabriel123 »

Hat denn Keiner einen Hinweis? Bin ich der einzigste der mit Textfeldern arbeitet?=)
Gabriel123
***
Beiträge: 65
Registriert: Mo, 14.01.2008 19:31

Re: TextFelder lesen und beschreiben

Beitrag von Gabriel123 »

Es kann doch nicht sein dass ich in einem Formular das textfeld sauber ansprechen kann wie oben beschrieben und wenn ich aus diesem Formular ein neues öffne es in diesem nicht mehr geht?! Geht man denn mit TextFeldern um wie mit FormatiertenTextfeldern?
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Re: TextFelder lesen und beschreiben

Beitrag von gschuckar »

Hallo Gabriel,
mal angenommen, beide Formulare befinden sich im gleichen Sheet. Weiter angenommen, beide Formulare haben unterschiedliche Aufgaben zu erfüllen. Dann aber benenne doch mal die Textfelder in Formular2 anders als in Formular1. Es ist bei mir schon vorgekommen, das Textfelder in verschiedenen Formularen bei gleichem Namen sich eigenartig verhielten.
Mit welcher Version oo arbeitest Du? Linux oder Windows? Vielleicht spielt das eine Rolle.
Gruß
Gerd
khsc7
***
Beiträge: 50
Registriert: Mo, 05.11.2007 13:08

Re: TextFelder lesen und beschreiben

Beitrag von khsc7 »

Moin,

1. thisComponent geht nur, wenn das Formular das aktive Formular ist.
sonst langst du nämlich daneben (wäre ein typischer Fehler).

2. Ereignis-Funktionen kannst du mit nem Parameter "oEv as Object" versehen
da hast du dann ne Referenz zum Aufrufenden Objekt

3. Setz doch mal nen Breakpoint und schau dir die Inhalte der Objekte an.
ggf. besorg dir das xray-Tool - damit gehts noch besser

Hermann
gschuckar
****
Beiträge: 140
Registriert: Fr, 24.02.2006 14:27

Re: TextFelder lesen und beschreiben

Beitrag von gschuckar »

Hallo Gabriel,
ich hab mal das folgende probiert:
in einem Sheet habe ich 2 Formulare hergestellt. Das sheet heist Tabelle1, die Formulare heisen gafuform1 und gafuform2. Die Textfelder in jedem Formular jeweils txt1 und txt2.
Dann habe ich Deine Routine für jedes Form geschrieben. so:

Code: Alles auswählen

REM  *****  BASIC  *****
option explicit

sub main
	linksrechts1()
	linksrechts2()
end sub

sub linksrechts2
	dim txtNotiz2 as String
	oForm = Globalscope.thisComponent.sheets.getByname("Tabelle1").drawPage.forms.getbyname("gafuform2")
with oForm
	txtNotiz2 =.getByName("txt1").text
	.getByName("txt2").text= txtNotiz2
End With
end sub

sub linksrechts1
dim txtNotiz2 as String

oForm = Globalscope.thisComponent.sheets.getByname("Tabelle1").drawPage.forms.getbyname("gafuform1")
with oForm
	txtNotiz2 =.getByName("txt1").text
	.getByName("txt2").text= txtNotiz2
End With
end sub

Das geht natürlich auch in einem WriterDokument.
Die subs funktionieren. Allerdings bin ich mir nicht sicher, ob mein Aufbau dem entspricht, was Du möchtest. Vielleicht verstehe ich auch Dein Problem nicht.
Gruß
Gerd
Gabriel123
***
Beiträge: 65
Registriert: Mo, 14.01.2008 19:31

Re: TextFelder lesen und beschreiben

Beitrag von Gabriel123 »

Hey!

Also mein Problem hast Du denke ich schon erkannt. Ganz genau habe ich vor in Form1 den Inhalt aus Textfeld1 zu lesen und an eine globale VAR zu übergeben. Dann öffne ich Formular2 und übergebe die VAR an Textfeld2. Scheinbar lassen sich aber Textfelder nicht genauso ansprechen wie formatierte Textfelder. Ich bekomme immer den fehler, dass das Textfeld nicht gefudnen werden kann. Das Bsp. mit den Sheets ist gut aber daraus kann ichs nicht für Writer / Formular ableiten...
Gabriel123
***
Beiträge: 65
Registriert: Mo, 14.01.2008 19:31

Re: TextFelder lesen und beschreiben

Beitrag von Gabriel123 »

Vielleicht heute jemand eine Idee? TextFelder müssen sich per makro doch irgendwie ansprechen lassen!
Antworten