meta data for this page
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
textanzeige [2018/05/24 10:01]
michael
textanzeige [2020/01/03 11:28] (aktuell)
michael
Zeile 1: Zeile 1:
 ====== Textanzeige ====== ====== Textanzeige ======
  
 +===== FF_MessageBox und Msgbox =====
  
-===== **FF_MessageBox und Msgbox** ===== +Beide Befehle haben den gleichen Zweck und bewirken das gleiche. Sie dienen vorrangig dazu einen kurzen Hinweis zu geben und können auch benutzt werden, dem Benutzer eine Entscheidung abzuverlangen. 
- Beide Befehle haben den gleichen Zweck und bewirken das gleiche. Sie dienen vorrangig dazu einen kurzen Hinweis zu geben und\\  ​können auch benutzt werden, dem Benutzer eine Entscheidung abzuverlangen.\\  ​Die Textlänge ist auf ca. 1000 Zeichen beschränkt. Längere Texte werden abgebrochen.\\  ​Als Parameter sind jeweils anzugeben:\\ + 
 +Die Textlänge ist auf ca. 1000 Zeichen beschränkt. Längere Texte werden abgebrochen. 
 + 
 +Als Parameter sind jeweils anzugeben: ​
  
   * der anzuzeigende Text und   * der anzuzeigende Text und
-  * der Typ, der sich wiederum zusammensetzt aus dem Icon und der gewünschten Tastenkombination.\\  ​Icon und Tastenkombination müssen addiert werden (Beispiele siehe unten). +  * der Typ, der sich wiederum zusammensetzt aus dem Icon und der gewünschten Tastenkombination. 
-\\  +  
-==== **FF_MessageBox** ==== +Icon und Tastenkombination müssen addiert werden (Beispiele siehe unten). 
- ist ein FF-Skriptbefehl,​ der in der FF-Skript-Befehlsreferenz erläutert wird. Er kann bei JS und VBS genutzt werden:\\ \\ FF_MessageBox(prompt,​ type)\\ prompt = Text, der angezeigt werden soll\\ type = setzt sich zusammen aus Icon plus Tastenkombination.\\ \\ //VBS-Beispiel für eine reine Meldung://\\ +  
 +==== FF_MessageBox ==== 
 + 
 +Ist ein FF-Skriptbefehl,​ der in der FF-Skript-Befehlsreferenz erläutert wird. Er kann bei JS und VBS genutzt werden: 
 +FF_MessageBox(prompt,​ type)  
 + 
 +  * prompt = Text, der angezeigt werden soll 
 +  * type = setzt sich zusammen aus Icon plus Tastenkombination. 
 + 
 +VBS-Beispiel für eine reine Meldung: ​ 
 + 
 +<code VBScript [enable_line_numbers="​true"​]>​
   FF_MessageBox "Es ist kein Bild geladen!",​48 ​   '48 steht für Ausrufezeichen   FF_MessageBox "Es ist kein Bild geladen!",​48 ​   '48 steht für Ausrufezeichen
-//VBS-Beispiel für eine Entscheidungsabfrage:​//\\ +</code> ​  
 + 
 +VBS-Beispiel für eine Entscheidungsabfrage:​ 
 + 
 +<code VBScript [enable_line_numbers="​true"​]> ​
   Antwort = FF_MessageBox ("Soll das Bild gelöscht werden?",​4 + 32)    '4 für Ja, Nein / 32 für  Fragezeichen   Antwort = FF_MessageBox ("Soll das Bild gelöscht werden?",​4 + 32)    '4 für Ja, Nein / 32 für  Fragezeichen
   if Antwort = 7 then Abbruch = true    '7 bedeutet Nein   if Antwort = 7 then Abbruch = true    '7 bedeutet Nein
