Dialogbox - Textfeld unsichtbar, bis Aufruf

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

Moderator: Moderatoren

mecki_45
***
Beiträge: 69
Registriert: Mo, 23.02.2004 17:28

Dialogbox - Textfeld unsichtbar, bis Aufruf

Beitrag von mecki_45 »

Hallo zusammen,

ich möchte ein Textfeld in einer Dialogbox erst dann einblenden, wenn das Makro komplett abgearbeitet ist.

Wie geht das?

Grüßle
Alex
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Ich weiß nicht ob Du die Textbox brauchst um auch wenn abgeblendet einen Inhalt zu Speichern, universell dürfte sein die Größe auf null zu setzen:

Code: Alles auswählen

Public dia as object

Sub Main
oLib = DialogLibraries.getbyname("Standard")
dia = CreateUnoDialog(oLib.getByName("Dialog1"))
dia.execute()
End Sub

Sub verstecken
dia.getModel.getbyName("TextField2").height = 0
dia.getModel.getbyName("TextField2").width = 0
End sub
Gruß
Stephan
Benutzeravatar
Wolf
****
Beiträge: 118
Registriert: Fr, 23.04.2004 06:48

Re: Dialogbox - Textfeld unsichtbar, bis Aufruf

Beitrag von Wolf »

Hallo Alex,

folgende Vorgehensweise:

Code: Alles auswählen

Public dlgTest as object
Public txtTextfeld as Object

Sub Start_Dialog

 Dim a as long

  dlgTest = CreateUnoDialog(DialogLibraries.Standard.frmTest) '..Dialog kreieren
 txtTextfeld=dlgTest.GetControl("txt_Textfeld") '....Textfeld kreeiren
 
 txtTextfeld.Visible=False '....................Textfeld unsichtbar
 txtTextfeld.setText("Ich war unsichtbar") '....Text ins textfeld einsetzen

 a=dlgTest.Execute() '...........Aufruf des Dialoges
   Select Case a '....................Was wurde gedrueckt ??????
	 Case 1 '.....................OK wurde gedrueckt
		msgbox "OK gedrueckt"
	 Case 0 '.....................Cancel wurde gedrueckt
		MsgBox "Abbrechen gedrueckt"
   End Select
dlgTest.Dispose() '............Dialog raus aus dem Speicher
End sub


Sub Aktiviere_Textfeld
 txtTextfeld.Visible=True '...............Textfeld sichtbar machen
End Sub
Du mußt im Dialogeditor ein Dialog erstellen mit dem Namen "frmTest".
In dem Dialog gibt es ein Textfeld mit dem Namen "txt_Textfeld".

Ich habe mir angewöhnt die Steuerelemente im Dialogeditor immer etwas anders zu benennen als ich dann im Programm sie definiere (Public ...). Hatte da mal unangenehme Erfahrungen bei gleicher Namensvergabe.

Dann das Programm "Start_Dialog" ausführen und der Dialog erscheint und das Textfeld bleibt unsichtbar.
Im Programm habe ich standartmässig noch die Auswertung eventuell vorhandener OK- und Abbrechen-Schaltflächen (muß aber nicht sein.) eingefügt.

Mit dem Unterprogramm "Aktiviere_Textfeld" kann innerhalb des Makros an geeigneter Stelle das Textfeld sichtbar gemacht werden. Ein eventuell vorhandener Inhalt bleibt immer erhalten.

Generell:

Object.Visible=False '...Object unsichtbar
Object.Visible=True '...Object sichtbar

OHNE Beeinflussung des Inhalts des Objectes !!

Wolf
Antworten