# Vorlageobjekte vor anderen Bildobjekten in Flex



## rostiger Nagel (19 Oktober 2009)

Hallo, 
ich habe ein MP277, dort möchte eine art Pop Up Meldung machen.
Diese wird sichtbar mit einen Bit, wird die Quittiertaste betätigt wird
sie wieder unsichtbar. Das ganze Funktioniert auch ganz gut.
Aussehen soll es wie folgt:



Jetzt war mein gedanke das Pop Up einfach in das Vorlagenbild zu
legen, so das die Meldung auf allen Bildern zu sehen ist.
Aber das Funktioniert wieder nicht, das Pop Up verschwindet hinter
den proketierten objekten der anderen Bilder.

Hat da jemand einen Tip wie ich das PopUp ganz nach vorne holen 
kann, also immer vor den objekten in den anderen Bildern liegt?

gruß helmut


----------



## netmaster (19 Oktober 2009)

Popup auf eine höhere Ebene legen als die Objekte wo in den anderen Bilder projektiert wurden.


----------



## rostiger Nagel (19 Oktober 2009)

netmaster schrieb:


> Popup auf eine höhere Ebene legen als die Objekte wo in den anderen Bilder projektiert wurden.


 
helf mir bitte ein wenig weiter, wie meinst du das...die ebenen
die ich für das objekt einstellen kann z.B. ebene 1 hat eine höhere
Prirorität wie ebene 0?

oder über Reihenfolge, eins nach vorne bzw. ganz nach vorne...


----------



## xhasx (19 Oktober 2009)

Hallo, wie netmaster schon sagt.

Eigenschaften -> Verschiedenes -> Ebene

Wenn du die drei Objekte gruppierst ganau so. Die Priorität ist aufsteigend.


----------



## rostiger Nagel (19 Oktober 2009)

xhasx schrieb:


> Hallo, wie netmaster schon sagt.
> 
> Eigenschaften -> Verschiedenes -> Ebene
> 
> Wenn du die drei Objekte gruppierst ganau so. Die Priorität ist aufsteigend.


 
sie liegen aber auf einer höheren ebene, zusätzlich habe ich gerade
mal ein Rechteck mit einer höheren ebene in die vorlage gezogen, das
verschwindet auch...


----------



## xhasx (19 Oktober 2009)

Und von was wird es überschrieben??? Ich weiß dass Kurvenanzeigen immer in der höchsten Ebene liegen!!!


----------



## rostiger Nagel (19 Oktober 2009)

hier kannst du es noch einmal sehen, den Pop Up habe ich nocheinmal
in die Vorlage kopiert (rot Makiert). Auf dem Panel sieht es später
genauso aus. Das Pop Up ist Gruppiert und alle Elemente des Pop Up
sind in Ebene 11, die anderen Bildobjekte sind in Ebene 0.
Komischerweise ist es so das Störmeldefenster in der Vorlage immer 
nach oben kommen, ist doch irgentwie blöd...?!


----------



## xhasx (19 Oktober 2009)

Kann normalerweise nicht sein.
Hast du auch die Ebene der Gruppe auf 11 ?!? Ich vermute mal nein!!!


----------



## rostiger Nagel (19 Oktober 2009)

xhasx schrieb:


> Kann normalerweise nicht sein.
> Hast du auch die Ebene der Gruppe auf 11 ?!? Ich vermute mal nein!!!


 
das wäre es jetzt gewesen, die gruppe lag nicht auf ebene 11, also
gruppe auch noch mal auf ebene 11 gelegt, in die vorlage rein.
Leider mit dem selben ergebnis es geht nicht....


----------



## PN/DP (19 Oktober 2009)

*Vorlage-Ebenen sind immer hinter Bild-Ebenen*

Hallo Helmut,

ALLE Ebenen der Vorlage liegen HINTER den Bildebenen.
Es ist NICHT möglich, ein "normales" Objekt der Vorlage VOR Objekten der 
Bilder anzuzeigen. Ausnahmen: Objekte, die ein eigenes Fenster öffnen.