-//​Anmerkung://​\\ ​ Zur Zeit gibt es leider in der FF-Skript-Befehlsreferenz keine Angabe zu den Rückgabewerten von FF_MessageBox. Daher hier eine Liste:\\  1 = OK\\  2 = Abbrechen (bei Tastenkombination 1 oder 5)\\  3 = Abbrechen (bei Tastenkombination 2 oder 3)\\  4 = Wiederholen\\  5 = Ignorieren\\  6 = Ja\\  7 = Nein\\  10 = Wiederholen\\  11 = Weiter\\ \\  +</​code>​ 
-==== **Msgbox** ==== +   
- ist ein Skriptbefehl,​ der nur bei VBS erlaubt ist. Er ist erläutert in der [[/​Hilfe%20zu%20JS%20und%20VBS|Microsoft-Hilfe]]. Für die Definitionen können statt der Zahlen\\ ​ auch VB-Konstanten verwendet werden, die man sich leichter merken kann. Außerdem kann man den Titel,​\\ ​ der bei FF_MessageBox immer "​FixFoto"​ heißt, selbst bestimmen.\\ \\ //VBS-Beispiel für eine reine Meldung://\\ +//​Anmerkung://​\\ ​ Zur Zeit gibt es leider in der FF-Skript-Befehlsreferenz keine Angabe zu den Rückgabewerten von FF_MessageBox. Daher hier eine Liste: 
 +  1 = OK 
 +  2 = Abbrechen (bei Tastenkombination 1 oder 5) 
 +  3 = Abbrechen (bei Tastenkombination 2 oder 3) 
 +  4 = Wiederholen 
 +  5 = Ignorieren 
 +  6 = Ja 
 +  7 = Nein 
 +  10 = Wiederholen 
 +  11 = Weiter 
 +  
 +==== Msgbox ==== 
 + 
 +Ist ein Skriptbefehl,​ der nur bei VBS erlaubt ist. Er ist erläutert in der [[/​Hilfe%20zu%20JS%20und%20VBS|Microsoft-Hilfe]]. Für die Definitionen können statt der Zahlen\\ ​ auch VB-Konstanten verwendet werden, die man sich leichter merken kann. Außerdem kann man den Titel,​\\ ​ der bei FF_MessageBox immer "​FixFoto"​ heißt, selbst bestimmen. 
 + 
 +VBS-Beispiel für eine reine Meldung: 
 + 
 +<code VBScript [enable_line_numbers="​true"​]> ​
   Msgbox "Es ist kein Bild geladen!",​vbExclamation,​ "​Warnung"​   Msgbox "Es ist kein Bild geladen!",​vbExclamation,​ "​Warnung"​
 +</​code>​
        
 //​VBS-Beispiel für eine Entscheidungsabfrage://​\\ ​ //​VBS-Beispiel für eine Entscheidungsabfrage://​\\ ​
 +
 +<code VBScript [enable_line_numbers="​true"​]>​
   Antwort = Msgbox ("Soll das Bild gelöscht werden?",​vbYesNo + vbQuestion,"​Abfrage"​)   Antwort = Msgbox ("Soll das Bild gelöscht werden?",​vbYesNo + vbQuestion,"​Abfrage"​)
   if Antwort = vbNo then Abbruch = true   if Antwort = vbNo then Abbruch = true
