Tech Note 31: 問題と回避策

April 2, 2003

© NSB Corporation. All rights reserved.


Go to English page.

警告

  1. Em CE:これはデスクトップ上で動作するVBScript用のエミュレータをNS Basicオブジェクトを処理するよう拡張されたものです。コントロールをEmCE上で動作させるには、デスクトップバージョンのコントロールが必要になります。通常、デスクトップバージョンのコントロールが用意されていないか、デスクトップバージョンがデバイスバージョンと異なった動作をするために、プログラムがEmCE上で動作しないケースが発生します。例えば、EmCEでは、デバイス上とは背景色が異なる等があります。
  2. Em CE:ADOCEとSerial commsは動作しない。
  3. Em CE:Gridコントロールは、デバイス上での動作とことなる。
  4. Em CE:ListBoxコントロールの".add"と".list"メソッドは正常に動作しない。
  5. Em CE:"Bottom"プロパティは動作しない。(デバイスからも削除される予定)代わりに"Height"を使って下さい。
  6. 新しいシリアル番号:デスクトップIDE(「Help」メニューから)およびデバイスIDE(BASIC Installerプログラムから)の両方にシリアル番号を入力することを忘れないで下さい。7桁の古いシリアル番号は使えませんので注意してください。
  7. デスクトップIDEによって作られたプログラムは、デバイスIDEで開くことができ、またその反対も可能です。しかし、デスクトップIDEで作られたプログラムは、デバイスのVisual Designerで編集できません。
  8. Windows 98SEでは、プロジェクトをそのアイコンをダブルクリックして開こうとすると、予期できない結果になります。問題がある場合は、NS Basicのファイルダイアログからプロジェクトを指定して開いて下さい。

マイクロソフトによる問題

  1. INPUTBOX:Palm-size PCのスクリーン上ではINPUTBOXは正しくサイズ変更しない。さらにPocket PCおよびHPC 2000では動きません。このコマンドはマイクロソフトのソフトウエアに組み込まれています。回避策として、DialogXコントロールの一部を使ってInputBoxの機能をみたすことができます。下のコードをあなたのプログラムに追加し、InputBoxのファンクションをオーバーライドして下さい。(DialogXはInputBoxには含まれていない機能も持ち合わせています)
    
    	FUNCTION INPUTBOX(prompt, title, default)
    
    	  IF ISEMPTY(NSBIB) THEN
    
    	    ADDOBJECT "DialogX", "NSBIB_Dlg"", 0, 0, 0, 0
    
    	    SET NSBIB=NSBIB_Dlg
    
    	  END IF  
    
    	  INPUTBOX = NSBIB.InputBox(prompt, title, default)
    
    	END FUNCTION  'INPUTBOX
    
    
    
    	X=InputBox("Message area". "INPUTBOX Example", "Default Text")
  2. CommonDialog ActiveX Control on Palm-size PC: Palm-sizeスクリーンでは、showColor メソッドはサポートされていません。さらに、showFont メソッドはサイズ変更をしません。マイクロソフトはこのことに関して、製品を早くリリースするために急いだ結果だと説明しています。
  3. HP 680デバイスではINPUTBOX ファンクションを使うと「Out of Memory」エラーを起こします。原因はHPが不良なVBScript.dllをROMに組み込んだようです。Script68を使って、モジュールをインストールしてこれを修正して下さい。
  4. Palm-sizeデバイスでは、Stringをbooleanに結合するとエラーになります。
  5. EVAL ステートメントは同じデバイスでは動作しません。マイクロソフトのコンパイラーに問題があるようです。回避策として、Exevuteを代わりに使って下さい。
  6. Dateオブジェクト:Changeイベントの中でMSGBOXステートメントを使わないで下さい。MSGBOXが自分のイベントを発生させる時にクリックイベントに入ってしまいます。
  7. Pocket PC上では、FormatNumberとFormatCurrency関数は間違った結果をもたらします。これを直すには、このコードを使って下さい。(Charl Van Schoick氏に提供して頂きました。)
    Function formatNum(n,d,l,p,g)
      formatNum=fixformat(formatnumber(abs(n),d,l),n,d,l,p,g,0)
    End Function
    
    Function formatCur(n,d,l,p,g)
      formatCur=fixformat(formatcurrency(abs(n),d,l),n,d,l,p,g,1)
    End Function
      
    Function fixformat(fn,n,d,l,p,g,a)
      If g Then
         g=mid(",.",instr(".,",mid(cstr(1/10),2,1)),1)
         l=Len(fn)
         If d Then l=l-d-1
         While l>3+a
            l=l-3
            fn=mid(fn,1,l) & g & mid(fn,l+1)
         Wend
      End If
      If n<0 Then
           If p Then
           fn="(" & fn & ")"
       Else
           fn="-" & fn
        End If
       End If
      fixformat=fn
    End Function