Promotic

InputBox - metoda objektu Pm

Popis:
Nastavení hodnoty uživatelem (pomocí zadávacího okna) jedné proměnné nebo více proměnných (proměnné typu pole).
Tato metoda je zastaralá (ale funkční) a je lepší použít objekt PmForm.
Syntaxe:
Boolean InputBox(String sDlgTitle, String sDlgStyle, Variant vItemValue, Variant vItemName, Variant vItemType, [Variant vItemAttr1], [Variant vItemAttr2])
Parametry:
sDlgTitle(String) Nadpis zadávacího okna
sDlgStyle(String) Styl okna. Příklad: "left:100;top:200;z-order:topmost;button-cancel:no;"
left - Pozice levé strany okna relativně k celé obrazovce monitoru (v pixelech). Pro určení pozice lze použít například vlastnost PmgObject.ScreenX nebo PmaPanel.ScreenX.
right - Pozice pravé strany okna relativně k celé obrazovce (v pixelech). Nezadávat, pokud je uveden left. Pokud není zadán left ani right, pak okno bude centrováno vodorovně.
top - Pozice horní strany okna relativně k celé obrazovce (v pixelech). Pro určení pozice lze použít například vlastnosti PmgObject.ScreenY nebo PmaPanel.ScreenY.
bottom - Pozice dolní strany okna relativně k celé obrazovce (v pixelech). Nezadávat, pokud je uveden top. Pokud není zadán top ani bottom, pak okno bude centrováno svisle.
z-order - hodnota topmost znamená, že okno bude nad všemi Windows okny.
button-cancel - Vzhled tlačítka Storno. Hodnota no znamená, že tlačítko nebude vidět.
vItemValue[pro čtení i zápis] (Variant) proměnná (nebo pole proměnných) pro zadání hodnoty
vItemName(Variant) Popisný text (nebo pole popisných textů) k proměnné vItemValue
vItemType(Variant) text (nebo pole textů) určující typ zadávané hodnoty:
"string" - Zadává se text (datový typ String). Grafický tvar pro zadání je EditBox.
vItemAttr1 (typ Integer) určuje maximální počet viditelných znaků (tzn. ovlivňuje šířku EditBoxu). Maximální délka zadávaného textu je 1000 znaků. Pokud počet viditelných znaků je menší než počet zadaných znaků, pak se lze v zadávacím okně pohybovat kursorem (skrolovat).
vItemAttr2 je nevyužito - nezadávat nebo nastavit na: null pro JavaScript nebo Empty pro VBScript.
"int" - Zadává se celé číslo (datový typ Long). Grafický tvar pro zadání je EditBox.
vItemAttr1 (datový typ Long) určuje dolní mez zadávané hodnoty (pokud se nemá kontrolovat, pak nezadávat nebo nastavit na: null pro JavaScript nebo Empty pro VBScript).
vItemAttr2 (datový typ Long) určuje horní mez zadávané hodnoty (pokud se nemá kontrolovat, pak nezadávat nebo nastavit na: null pro JavaScript nebo Empty pro VBScript).
"real" - Zadává se reálné číslo (datový typ Double). Grafický tvar pro zadání je EditBox.
vItemAttr1 (datový typ Double) určuje dolní mez zadávané hodnoty (pokud se nemá kontrolovat, pak nezadávat nebo nastavit na: null pro JavaScript nebo Empty pro VBScript).
vItemAttr2 (datový typ Double) určuje horní mez zadávané hodnoty (pokud se nemá kontrolovat, pak nezadávat nebo nastavit na: null pro JavaScript nebo Empty pro VBScript).
"bool" - Zadává se hodnota true nebo false (datový typ Boolean). Grafický tvar pro zadání je CheckBox.
vItemAttr1 a vItemAttr2 je nevyužito - nezadávat nebo nastavit na: null pro JavaScript nebo Empty pro VBScript.
"enum" - Výběr z několika definovaných voleb. Zadává se nezáporné celé číslo (datový typ Long) které představuje index (indexováno od 0) do výběru z několika voleb. Grafický tvar pro zadání je ComboBox.
vItemAttr1 (typ Integer) určuje maximální počet viditelných znaků (tzn. určuje šířku ComboBoxu).
vItemAttr2 (typ String) určuje volby. Je to text slov oddělených znakem | (tzn. kolmá čárka), například "1.volba|2.volba".