-    +</​code> ​   
-===== **PopUp** ===== + 
- Um mehr als 1000 Zeichen anzuzeigen, kann man den PopUp-Befehl verwenden. Er ist in der[[/​Hilfe%20zu%20JS%20und%20VBS| Microsoft-Hilfe]] erläutert\\ ​ und ist in VBS und JS verwendbar. Er benötigt allerdings das Objekt WScript.Shell.\\ ​ Im Prinzip bietet der Befehl die gleichen Möglichkeiten wie Msgbox. Man kann allerdings zusätzlich eine Wartezeit angeben,​\\ ​ nach der die Meldung bzw. Abfrage automatisch verschwindet,​ wenn der Benutzer nicht reagiert. Das Skript wird dann fortgesetzt.\\ \\ //​VBS-Beispiel für eine reine Meldung ohne Wartezeit//​\\ ​+===== PopUp ===== 
 + 
 +Um mehr als 1000 Zeichen anzuzeigen, kann man den PopUp-Befehl verwenden. Er ist in der[[/​Hilfe%20zu%20JS%20und%20VBS| Microsoft-Hilfe]] erläutert\\ ​ und ist in VBS und JS verwendbar. Er benötigt allerdings das Objekt WScript.Shell.\\ ​ Im Prinzip bietet der Befehl die gleichen Möglichkeiten wie Msgbox. Man kann allerdings zusätzlich eine Wartezeit angeben,​\\ ​ nach der die Meldung bzw. Abfrage automatisch verschwindet,​ wenn der Benutzer nicht reagiert. Das Skript wird dann fortgesetzt.\\ \\ //​VBS-Beispiel für eine reine Meldung ohne Wartezeit//​\\ ​ 
 + 
 +<code VBScript [enable_line_numbers="​true"​]>​
   Set WshShell = CreateObject("​WScript.Shell"​)   Set WshShell = CreateObject("​WScript.Shell"​)
   WshShell.Popup "Es ist kein Bild geladen!"​ ,,"​Warnung",​vbExclamation   WshShell.Popup "Es ist kein Bild geladen!"​ ,,"​Warnung",​vbExclamation
   Set WshShell = Nothing   Set WshShell = Nothing
 +</​code>​
        
-\\ //​VBS-Beispiel für eine Entscheidungsabfrage mit Wartezeit von 2 sec.//\\ +//​VBS-Beispiel für eine Entscheidungsabfrage mit Wartezeit von 2 sec.// 
 + 
 +<code VBScript [enable_line_numbers="​true"​]> ​
   Set WshShell = CreateObject("​WScript.Shell"​)   Set WshShell = CreateObject("​WScript.Shell"​)
   Antwort = WshShell.Popup("​Soll das Bild gelöscht werden?",​2,"​Hinweis",​vbYesNo + vbQuestion)   Antwort = WshShell.Popup("​Soll das Bild gelöscht werden?",​2,"​Hinweis",​vbYesNo + vbQuestion)
Zeile 40: Zeile 86:
   end if   end if
   Set WshShell = Nothing   Set WshShell = Nothing
 +</​code>​
        
-\\  
 ===== Anzeige über FF-Dialog ===== ===== Anzeige über FF-Dialog =====
- Ist viel Text anzuzeigen können die oben erläuterten Methoden zu sehr hohen Anzeigen führen. Vor allem bei der PopUp-Methode kann\\ ​ die Anzeige höher werden als die Bildschirmhöhe und ist dann kaum noch zu handhaben. Einen Ausweg bietet hier ein FF-Dialog\\ ​ mit einem EDIT-Steuerelement. In dieses Steuerelement wird der anzuzeigende Text eingebettet,​ geschützt durch die Stilzuweisung\\ ​ "​ReadOnly"​ und versehen mit einer vertikalen Scrollmöglichkeit.\\ \\  Im folgenden VBS-Beispiel wird nur ein relativ kurzer Text verwendet, der aber zeigt, dass das EDIT-Steuerelement automatisch einen\\ ​ Zeilenumbruch erzeugt. Der Scrollbalken rechts ist zu erkennen, wird aber erst aktiviert, wenn der eingebettete Text so lang ist, dass\\ ​ seine Verwendung erforderlich wird.\\ ​+ 
 +Ist viel Text anzuzeigen können die oben erläuterten Methoden zu sehr hohen Anzeigen führen. Vor allem bei der PopUp-Methode kann\\ ​ die Anzeige höher werden als die Bildschirmhöhe und ist dann kaum noch zu handhaben. Einen Ausweg bietet hier ein FF-Dialog\\ ​ mit einem EDIT-Steuerelement. In dieses Steuerelement wird der anzuzeigende Text eingebettet,​ geschützt durch die Stilzuweisung\\ ​ "​ReadOnly"​ und versehen mit einer vertikalen Scrollmöglichkeit.\\ \\  Im folgenden VBS-Beispiel wird nur ein relativ kurzer Text verwendet, der aber zeigt, dass das EDIT-Steuerelement automatisch einen\\ ​ Zeilenumbruch erzeugt. Der Scrollbalken rechts ist zu erkennen, wird aber erst aktiviert, wenn der eingebettete Text so lang ist, dass\\ ​ seine Verwendung erforderlich wird.\\ ​ 
 + 
 +<code VBScript [enable_line_numbers="​true"​]>​
   Option Explicit   Option Explicit
   Dim Text   Dim Text
