Seite 1 von 1

EA-Felder

Verfasst: Mo 15. Sep 2014, 09:17
von MaximilianWe
Was ich in C/C++ kann, fehlt mir offenbar in Basic. Folgendes Problem:

Mit der Funktion "eingeben" erscheint in Basic ein Eingabefenster; ich möchte aber nun ( wie bei C) dass in einem Fenster der Wert einer (string-)Variuablen angezeigt wird und ich diesen Wert beliebig verändern und dann wieder in die Variable zurückgeben kann. So eben, wie man in C (Dialog-)Masken programmieren kann.
Ich bräuchte da wieder einmal Nachhilfe.


Max

Re: EA-Felder

Verfasst: Mo 15. Sep 2014, 09:30
von karolus
Hallo
Es gibt keine Funktion `eingeben` in Basic ... meinst du

Code: Alles auswählen

x = inputbox("stimmts so ???  " , , x) 

Re: EA-Felder

Verfasst: Mo 15. Sep 2014, 10:20
von MaximilianWe
Ich habe mir da über die Möglichkeiten bei Tabellen eine Funktion gebastelt:

Function eingeben (tab as integer, pos as string, auff as string)
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
cellinhalt= inputbox (auff)

dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name="ToPoint"
args1(0).Value= pos
dispatcher.executeDispatch(document,".uno:GoToCell", "" ,0, args1())
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name= "StringName"
args2(0).value=cellinhalt
dispatcher.executeDispatch(document,".uno:EnterString", "", 0, args2())
eingeben = cellinhalt

end Function

Ist wahrscheinlich schrecklich unmständlich, aber als Eingabe funktionierts. Aber icvh kann in das Feld eben nicht einen Anfangswert übernehmen.

Re: EA-Felder

Verfasst: Mo 15. Sep 2014, 11:01
von karolus
Hallo

Code: Alles auswählen

Function eingeben(kopf,vorgabe)
    eingeben = inputbox(kopf, ,vorgabe)
End Function
 
Aufrufen aus Calc zB. per

Code: Alles auswählen

=EINGEBEN("häh ?"; AKTUELL())
ich würde da eigentlich gleich etwas in die Zelle eingeben statt indirekt über selbstgebastelte Funktionen mit InputBox'en