kein .Visible bei mehrseitigem Dialog ?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: kein .Visible bei mehrseitigem Dialog ?

Re: kein .Visible bei mehrseitigem Dialog ?

von RainerHH » So, 17.06.2012 14:03

naja, Umgehungsmöglichkeiteb gibt es immer.
Ich sichere jetzt einfach vor dme Seitenwechsel die Visible-Zustände der infrage kommenden Felder
und beim Rückweg werden sie wieder hergestekllt.

Wäre hlat nur interessant zu wissen, ob das so gwewollt ist, also das die .Step-Anweisung auf den
Definitionsstand zurücksetzt, oder ob es sich um einen Fehler handelt.

Danke erstmal, sollte ich etwas in Erfahrung bringen, poste ich es hier.

Re: kein .Visible bei mehrseitigem Dialog ?

von Stephan » So, 17.06.2012 12:31

aber, ist ja trotzdem nicht nicht korrekt!?
ich habe die idl-Referenz (http://www.openoffice.org/api/docs/comm ... le-ix.html) und die 2 Bücher von Pitoniak und Krumbein durchgesehen und finde keine Hinweise darauf wie das Verhalten definiert ist. Leider kann ich auch bei openoffice.org keine Spezifikationsdokumente finden, anscheinend weil dort immer noch am Umbau der Webseiten gearbeitet wird (früher war das spec-Projekt für sowas zuständig).
Du müßtest das also über die dev-Liste bei Apache anfragen:
http://incubator.apache.org/openofficeo ... iling-list

Außerdem würde ich an Deiner Stelle überlegen das über zu Zuordnung von Steuerelementen zu den verschiedenen Seiten (Steps) den Dialogs zu lösen oder die Funktion des Sichtbarmachens/Versteckens in einer eigenen Function zu kapseln und immmer explizit den Zustand zu setzen.


Gruß
Stephan

Re: kein .Visible bei mehrseitigem Dialog ?

von RainerHH » Sa, 16.06.2012 15:05

ja das stimmt, die Aussage war falsch gewesen...

aber, ist ja trotzdem nicht nicht korrekt!?

Re: kein .Visible bei mehrseitigem Dialog ?

von Stephan » Sa, 16.06.2012 15:00

ich kann Deine ursprüngliche Aussage:
wenn ich nach der Rückkehr den Wert abfrage, steht er auf False
mit der jetzt anhehängten beispieldatei nicht nachvollziehen, denn wenn ich Deinen Code um die Abfrage des Wertes erweitere:

Code: Alles auswählen

Sub GoBack
	oDlg.Model.Step = 1
	Msgbox oDlg.getControl("CommandButton1").IsVisible
End Sub
erhalte ich True und nicht False.

(OOo 3.3.0 Windows7)


Gruß
Stephan

Re: kein .Visible bei mehrseitigem Dialog ?

von RainerHH » Sa, 16.06.2012 14:02

die hatte ich übersehen, naja, war ja auch schon etwas spät gewesen....

so jetzt dann das Dokument
Dateianhänge
Test 1.odt
(10.26 KiB) 126-mal heruntergeladen

Re: kein .Visible bei mehrseitigem Dialog ?

von RainerHH » Sa, 16.06.2012 02:38

ich glaube Du musst mir mal helfen, ich hab die Dateien hochgeladen aber sich seh nichts davon, was muss ich machen?

Re: kein .Visible bei mehrseitigem Dialog ?

von RainerHH » Sa, 16.06.2012 02:37

was meinst Du mit Datei ?

die .bas oder die .xdl oder beide, ist kein Problem mach ich

irgendwie schaff ich es nicht die Dateien hochzuladen !?

Re: kein .Visible bei mehrseitigem Dialog ?

von balu » Sa, 16.06.2012 02:24

Hallo RainerHH,
mach einfach das was ich geschrieben habe, ist doch wirklich nicht schwer und nicht kompliziert....
Hatte ich hier für mich schon am 15.06.2012 um 20:47:59 gemacht. Und ich habe keine Probleme, und kann deins auch nicht nachvollziehen.

Und nun!? Was jetzt!?

das bißchen Englisch versteht garantiert jeder!
Auf eine Bitte so zu reagieren nenn ich einfach: Arrogant.

ist das so ausreichend?:
Nö, nicht wirklich!
Zu welcher Seite sind denn die einzelnen Elemente (CommandButton) zugeordnet?
Welche Ereignisse hängen an welchem Element?
......???

Einfacher und wirklich hilfreicher wäre die Datei gewesen. Aber nun gut, Du willst ja nicht.

Code: Alles auswählen

Sub Main
   Dim cCommandButton1 As Object
Da würde ich jetzt mal folgendes sagen: Das kann ja nicht gut gehn!
Begründung ist hier zu finden: Welche Gültigkeit haben Variablen?



Gruß
balu

Re: kein .Visible bei mehrseitigem Dialog ?

von RainerHH » Sa, 16.06.2012 01:40

ist das so ausreichend?:

Code: Alles auswählen

REM  *****  BASIC  *****
Private oDlg As Object
Sub Main
	Dim cCommandButton1 As Object
	oDlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
	oDlg.Model.Step = 1
	cCommandButton1 = oDlg.GetControl("CommandButton1")
	cCommandButton1.Visible = False
	oDlg.Execute()
End Sub



Sub ForceStep2
	oDlg.Model.Step = 2
End Sub

Sub GoBack
	oDlg.Model.Step = 1
End Sub
hier die Ergebnisse:
OO 174.jpg
OO 174.jpg (10.87 KiB) 2741 mal betrachtet
OO 175.jpg
OO 175.jpg (9.09 KiB) 2741 mal betrachtet
OO 176.jpg
OO 176.jpg (11.84 KiB) 2741 mal betrachtet

Re: kein .Visible bei mehrseitigem Dialog ?

von Stephan » Sa, 16.06.2012 01:26

mach einfach das was ich geschrieben habe, ist doch wirklich nicht schwer und nicht kompliziert
Und hilft mir ja nun leider nicht weiter.
Ich jedenfalls kann aus der Existens des Objects cCommandButton3 (was ich ja aus dem von Dir geposteten Code entnehmen kann)nicht ersehen ob dieses sich auf das model oder den view des Dialogs bezieht, dazu brauchte ich den kompletten Code odeer die verbale Aussage von Dir.


Das war nun mein dritter Versuch Dir zu helfen, einen vierten werde ich ohne DEine Unterstützung nachgefragte Informationen zu liefern nicht unternehmen, weil ich erstens ohne notwendige Informationen in haltlich nicht Konkretes anworten kann und ich es zweitens leid bin Dich anzubetteln um Dir helfen zu können, denn nicht ich sondern Du bist es der hier nach Hilfe fragt.

Ich frage mich im Übrigen was es für eine Taktik sein soll potentiellen Helfern hier über den Mund zu fahren, denn z.B. Balu hat Dich ja nichtmal angegriffen sondern fragt allein nach Informationen und wenn Dich das bereits nervt weiß ich nicht wie hier sinnvolle Ergebnisse entstehen sollen.


Gruß
Stephan

Re: kein .Visible bei mehrseitigem Dialog ?

von RainerHH » Sa, 16.06.2012 01:04

mach einfach das was ich geschrieben habe, ist doch wirklich nicht schwer und nicht kompliziert....

das bißchen Englisch versteht garantiert jeder!

Re: kein .Visible bei mehrseitigem Dialog ?

von balu » Sa, 16.06.2012 00:09

Hallo RainerHH,

es scheint wohl sehr schwer zu sein der Bitte um eine Beispieldatei nachzukommen, oder? Stattdessen wiederholst Du nur schon gesagtes, was wirklich nicht hilfreich ist.

Wir können nicht wissen wie Du weder den Dialog, noch die einzelnen betroffenen Elemente programmiert hast. Die Rahmenbedingungen für dein beobachtetes "Fehlverhalten" steckt in deiner Datei, doch weder ich noch sonst einer besitzt hier Hellseherische Fähigkeiten um von hier aus in deine Datei zu schauen.


Ach ja, noch ne kleinigkeit.
Nicht jeder ist der englischen sprache mächtig. Also schreib Bitte in deutsch, um eventuelle missverständnisse zu vermeiden.



Gruß
balu

Re: kein .Visible bei mehrseitigem Dialog ?

von Stephan » Fr, 15.06.2012 23:52

es geht darum, dass gesetzte .Visible Werte nach einem Switch auf eine andere Seite (Step) nicht mehr vorhanden sind.
exakt so hatte ich Dich auch verstanden und deshalb gefragt:
und welcher Wert? Der über das model des Dialogs gewonnene oder uber das view?

Welche konkrete Art von Steuerelement?
da Du ja auch davon sprachst das:
wenn ich nach der Rückkehr den Wert abfrage, steht er auf False, trotzdem wird das Feld angezeigt.


Gruß
Stephan

Re: kein .Visible bei mehrseitigem Dialog ?

von RainerHH » Fr, 15.06.2012 23:41

wie kommst Du denn darauf, ich hatte doch geschrieben, das Element hat Step 1 !?

oDlg.Model.Step = 1
cCommandButton3.Visible = False ' cmdButton3 has Step 1 in Dialog Side 1
oDlg.execute() ' show Side 1, cmdButton3 is invisible, OK

in an proc after click an force side button:
oDlg.Model.Step = 2 ' show Side 2

in an proc after click an return button:
oDlg.Model.Step = 1 ' go back to Side 1, now cmdButton3 is visible, FALSE !

Re: kein .Visible bei mehrseitigem Dialog ?

von turtle47 » Fr, 15.06.2012 23:30

Hallo,
Da scheint ne Macke in OOo zu sein
Nö, das glaube ich nicht.
Man kann das so erklären, dass bei Dir beim besagtem Kontrollelement bei Seite(Step) eine 0 (null) eingetragen ist.
Eigenschaften.jpg
Eigenschaften.jpg (33.69 KiB) 2775 mal betrachtet
Der Wert Null bedeutet, dass das Kontrollelement auf allen Seiten des Dialoges zu sehen ist.
Bei einem Switch des Dialoges wird dieser Wert gelesen und das Kontrollelement erscheint wieder.
Entweder Du setzt den Wert fest auf eine Seite, zum Beispiel 2, oder Du machst eine Abfrage wie folgt

Code: Alles auswählen

	.....
If Dlg_XYZ.Model.Step = 2 then
		cLstEdit.Visible = False
		else
		cLstEdit.Visible = True
.....
Jürgen

Nach oben