Zeile 78: Zeile 126:
   End Sub   End Sub
   '​----------------------------------------------------------   '​----------------------------------------------------------
 +</​code>​
 +  ​
 Zum Schließen des Dialogs wird ein BUTTON-Steuerelement "​OK"​ und CANCEL (das kleine Kreuz oben rechts) genutzt.\\ ​ Natürlich können weitere BUTTON-Steuerelemente eingebaut werden, wie z.B. "​Ja"​ und "​Nein"​ um aufgrund des angezeigten Textes\\ ​ dem Benutzer eine Entscheidung abzuverlangen.\\ \\  Als Quelle für den Text wurde im Beispiel die Zuweisung zur Variablen Text verwendet. Es kann aber auch Text aus dem Skript oder einer\\ ​ externen Textdatei ausgelesen werden.\\ \\  Zum Schließen des Dialogs wird ein BUTTON-Steuerelement "​OK"​ und CANCEL (das kleine Kreuz oben rechts) genutzt.\\ ​ Natürlich können weitere BUTTON-Steuerelemente eingebaut werden, wie z.B. "​Ja"​ und "​Nein"​ um aufgrund des angezeigten Textes\\ ​ dem Benutzer eine Entscheidung abzuverlangen.\\ \\  Als Quelle für den Text wurde im Beispiel die Zuweisung zur Variablen Text verwendet. Es kann aber auch Text aus dem Skript oder einer\\ ​ externen Textdatei ausgelesen werden.\\ \\ 
-==== Text auslesen aus dem Skript ==== + 
- Bei dem folgenden //​VBS-Beispiel//​ sind zwei Textbeispiele eingebaut.\\ ​+===== Text auslesen aus dem Skript ====
 + 
 +Bei dem folgenden //​VBS-Beispiel//​ sind zwei Textbeispiele eingebaut.\\ ​
  
   * Bei Text_A ist der Text ohne Zeilenumbruch fortlaufend geschrieben. Der Umbruch wird in der Anzeige dem automatischen\\ ​ Zeilenumbruch im EDIT-Steuerelement überlassen.   * Bei Text_A ist der Text ohne Zeilenumbruch fortlaufend geschrieben. Der Umbruch wird in der Anzeige dem automatischen\\ ​ Zeilenumbruch im EDIT-Steuerelement überlassen.
   * Bei Text_B wird versucht, jeder Zeile eine etwa gleiche Länge zu geben. Bei der Textermittlung wird in der Variablen LaengeMax\\ ​ die maximal in einer Zeile verwendete Anzahl von eingetragen. Diese Zahl wird bei Aufruf der Textanzeige dazu verwendet,​\\ ​ die Breite des Anzeigedialogs zu bestimmen. Dabei wird LaengeMax mit einem Faktor multipliziert,​ der experimentell ermittelt\\ ​ wurde (hier 2.5 als Beispiel).   * Bei Text_B wird versucht, jeder Zeile eine etwa gleiche Länge zu geben. Bei der Textermittlung wird in der Variablen LaengeMax\\ ​ die maximal in einer Zeile verwendete Anzahl von eingetragen. Diese Zahl wird bei Aufruf der Textanzeige dazu verwendet,​\\ ​ die Breite des Anzeigedialogs zu bestimmen. Dabei wird LaengeMax mit einem Faktor multipliziert,​ der experimentell ermittelt\\ ​ wurde (hier 2.5 als Beispiel).
 \\  Um das Beispiel zu testen muss es mit der eingebauten Routine "​TextAnzeige"​ als VB-Skript abgespeichert und der Dateiname in der\\  Konstanten "​SkriptName"​ eingetragen werden. Zum Probieren mit Test_A und Test_B müssen an zwei Stellen die Auskommentierungen\\ ​ entfernt bzw. gesetzt werden. Bei Textänderungen muss zum weiteren Testen immer erst wieder gespeichert werden.\\ \\  \\  Um das Beispiel zu testen muss es mit der eingebauten Routine "​TextAnzeige"​ als VB-Skript abgespeichert und der Dateiname in der\\  Konstanten "​SkriptName"​ eingetragen werden. Zum Probieren mit Test_A und Test_B müssen an zwei Stellen die Auskommentierungen\\ ​ entfernt bzw. gesetzt werden. Bei Textänderungen muss zum weiteren Testen immer erst wieder gespeichert werden.\\ \\ 
 +
 +<code VBScript [enable_line_numbers="​true"​]>​
   Option Explicit   Option Explicit
  
