Promotic
WikipediaLinkedInYoutubeTwitterFacebook

InputBox - metoda objektu Pm

Popis:
Zadaní hodnoty uživatelem (prostřednictvím 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 nahrazena objektem PmForm.

Syntaxe:
InputBox(sDlgTitle As String, sDlgStyle As String, vItemValue As Variant, vItemName As Variant, vItemType As Variant, [vItemAttr1 As Variant], [vItemAttr2 As Variant]) As Boolean
Volání:
val = Pm.InputBox("Nadpis", sDlgStyle, vItemValue, vItemName, vItemType, vItemAttr1, 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 vzhledem k celé obrazovce monitoru (v pixelech). Pro určení pozice lze využít například vlastnosti PmiItem.ScreenX nebo PmPanel.ScreenX.
right - Pozice pravé strany okna vzhledem k celé obrazovce monitoru (v pixelech). Nezadávat, pokud je uveden left. Pokud nezadán left ani right, pak bude okno horizontálně centrováno.
top - Pozice horní strany okna vzhledem k celé obrazovce monitoru (v pixelech). Pro určení pozice lze využít například vlastnosti PmiItem.ScreenY nebo PmPanel.ScreenY.
bottom - Pozice dolní strany okna vzhledem k celé obrazovce monitoru (v pixelech). Nezadávat, pokud je uveden top. Pokud nezadán top ani bottom, pak bude okno vertikálně centrováno.
z-order - hodnota topmost znamená, že bude toto okno 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 zadává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ů, tak se lze v zadávacím okně pohybovat kursorem (skrolovat).
vItemAttr2 je nevyužito - nezadávat nebo nastavit na Empty.
"int" - Zadává se celé číslo (datový typ Long, Integer nebo Byte). Grafický tvar zadávání je EditBox.
vItemAttr1 (typ Long) určuje dolní mez zadávané hodnoty (pokud se nemá kontrolovat, nezadávat nebo nastavit na Empty).
vItemAttr2 (typ Long) určuje horní mez zadávané hodnoty (pokud se nemá kontrolovat, nezadávat nebo nastavit na Empty).
"real" - Zadává se reálné číslo (datový typ Single nebo Double). Grafický tvar zadávání je EditBox.
vItemAttr1 (typ Double) určuje dolní mez zadávané hodnoty (pokud se nemá kontrolovat, nezadávat nebo nastavit na Empty).
vItemAttr2 (typ Double) určuje horní mez zadávané hodnoty (pokud se nemá kontrolovat, nezadávat nebo nastavit na Empty).
"bool" - Zadává se hodnota true nebo false (datový typ Boolean). Grafický tvar zadávání je CheckBox.
vItemAttr1 a vItemAttr2 je nevyužito - nezadávat nebo nastavit na Empty.
"enum" - Výběr z několika definovaných voleb. Zadává se celé nezáporné číslo (datový typ Long) které představuje index (indexováno od 0) do výběru z několika voleb. Grafický tvar zadávání je ComboBox.
vItemAttr1 (typ Integer) určuje maximální počet viditelných znaků (tzn. ovlivňuje šířku ComboBoxu).
vItemAttr2 (typ String) definuje 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 definuje 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 zadává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ává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 Empty.
vItemAttr1 (typ String) určuje vzhled statického textu. Pokud nezadáno nebo nastaveno na Empty, pak je text zarovnán doleva. Pokud zadán text "center", pak je text centrován.
vItemAttr2 je nevyužito - nezadávat nebo nastavit na Empty.
vItemAttr1[nepovinné] (Variant) První atribut (nebo pole atributů), jehož význam se mění dle vItemType
vItemAttr2[nepovinné] (Variant) Druhý atribut (nebo pole atributů), jehož význam se mění dle vItemType
Vrácená hodnota:
true - Pokud byl InputBox zavřen tlačítkem OK
false - Pokud byl InputBox zavřen tlačítkem Storno
Poznámka:
Pro tvorbu složitějších zadávacích oken lze použít objekt PmPanel otevíraný metodou PmPanel.OpenView.
 
Tato metoda prozatím není funkční pro Web Obrazy.
Příklad1:
Jednoduché použití metody pro zadání jedné hodnoty:
Dim val
val = 3.14
If Pm.InputBox("Zadej hodnotu", "", val, "Vykon", "real", 0, 100) then
  'Když byl InputBox 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:
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:
Zadání jedné reálné proměnné v mezích <40, 80> do objektu PmNumber s názvem "Number". InputBox se vyvolá z události grafického prvku tzn. parametr pMe je tento grafický prvek) a bude umístěn vlevo (v zaremovaném řádku - vpravo) od tohoto prvku:
Dim val, oNumber, sStyle
Set oNumber = pMe.Pm("/Number")
val = oNumber.Value
sStyle = "right:" & pMe.ScreenX & ";top:" & pMe.ScreenY & ";"
' sStyle = "left:" & pMe.ScreenX+pMe.Dx & ";top:" & pMe.ScreenY & ";"
' sStyle = "left:" & pMe.PmPanel.ScreenX+100 & ";top:" & pMe.PmPanel.ScreenY+100 & ";"
If Pm.InputBox("Zadej hodnotu", sStyle, val, "Vykon", "real", 40, 80) Then
  'Když byl InputBox ukončen tlačítkem OK
  oNumber.Value = val
End If
Příklad4:
Zadání více hodnot najednou, okno se objevuje "Vždy nahoře" a je uprostřed obrazovky monitoru:
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", "", "Volba 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
  'Když byl InputBox 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 "Volba režimu:" & arrValue(5)
End If
Navigace:
 
- Pm
 
- Abs
- Cos
- E
- Exp
- InputBox
 
 
- LN2
- PI
- Pow
- Sin
- Tan
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice