meta data for this page
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
textanzeige [2018/05/24 10:01] michaeltextanzeige [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.