Hodnota v vItemValue (typu Long) na začátku určuje slovo, které bude předvybráno. Na konci je tam index vybraného slova.
"password" - Zadává se text (datový typ String) jako heslo. Grafický tvar pro zadání je EditBox a místo zadávaných znaků jsou vidět jen hvězdičky *.
vItemAttr1 a vItemAttr2 mají stejný význam jako pro typ "string".
"static" - Neslouží pro zadání. Je vidět jen statický text, který je v parametru vItemName. V tomto textu mohou být a jsou aktivní znaky "nový řádek" (viz konstanta vbCrLf) a k zalamování řádků také dojde pokud by text byl příliš široký.
Parametr vItemValue je nevyužit - nastavit na: null pro JavaScript nebo Empty pro VBScript.
vItemAttr1 (typ String) určuje vzhled statického textu. Pokud nezadáno, pak je text zarovnán vlevo. Pokud zadán text "center", pak je text centrován.
vItemAttr2 je nevyužito - nezadávat nebo nastavit na: null pro JavaScript nebo Empty pro VBScript.
vItemAttr1[nepovinné] (Variant) První atribut (nebo pole atributů), jehož význam se mění podle vItemType
vItemAttr2[nepovinné] (Variant) Druhý atribut (nebo pole atributů), jehož význam se mění podle vItemType
Vrácená hodnota:
true - Pokud InputBox byl zavřen tlačítkem "OK"
false - Pokud InputBox byl zavřen tlačítkem "Storno"
Poznámka:
Pro tvorbu složitějších zadávacích oken lze použít objekt PmaPanel otevíraný metodou PmaPanel.OpenView.

Tato metoda není funkční ve Web obrazech.
Příklad1:
Jednoduché použití metody pro zadání jedné hodnoty:
VBScriptVyber a zkopíruj do schránky

Dim val
val = 3.14
If Pm.InputBox("Zadejte hodnotu", "", val, "Vykon", "real", 0, 100) Then
' InputBox byl ukončen tlačítkem "OK"
Pm.Debug "val=" & val
End If
Příklad2:
InputBox lze použít (podobně jako Pm.MessageBox) jen pro zobrazení textu. InputBox je však obecnější a lze zadat například souřadnice umístění okna:
VBScriptVyber a zkopíruj do schránky

Dim sText
sText = "Chyba spuštění režimu ochrany" & vbCrLf & "Teplota mimo povolený rozsah"
Pm.InputBox "Kritická chyba", "button-cancel:no;left:300;top:300;", Empty, sText, "static", "center"
Příklad3:
Nastavení jedné reálné proměnné v rozsahu <40, 80> do objektu PmaNumber s názvem "Number". InputBox se vyvolá v události Pmg objektu (tzn. parametr pMe je tento Pmg objekt) a bude umístěn vlevo od tohoto objektu:
VBScriptVyber a zkopíruj do schránky

Dim oNumber, val, sStyle
Set oNumber = pMe.Pm("/Number")
val = oNumber.Value
sStyle = "right:" & pMe.ScreenX & ";top:" & pMe.ScreenY & ";"
If Pm.InputBox("Zadejte hodnotu", sStyle, val, "Vykon", "real", 40, 80) Then
' InputBox byl ukončen tlačítkem "OK"
oNumber.Value = val
End If
Příklad4:
Nastavení více hodnot najednou, okno se objevuje "Vždy nahoře" a je uprostřed obrazovky:
VBScriptVyber a zkopíruj do schránky

Dim arrValue, arrName, arrStyle, arrAttr1, arrAttr2, ret
arrValue = Array("Třídění", true, 2, 0.4, Empty, 1)
arrName = Array("Název procesu", "Povolen", "počet opakování", "Procento úspěšnosti", "", "Výběr režimu")
arrStyle = Array("string", "bool", "int", "real", "static", "enum")
arrAttr1 = Array(20, Empty, 0, 0, Empty, 20)
arrAttr2 = Array(Empty, Empty, 10, 1, Empty, "Dávkové|Spojité|Přerušované")
ret = Pm.InputBox("Vstupní data", "z-order:topmost;", arrValue, arrName, arrStyle, arrAttr1, arrAttr2)

If ret Then
' InputBox byl ukončen tlačítkem "OK"
Pm.Debug "Název procesu:" & arrValue(0)
Pm.Debug "Povolen:" & arrValue(1)
Pm.Debug "počet opakování:" & arrValue(2)
Pm.Debug "Procento úspěšnosti:" & arrValue(3)
Pm.Debug "Výběr režimu:" & arrValue(5)
End If
Navigace:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- InputBox
 
 
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r.o.