Zeile 160: Zeile 214:
   End Sub   End Sub
   '​----------------------------------------------------------   '​----------------------------------------------------------
-\\  +</​code>​ 
-==== Text auslesen aus externer Datei ==== + 
- Bei dem folgenden VBS-Beispiel wird davon ausgegangen,​ dass eine Textdatei auf dem Rechner gespeichert und der Ablageort bekannt ist.\\ ​ Um das Beispiel zu testen muss es mit der eingebauten Routine "​TextAnzeige"​ als VB-Skript abgespeichert und der vollständige Pfad\\ ​ der auszulesenden Datei in der Konstanten "​Textdatei"​ eingetragen werden.\\ \\ +===== Text auslesen aus externer Datei ====
 + 
 +Bei dem folgenden VBS-Beispiel wird davon ausgegangen,​ dass eine Textdatei auf dem Rechner gespeichert und der Ablageort bekannt ist.\\ ​ Um das Beispiel zu testen muss es mit der eingebauten Routine "​TextAnzeige"​ als VB-Skript abgespeichert und der vollständige Pfad\\ ​ der auszulesenden Datei in der Konstanten "​Textdatei"​ eingetragen werden.\\ \\  
 + 
 +<code VBScript [enable_line_numbers="​true"​]>​
   Option Explicit   Option Explicit
  
Zeile 197: Zeile 255:
   End Sub   End Sub
   '​----------------------------------------------------------   '​----------------------------------------------------------
-\\  +</​code>​ 
-===== **Anzeige des Inhalts einer externen Datei über ein externes Programm** ===== + 
- Man kann auch externe Programme dazu benutzen, Dateiinhalte anzuzeigen. In den meisten Fällen ist einer Dateierweiterung in der Sytemsteuerung\\ ​ des Rechners ein Programm zugeordnet. Beispielsweise wird bei Doppelklick auf eine PDF-Datei ein PDF-Reader geöffnet und darin der Inhalt der\\  PDF-Datei angezeigt, vorausgesetzt es ist ein PDF-Reader installiert.\\ ​ Diese Verbindung von Dateiendung und Programm kann auch per Skript benutzt werden, indem man die Datei mit dem Run-Befehl aufruft.\\ ​ Dabei tritt allerdings ein Fehler auf, wenn kein Reader installiert ist, oder die Datei nicht existiert. Diesen Fehler sollte man abfangen.\\ \\ //​VBS-Beispiel für Direktaufruf einer Datei//​\\ ​+===== Anzeige des Inhalts einer externen Datei über ein externes Programm ===== 
 + 
 +Man kann auch externe Programme dazu benutzen, Dateiinhalte anzuzeigen. In den meisten Fällen ist einer Dateierweiterung in der Sytemsteuerung\\ ​ des Rechners ein Programm zugeordnet. Beispielsweise wird bei Doppelklick auf eine PDF-Datei ein PDF-Reader geöffnet und darin der Inhalt der\\  PDF-Datei angezeigt, vorausgesetzt es ist ein PDF-Reader installiert.\\ ​ Diese Verbindung von Dateiendung und Programm kann auch per Skript benutzt werden, indem man die Datei mit dem Run-Befehl aufruft.\\ ​ Dabei tritt allerdings ein Fehler auf, wenn kein Reader installiert ist, oder die Datei nicht existiert. Diesen Fehler sollte man abfangen.\\ \\ //​VBS-Beispiel für Direktaufruf einer Datei//​\\ ​ 
 + 
 +<code VBScript [enable_line_numbers="​true"​]>​
   Option Explicit   Option Explicit
  
Zeile 213: Zeile 275:
      ​err.clear      ​err.clear
   on error goto 0   on error goto 0
 +</​code>​
        
-Die Datei in drei Anführungszeichen ein zufassen, ist erforderlich damit Leerzeichen nicht als Trennung erkannt werden.\\ ​ Die dann folgende Zahl bestimmt die Art des Fensters in dem das Programm geöffnet wird und die folgende Kennung //false// oder //​true//​\\ ​ legt fest, ob das Skript auf die Beendigung des geöffneten Programms warten soll oder nicht. Eine ausführliche Erläuterung ist in der\\ [[/​Hilfe%20zu%20JS%20und%20VBS|Microsoft-Hilfe]] zu finden.\\ ​ Es kann aber auch erforderlich sein, das Programm, das zum Öffnen der Datei verwendet werden soll, festzulegen. Dies kann man\\  ebenfalls mit dem Run-Befehl erzwingen indem man das Programm aufruft und nach einem Leerzeichen die Datei als Parameter anhängt.\\ \\ //​VBS-Beispiel für Programmaufruf und Datei als Parameter//\\ +Die Datei in drei Anführungszeichen ein zufassen, ist erforderlich damit Leerzeichen nicht als Trennung erkannt werden.\\ ​ Die dann folgende Zahl bestimmt die Art des Fensters in dem das Programm geöffnet wird und die folgende Kennung //false// oder //​true//​\\ ​ legt fest, ob das Skript auf die Beendigung des geöffneten Programms warten soll oder nicht. Eine ausführliche Erläuterung ist in der\\ [[/​Hilfe%20zu%20JS%20und%20VBS|Microsoft-Hilfe]] zu finden.\\ ​ Es kann aber auch erforderlich sein, das Programm, das zum Öffnen der Datei verwendet werden soll, festzulegen. Dies kann man\\  ebenfalls mit dem Run-Befehl erzwingen indem man das Programm aufruft und nach einem Leerzeichen die Datei als Parameter anhängt.\\ \\ //​VBS-Beispiel für Programmaufruf und Datei als Parameter// 
 + 
 +<code VBScript [enable_line_numbers="​true"​]>​
   Option Explicit   Option Explicit
  
Zeile 230: Zeile 294:
      ​err.clear      ​err.clear
   on error goto 0   on error goto 0
-    +</​code> ​   
-Auch hier sollte ein möglicherweise auftretender Fehler abgefangen werden.\\  ​Der Run-Befehl wird hier in der Wiki auch unter "​[[/​externes%20Programm|Externes Programm aufrufen]]"​ erläutert.\\ \\  ​Es sei noch erwähnt, dass für Pfadangaben auch Systemvariable verwendet werden können. Der Pfad zum Ordner Programme ist\\  ​beispielsweise immer %PROGRAMFILES% unabhängig von der verwendeten Windows-Version.\\  ​Bei Verwendung der Systemvariable kann obigen Beispiel\\  ​statt """​C:​\Program Files\Notepad++\notepad++.exe"""​\\  ​dann """​%PROGRAMFILES%\Notepad++\notepad++.exe"""​\\  ​heißen.+ 
 +Auch hier sollte ein möglicherweise auftretender Fehler abgefangen werden. 
 + 
 +Der Run-Befehl wird hier in der Wiki auch unter "​[[/​externes%20Programm|Externes Programm aufrufen]]"​ erläutert. 
 + 
 +Es sei noch erwähnt, dass für Pfadangaben auch Systemvariable verwendet werden können. Der Pfad zum Ordner Programme ist beispielsweise immer %PROGRAMFILES% unabhängig von der verwendeten Windows-Version. 
 + 
 +Bei Verwendung der Systemvariable kann obigen Beispiel statt //"""​**C:\Program Files**\Notepad++\notepad++.exe"""​// dann //"""​**%PROGRAMFILES%**\Notepad++ \notepad++.exe"""​// heißen.