Das ist in WCCflex schon immer so und läßt sich nicht ändern.

Ich habe das auch mal in einem Siemens-Handbuch oder -FAQ gelesen, finde 
es aber nicht wieder.

Aber hier eine Aussage vom Siemens-Support:
http://www.automation.siemens.com/WW/forum/guests/PostShow.aspx?language=de&PostID=59315


> Hallo Christof,
> 
> hab mich deswegen auch schon an den Support gewandt, hab folgende Antworten drauf bekommen.
> Erstens liegen alle Ebenen der Vorlage HINTER den Bildebenen. Beispiel: Eine transparente Schaltfläche, in der Vorlage in Ebene 31 projektiert, liegt hinter einem im Textfeld auf Ebene 0 projektierten Textfeld an derselben Stelle, die Schaltfläche ist also nicht bedienbar.
> ...



Gruß Harald


----------



## rostiger Nagel (19 Oktober 2009)

Danke Harald,
dann brauche ich ja nicht weiter suchen. Also lege ich meine Pop Up
in alle relavante Bilder. Es wäre ja so schön gewesen, aber die Flex
Entwickler wollen uns kein Pop Up geben und wenn es auch mit Board
Mitteln erstellt wurde, wie in meinen Fall 



Danke an alle und einen schönen gruß
helmut


----------



## PN/DP (19 Oktober 2009)

*Meldeklasse "Bedienerhinweise"*

Hallo Helmut,

eine Möglichkeit für Bediener-Hinweismeldungen in echten WCCf-PopUps wäre, 
eine extra Meldeklasse zu definieren und ein extra Meldefenster nur für diese 
Meldeklasse in der Vorlage anzulegen.

Allerdings erscheinen diese Hinweis-Meldungen dann auch in der Melde-Anzeige
(History: gekommen, gegangen (quittiert)) und ggf. im Melde-Archiv.

Wenn Du damit leben kannst?

Gruß Harald


----------



## rostiger Nagel (19 Oktober 2009)

ja Harald,
darauf wird es hinauslaufen, eigene Meldeklasse mit eigene Farbe.
Werd es morgen mal in Angriff nehmen. 
Ziel war es ja die Meldeanzeige mit den *sehr sehr sehr kleinen* Quittiertasten
zu umgehen. Meldung kommt als Pop Up nach oben und sollte sofort Quittiert werden.
Die kleinen Buttons in der Meldeanzeige sind ja leider nicht für echte
Männerhände geeignet. es sei den man hat finger wie ein Gynäkologe die aber nicht 
unsere kunden sind.

das ist ein 8"-Panel, also wirklich nicht groß


----------



## xhasx (20 Oktober 2009)

Hat die Lösung mit dem Skript nicht funktioniert?


----------



## rostiger Nagel (20 Oktober 2009)

xhasx schrieb:


> Hat die Lösung mit dem Skript nicht funktioniert?


 
was den für ein script?


----------



## xhasx (20 Oktober 2009)

Ich hab dir doch gestern noch zwei Mails geschickt...
Da gibt es ein Skript "PopUp" in dem Projekt...


----------



## rostiger Nagel (21 Oktober 2009)

So nach ein paar PN, Mails und Telefonaten, habe ich von xhasx, das 
script für Po Up Meldungen bekommen und es ist genauso wie ich es 
mir gewünscht habe ....aber leider funktioniert es nur auf PC-Systemen
nicht auf den MP mit CE Betriebssystem 

Da ich es aber trotzdem so gut finde habe ich mit xhasx verabredet das
wir es doch in den Thread reinstellen, so das auch andere etwas davon
haben. Vielleicht hat ja hier noch jemand eine Idee wie man es für die
Multipanels hinbekommt, oder es sogar jemand das SDK und schreibt
schnell ein Aktive X, das vlt. auf die Multipanels übertragen werden 
kann, so das es funktioniert.

Hier erst mal das Script, an den Skript kann von außen folgende Paramter
angelegt werde: Überschrift, Meldetext, Dartstellungsart und eine
Rückmeldung als Variable.

_Script_ 


> ...
> ' Zeigt eine Meldung in einem Dialogfeld an, wartet darauf, dass der Benutzer auf eine Schaltfläche klickt,
> ' und gibt einen Wert zurück, der anzeigt, auf welche Schaltfläche geklickt wurde.
> '
> ...


 

_Parameter_


> ...
> Titel
> Meldetext
> Button Type
> ...


 
Aussehen wird es in etwa so.




PS. wenn es jemand gut findet, bitte den Danke Button bei xhase ein Beitrag vorher betätigen.


----------



## rapser (18 März 2010)

Hallo Gemeinschaft,

ich bin auch auf der Suche zur Realisierung einer MsgBox.

Jedoch stürtz mein WinCC flexible 2007 HF4 ab, wenn ich den Code aus Post #17 in ein Script einfüge.

Ein Fenster mit folgendem Fehlertext geht auf.


```
Dies ist ein automatisch generierter Fehlerbericht für das WinCC flexible Engineering-System.

Microsoft Windows XP Professional Service Pack 3        5.1.2600.196608

Produktversion: WinCC flexible 2007 Advanced; K 1.02 Hotfix 4; K 1.2.0 HF 4 (1.05.03)


System.Security.SecurityException
Der angeforderte Registrierungszugriff ist unzulässig.

Exception Source 
mscorlib

Exception Target Site
Void ThrowSecurityException(System.ExceptionResource)

Exception Stack Trace
   bei System.ThrowHelper.ThrowSecurityException(ExceptionResource resource)
   bei Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
   bei Microsoft.Win32.RegistryKey.OpenSubKey(String name)
   bei Siemens.Simatic.Hmi.Utah.Scripting.EditControl.ScriptEditOMReflection.FillTlbsHashtableFormRegistryKeyCLSID()
   bei Siemens.Simatic.Hmi.Utah.Scripting.EditControl.ScriptEditOMReflection.FillTypeLibsHashTable()
   bei Siemens.Simatic.Hmi.Utah.Scripting.EditControl.ScriptEditOMReflection.GetTypeLibGuidFromProgId(String progID)
   bei Siemens.Simatic.Hmi.Utah.Scripting.EditControl.ScriptEditOMReflection.Init_ProgId(String progId)
   bei Siemens.Simatic.Hmi.Utah.Scripting.EditControl.ScriptEditOMReflection.Init(Object progIdOrInterface, Boolean setHelpDescription)
   bei Siemens.Simatic.Hmi.Utah.Scripting.EditControl.LoadTlbAndConvertToAssemblyThread.LoadTlbAndConverToAssembly()
   bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   bei System.Threading.ThreadHelper.ThreadStart()
End Exception
```
Könnt Ihr damit was anfangen bzw. hat jemand ne Idee was ich eventuell vergessen hab einzustellen?


----------



## JesperMP (18 März 2010)

Den Thema ist etwas alt, aber trotzdem will ich eine Warnung herauswerfen.

Wenn man ein MsgBox mittels wscript.shell erzeugt, funktioniert den Message Box, aber alle andere Skripte werden gesperrt so lange das den Message Box noch nicht weg-quittiert ist. 
Wenn den Skript-Puffer nicht überschreitet wird, weden die gesperrte Skripte nach den schliessen von den Message Box ausgeführt - also mit eine Verspäterung. Wenn es Variablen gibt in die Skripte (wenn nicht ?), werden die Variabel-Werte erst iengelsen bei den spätere ausführen von die Skripte.
Im Fall das den Skript-Puffer überschreitet wird, gehen die gesperrte Skripte einfach verloren.

Also, wenn man ein MSgBox mit wscript.shell erzeugt, darf man in Prinzip keine weitere Skripte haben.


----------

