Tech Note 14: 共通ライブラリ「NSBSystemLib」を使うJune 14, 2003NS BASIC Corporation. All rights reserved. |
はじめに 関数一覧及び、クイックリファレンス NSBSystemLibライブラリ 関数リファレンス
共通ライブラリ「NSBSystemLib」(以下、NSBSystemLib)は、PalmOSのシステム部分へ アクセスする機能を提供します。 これらの幾つかの関数は、現在のNS Basicから SysTrap関数を使っても呼び出す事の出来ないAPIへのアクセスを実現しています。 また、その他は、PalmOS用の単純なインターフェースを提供します。
このライブラリに含まれる関数は、次のカテゴリに分類できます:
アラーム関係、データベース関係、イベント類、フォームとフィールド、HotSyncデータ、 ローカライズ、環境設定、プログレスマネージャ、システム時間。バージョン2からビット処理、暗号化、複合化、スクリーンおよびカラー処理のカテゴリーが追加されました。
凡例を含んだ本稿は、NSBSystemLibを使うのに必要な情報を全て提供していますが、 もし、根本的なPalmOSの関数について、それ以上知りたければ、PalmOS SDKを参照するか、 SDKに含まれるヘッダファイル(*.h)を参照して下さい。PalmOS SDKリファレンスは、以下よりダウンロードできます:
http://www.palmos.com/dev/tech/docs/PalmOSのSDK (Software Development Kit) は、こちらよりダウンロードできます:
http://www.palmos.com/dev/tech/tools/
NSBSystemLibライブラリを使うために、LoadLibraryステートメントを使って
プログラムに読み込んでおく必要があります。このステートメントは、プログラム中の
先頭となるStartupコードに記述する必要があります。 LoadLibraryステートメントは、
2番目の引数として、ライブラリ関数からの参照名を指定します。
この例では「NSL」を参照名に使っています。例えば:
プログラムの Startup code: Sub main() LoadLibrary "NSBSystemLib", "NSL" End Sub
また、NSBSystemLibライブラリを使うには、NSBSystemLib.INFというファイルが、 "nsbasic\lib" というパスにある必要があり、また、実行するデバイスにNSBSystemLib.prcが ダウンロード(インストール)されている必要があります。
これらの関数に使用する引数と戻り値は、全てInteger型かString型のどちらかですが、 バージョンナンバーを返す関数に限り、Double型の値を返します。
バージョン情報 Version version = Version() CompileInfo compileDateTime = CompileInfo() SystemVersion version = SystemVersion() 共有ライブラリグローバル変数へのアクセス GlobalVersionMajor gblMajor = GlobalVersionMajor() GlobalVersionMinor gblMinor = GlobalVersionMinor() GlobalX x = GlobalX() GlobalY y = GlobalY() GlobalStartX startX = GlobalStartX() GlobalStartY startY = GlobalStartY() GlobalEndX endX = GlobalEndX() GlobalEndY endY = GlobalEndY() GlobalStartPos startPos = GlobalStartPos() GlobalEndPos endPos = GlobalEndPos() GlobalWidth width = GlobalWidth() GlobalHeight height = GlobalHeight() GlobalHour gblHour = GlobalHour() GlobalMinute gblMinute = GlobalMinute() アラーム関数 SetAlarmReset SetAlarmReset resetTime, resetLimit SetAlarm status = SetAlarm(alarmPgm, alarmTime, alarmCmd, alarmMsg) CancelAlarm status = CancelAlarm(alarmPgm) GetAlarm alarmTime = GetAlarm(alarmPgm, alarmCmd, alarmMsg) GetAlarmTime alarmTime = GetAlarmTime(alarmPgm) GetAlarmResetTime resetTime = GetAlarmResetTime(alarmPgm) GetAlarmResetLimit resetLimit = GetAlarmResetLimit(alarmPgm) GetAlarmCommand alarmCmd = GetAlarmCommand(alarmPgm) GetAlarmMessage alarmMsg = GetAlarmMessage(alarmPgm) AlarmLog alarmTime = AlarmLog(alarmPgm, alarmCmd, alarmMsg) AlarmLogAlarmTime alarmTime = AlarmLogAlarmTime(alarmPgm) AlarmLogResetTime resetTime = AlarmLogResetTime(alarmPgm) AlarmLogResetLimit resetLimit = AlarmLogResetLimit(alarmPgm) AlarmLogResetCount resetCount = AlarmLogResetCount(alarmPgm) AlarmLogCommand alarmCmd = AlarmLogCommand(alarmPgm) AlarmLogMessage alarmMsg = AlarmLogMessage(alarmPgm) ClearAlarmLog alarmPgm = ClearAlarmLog() データベース関数 FindDatabase dbID = FindDatabase(cardNo, dbName) DatabaseInfo dbName = DatabaseInfo(cardNo, dbID) DatabaseName dbName = DatabaseName() DatabaseAttributes dbAttributes = DatabaseAttributes() DatabaseVersion dbVersion = DatabaseVersion() DatabaseCreationDate dbCreationDate = DatabaseCreationDate() DatabaseModificationDate dbModificationDate = DatabaseModificationDate() DatabaseBackupDate dbBackupDate = DatabaseBackupDate() DatabaseModificationNumber dbModificationNumber = DatabaseModificationNumber() DatabaseAppInfoID dbAppInfoID = DatabaseAppInfoID() DatabaseSortInfoID dbSortInfoID = DatabaseSortInfoID() DatabaseType dbType = DatabaseType() DatabaseCreatorID dbCreatorID = DatabaseCreatorID() DatabaseTotalSize dbTotalSize = DatabaseTotalSize(cardNo, dbID) DatabaseNumRecords dbNumRecords = DatabaseNumRecords() DatabaseDataSize dbDataSize = DatabaseDataSize() DeleteDatabase status = DeleteDatabase(cardNo, dbID) GetNextDatabaseByTypeCreator dbID = GetNextDatabaseByTypeCreator(newSearch, dbType, dbCreatorID, onlyLatestVersion) DatabaseCardNo dbCardNo = DatabaseCardNo() NumDatabases nbr = NumDatabases(cardNo) NumCards nbr = NumCards() GetDatabase dbID = GetDatabase(cardNo, index) SetDatabaseName status = SetDatabaseName(cardNo, dbID, dbName) SetDatabaseAttributes status = SetDatabaseAttributes(cardNo, dbID, dbAttributes) SetDatabaseVersion status = SetDatabaseVersion(cardNo, dbID, dbVersion) SetDatabaseCreationDate status = SetDatabaseCreationDate(cardNo, dbID, dbCreationDate) SetDatabaseModificationDate status = SetDatabaseModificationDate(cardNo, dbID, dbModificationDate) SetDatabaseBackupDate status = SetDatabaseBackupDate(cardNo, dbID, dbBackupDate) SetDatabaseModificationNumber status = SetDatabaseModificationNumber(cardNo, dbID, dbModificationNumber) SetDatabaseAppInfoID status = SetDatabaseAppInfoID(cardNo, dbID, dbAppInfoID) SetDatabaseSortInfoID status = SetDatabaseSortInfoID(cardNo, dbID, dbSortInfoID) SetDatabaseType status = SetDatabaseType(cardNo, dbID, dbType) SetDatabaseCreatorID status = SetDatabaseCreatorID(cardNo, dbID, dbCreatorID) イベント関数 GetEvent eventType = GetEvent(timeoutTicks, consumePenEvents, returnVirtualEvents) SysHandleEvent SysHandleEvent() FlushEvents FlushEvents() KeyEventChr keyChr = KeyEventChr() KeyEventKeyCode keyCode = KeyEventKeyCode() KeyEventModifiers modifiers = KeyEventModifiers() フィールド、フォーム関数 ControlHitControl ControlHitControl objID FieldCopy FieldCopy objID FieldCut FieldCut objID FieldInsert FieldInsert objID, insString FieldPaste FieldPaste objID FieldUndo FieldUndo objID FieldGetInsPtPosition pos = FieldGetInsPtPosition(objID) FieldGetSelection startPos = FieldGetSelection(objID) FieldAnyDirty dirty = FieldAnyDirty() FieldDirty dirty = FieldDirty(objID) FieldSetDirty FieldSetDirty objID, dirty FieldSetAllDirty FieldSetAllDirty dirty FieldSetSelection FieldSetSelection objID, startPos, endPos FieldSetInsertionPoint FieldSetInsertionPoint objID, pos FieldSetInsPtPosition FieldSetInsPtPosition objID, pos FieldGetAttributes attributes = FieldGetAttributes(objID) FieldSetAttributes FieldSetAttributes objID, attributes FieldGetFont fontId = FieldGetFont(objID) FieldSetFont FieldSetFont objID, fontId FieldGetScrollPosition position = FieldGetScrollPosition(objID) FieldSetScrollPosition FieldSetScrollPosition objID, position FieldGetScrollValues totalLines = FieldGetScrollValues(objID) FieldGetVisibleLines lines = FieldGetVisibleLines(objID) FieldGetNumberOfBlankLines lines = FieldGetNumberOfBlankLines(objID) FieldScrollable yesNo = FieldScrollable(objID, direction) FieldScrollField FieldScrollField objID, nbrLines, direction FieldSetBounds FieldSetBounds objID, topLeftX, topLeftY, width, height FormGetNumberOfObjects nbr = FormGetNumberOfObjects() FormGetObjectBounds x = FormGetObjectBounds(objID) FormGetObjectPosition x = FormGetObjectPosition(objID) FormGetObjectType type = FormGetObjectType(objID) FormSetObjectPosition FormSetObjectPosition objID, x, y FormSetObjectBounds FormSetObjectBounds objID, topLeftX, topLeftY, width, height FormGetTitle title = FormGetTitle() FormReplaceTitle FormReplaceTitle title, forceLength ListGetTopItem topItem = ListGetTopItem(objID) ListSetTopItem ListSetTopItem objID, topItem ListGetVisibleItems visibleItems = ListGetVisibleItems(objID) ListScrollList result = ListScrollList(objID, direction, nbrItems) フォント関連 FontGetFont fontId = FontGetFont() FontSetFont oldFontId = FontSetFont(fontId) FontSelect fontId = FontSelect() FontCharWidth width = FontCharWidth(charString) FontCharsWidth width = FontCharsWidth(charString, optionalLen) FontWidthToOffset offset = FontWidthToOffset(charString, optionalLen, width) FontCharsInWidth length = FontCharsInWidth(charString, optionalLen, width) FontWordWrap length = FontWordWrap(charString, width) HotSync データ SyncUserName userName = SyncUserName() SuccessfulSync syncDate = SuccessfulSync() LastSync syncDate = LastSync() ローカライズ:地域情報関数 LocalizeNumber localNbrStr = LocalizeNumber(stdNbrStr) DelocalizeNumber stdNbrStr = DelocalizeNumber(localNbrStr) LocalizeDate localDateStr = LocalizeDate(stdDateStr, ToDateFormat, longDateFormat) 環境設定 GetAppPreferences data = GetAppPreferences(pgmName, prefId, saved) SetAppPreferences status = SetAppPreferences(pgmName, prefId, data, saved) GetSysPreference data = GetSysPreference(prefID) SetSysPreference SetSysPreference prefID, data プログレスマネージャ ProgressStartDialog ProgressStartDialog title ProgressStopDialog ProgressStopDialog force ProgressUpdateDialog ProgressUpdateDialog error, message ProgressUserCancel canceled = ProgressUserCancel() ProgressPercent percent = ProgressPercent(current, count) ProgressPercentString strValue = ProgressPercentString(percent, resolution, completeChar, incompleteChar) 文字列関数 String4ToInt intValue = String4ToInt(fourByteString) IntToString4 fourByteString = IntToString4(intValue) DelimitedItem item = DelimitedItem(inputStr, delimiter, nbr) FixedWidthString fixedStr = FixedWidthString(origStr, width, options) NormalSpacedString normalStr = NormalSpacedString(origStr) システム時刻関数 SelectOneTime newTimeSelected = SelectOneTime(defHour, defMinute, title) IncrementSystemTime newSysTime = IncrementSystemTime(oldSysTime, hours, minutes, seconds) SystemTime sysTime = SystemTime(strDate, strTime, seconds, ToDateFormat) StringDateTime strDateTime = StringDateTime(sysTime, ToDateFormat, ToTimeFormat, AMPMFormat) StringDate strDate = StringDate(sysTime, ToDateFormat) StringTime strTime = StringTime(sysTime, ToTimeFormat, AMPMFormat) ライブラリバージョン1.4の追加と変更点 PostEvent PostEvent eventNbr FormGetFocus objID = FormGetFocus() FieldGetTextLength txtLen = FieldGetTextLength(objID) RandomNumber nbr = RandomNumber(seed, minNbr, maxNbr) ResetAutoOffTimer ResetAutoOffTimer() SetAutoOffTime oldSeconds = SetAutoOffTime(newSeconds) ProgramVersionString verStr = ProgramVersionString(cardNbr, pgmName) DynamicHeapSize heapSize = DynamicHeapSize() DynamicHeapFree freeSize = DynamicHeapFree() DynamicHeapMaxChunk maxChunkSize = DynamicHeapMaxChunk() SortInit error = SortInit(maxItems, itemType) SortAddString error = SortAddString(strItem) SortAddInteger error = SortAddInteger(intItem) SortAddDouble error = SortAddDouble(dblItem) SortGetString strItem = SortGetString(index) SortGetInteger intItem = SortGetInteger(index) SortGetDouble dblItem = SortGetDouble(index) SortQSort numItems = SortQSort(reverseSort, caselessSort) SortInsertionSort numItems = SortInsertionSort(reverseSort, caselessSort) ListQSort numItems = ListQSort(objID, reverseSort, caselessSort) ListInsertionSort numItems = ListInsertionSort(objID, reverseSort, caselessSort) ライブラリバージョン2.0の追加と変更点 FormGetAllObjectTypes type = FormGetAllObjectTypes(objID) FieldClearAll FieldClearAll() ObjectWithPoint obj = ObjectWithPoint(x, y, returnType, searchOption) ANDInt result = ANDInt(int1, int2) ORInt result = ORInt(int1, int2) XORInt result = XORInt(int1, int2) OnesComplement result = OnesComplement(intValue) BitValue result = BitValue(intValue, bitNumber) BitsValue result = BitsValue(intValue, startBit, endBit) SetBitValue result = SetBitValue(intValue, bitNumber, bitValue) SetBitsValue result = SetBitsValue(intValue, bitsValue, startBit, endBit) IntToHex hexValue = IntToHex(intValue, trimLeading) HexToInt intValue = HexToInt(hexValue) IntToBin binValue = IntToBin(intValue, trimLeading) BinToInt intValue = BinToInt(binValue) スクリーン用及びカラー用関数: GetSupportedDepths depths = GetSupportedDepths() DepthSupported boolean = DepthSupported(depth) ColorSupported boolean = ColorSupported() SetDepth SetDepth depth SetColor SetColor boolean SaveScreenMode SaveScreenMode() RestoreScreenMode RestoreScreenMode() CurrentDepth depth = CurrentDepth() CurrentColor boolean = CurrentColor() SetToDefaults SetToDefaults() DefaultDepth depth = DefaultDepth() DefaultColor boolean = DefaultColor() GetTableEntryIndex index = GetTableEntryIndex(which) GetTableEntryRGB index = GetTableEntryRGB(which) GetRGBIndex index = GetRGBIndex() GetRGBRed red = GetRGBRed() GetRGBGreen green = GetRGBGreen() GetRGBBlue blue = GetRGBBlue() SetTableEntryIndex SetTableEntryIndex which, index SetTableEntryRGB SetTableEntryRGB which, red, green, blue BrightnessAdjust BrightnessAdjust() ContrastAdjust ContrastAdjust() PickColorIndex changed = PickColorIndex(index, title) PickColorRGB changed = PickColorRGB(red, green, blue, title) IndexToRGB IndexToRGB index RGBToIndex index = RGBToIndex(red, green, blue) SetForeColor oldIndex = SetForeColor(newIndex) SetBackColor oldIndex = SetBackColor(newIndex) SetTextColor oldIndex = SetTextColor(newIndex) DrawLine DrawLine x1, y1, x2, y2 DrawGrayLine DrawGrayLine x1, y1, x2, y2 EraseLine EraseLine x1, y1, x2, y2 InvertLine InvertLine x1, y1, x2, y2 DrawPixel DrawPixel x, y ErasePixel ErasePixel x, y InvertPixel InvertPixel x, y GetPixel index = GetPixel(x, y) ScreenLock success = ScreenLock(mode) ScreenUnlock ScreenUnlock() WinSaveBits WinSaveBits index, x, y, width, height WinRestoreBits WinRestoreBits index, x, y スリープ・ウェイクイベント関数 SetSleepEvent SetSleepEvent eventNbr SetWakeEvent SetWakeEvent eventNbr GetSleepEvent eventNbr = GetSleepEvent() GetWakeEvent eventNbr = GetWakeEvent() GetSleepEventTime eventTime = GetSleepEventTime() GetWakeEventTime eventTime = GetWakeEventTime() 文字列の暗号化及び復号化関数 EncryptDESString encryptedStr = EncryptDESString(decryptedStr) DecryptDESString decryptedStr = DecryptDESString(encryptedStr) SetDESKey SetDESKey keyStr
version = NSBSystemLib.Version()NSBSystemLibライブラリのバージョンを返します。
戻り値 version as Double
例 Dim version as Double version = NSL.Version()
compileDateTime = NSBSystemLib.CompileInfo()NSBSystemLibライブラリがコンパイルされた日付と時刻を返します。
戻り値 compileDateTime as String
例 Dim compileDateTime as String compileDateTime = NSL.CompileInfo()
version = NSBSystemLib.SystemVersion()PalmOSのバージョンを返します。
参考: GlobalVersionMajor(), GlobalVersionMinor()戻り値 version as Double
例 Dim version as Double version = NSL.SystemVersion()
gblMajor = NSBSystemLib.GlobalVersionMajor()PalmOSのバージョン数字のメジャーバージョンを返します。 この値は、ライブラリをロードしたときに、グローバル変数に代入されます。
参考: SystemVersion()戻り値 gblMajor as Integer
例 Dim gblMajor as Integer gblMajor = NSL.GlobalVersionMajor()
gblMinor = NSBSystemLib.GlobalVersionMinor()PalmOSのバージョン数字のマイナー部分を返します。 この値は、ライブラリをロードしたときに、グローバル変数に代入されます。
参考: SystemVersion()戻り値 gblMinor as Integer
例 Dim gblMinor as Integer gblMinor = NSL.GlobalVersionMinor()
x = NSBSystemLib.GlobalX()NSBSystemLibライブラリの中のグローバル変数「x」の値を返します。
戻り値 x as Integer
例 Dim x as Integer x = NSL.GlobalX()
y = NSBSystemLib.GlobalY()NSBSystemLibライブラリの中のグローバル変数「y」の値を返します。
戻り値 y as Integer
例 Dim y as Integer y = NSL.GlobalY()
startX = NSBSystemLib.GlobalStartX()NSBSystemLibライブラリの中のグローバル変数「StartX」の値を返します。
戻り値 startX as Integer
例 Dim startX as Integer startX = NSL.GlobalStartX()
startY = NSBSystemLib.GlobalStartY()NSBSystemLibライブラリの中のグローバル変数「StartY」の値を返します。
戻り値 startY as Integer
例 Dim startY as Integer startY = NSL.GlobalStartY()
endX = NSBSystemLib.GlobalEndX()NSBSystemLibライブラリの中のグローバル変数「EndX」の値を返します。
戻り値 endX as Integer
例 Dim endX as Integer endX = NSL.GlobalEndX()
endY = NSBSystemLib.GlobalEndY()NSBSystemLibライブラリの中のグローバル変数「EndY」の値を返します。
戻り値 endY as Integer
例 Dim endY as Integer endY = NSL.GlobalEndY()
startPos = NSBSystemLib.GlobalStartPos()NSBSystemLibライブラリの中のグローバル変数「startPos」の値を返します。
戻り値 startPos as Integer
例 Dim startPos as Integer startPos = NSL.GlobalStartPos()
endPos = NSBSystemLib.GlobalEndPos()NSBSystemLibライブラリの中のグローバル変数「endPos」の値を返します。
戻り値 endPos as Integer
例 Dim endPos as Integer endPos = NSL.GlobalEndPos()
width = NSBSystemLib.GlobalWidth()NSBSystemLibライブラリの中のグローバル変数「width」の値を返します。
戻り値 width as Integer
例 Dim width as Integer width = NSL.GlobalWidth()
height = NSBSystemLib.GlobalHeight()NSBSystemLibライブラリの中のグローバル変数「height」の値を返します。
戻り値 height as Integer
例 Dim height as Integer height = NSL.GlobalHeight()
gblHour = NSBSystemLib.GlobalHour()NSBSystemLibライブラリの中のグローバル変数「hour」の値を返します。
参考: SelectOneTime()戻り値 gblHour as Integer
例 Dim gblHour as Integer gblHour = NSL.GlobalHour()
gblMinute = NSBSystemLib.GlobalMinute()NSBSystemLibライブラリの中のグローバル変数「minute」の値を返します。
参考: SelectOneTime()戻り値 gblMinute as Integer
例 Dim gblMinute as Integer gblMinute = NSL.GlobalMinute()
NSBAlarmProxy1, NSBAlarmProxy2, NSBAlarmProxy3, NSBAlarmProxy4, and NSBAlarmProxy5NSBAlarmProxyプログラムは、あなたのNSBasicプログラムの代わりに多くの異なる事を 行わせることができます。 それらは、デバイスの電源ON、単なるアラーム、アラート表示、指定されたプログラムを スタートさせる、の他に、動作中のNS Basicからイベントを感知したりできます。 アラームは、自動的にそれら自身をリセットしたり、再スケジュールするように設定できます。 イベントを感知できるリセット機能の特徴を使う事で、簡単に「割り込みタイマー」を実現する事も出来ます。
NSBSystemLib.SetAlarmReset resetTime, resetLimit自動アラームによってセットされる次のアラーム用間隔をリセットします。
この機能が使用される場合、これは、各SetAlarm()関数の前にコールしなければなりません。引数 resetTime as Integer リセット間隔(秒) 0 = 自動的にアラームをリセットしません resetLimit as Integer 生じることができる自動リセットの数の限界。 -1 = リセットは制限されていません。 自動リセットを止めるためにCancelAlarm()を使用しなければなりません。 0 = 自動的にアラームをリセットしません
例 Dim resetTime as Integer Dim resetLimit as Integer resetTime = 10 resetLimit = -1 NSL.SetAlarmReset resetTime, resetLimit
status = NSBSystemLib.SetAlarm(alarmPgm, alarmTime, alarmCmd, alarmMsg)指定されたプログラムのためにアラームをセットします。 このライブラリ上のアラーム機能は、NSBAlarmProxyプログラムと共に使用されるように 設計されています。この機能と他のプログラムを一緒に使用している間は、 大きな障害になります。これは、この機能が、プログラムのアプリケーション設定に 書き込みをするためです。同じ設定を使用する非プロキシプログラムに対して、 不正となりハードリセットが必要になるかもしれません。 プログラム名には、将来、アラームプロキシプログラムが追加される事を考慮するような 制限はされていません。
参照: SystemTime()引数 alarmPgm as String アラームプログラム名 alarmTime as Integer 絶対アラーム時間(システム時間フォーマットか、現在の時刻からの秒の増分で指定)。 現在のシステム時間から5分差し引いた値に等しいかそれより大きい場合、その時間を 絶対時間と見なします。 alarmCmd as Integer アラームコマンド説明: -32767 〜 -30001 = "Timer" コマンド これらのコマンドは、最小限のオーバーヘッドしか持ちません。 これらの動作は、アラームログにも書かれません。さらに、これらは、自動的に アラームをリセットします。これらは、CancelAlarm()関数を使って、キャ ンセルしなければなりません。 これらのコマンドは、コマンドの絶対値を持つイベントをキューにいれます。 ここで使われるリセット間隔(秒)は次のように計算します: abs(cmd) - 30000 例: コマンドが「-30005」の場合、インターバルは5秒になります。イベント タイプに30005を持つイベントをキューに入れます。 0 = "nilEvent"をキューにいれます。単純に、Palmデバイスの電源ONなどに使えます。 1 = システムアラーム音のみ鳴らします。 2 = システムアラームを鳴らし、alarmMsbパラメータで指定するメッセージを伴ったAlert(警報)を発生します。 3 = alarmMsgパラメータで指定する名前のプログラムをスタートさせます。この場合、alarmMsgパラメータ は、次の書式をもった文字列で指定します: <programName>[,<launcherWaitTime>][;<userInfo>] 例: "Address" "Address;started by MyProg" "Address,6;started by MyProg" 補足: launcherWaitTimeは、現在のプログラムを中断するまでの時間(秒)で、デフォルト値は2秒に 設定されています。 alarmMsgの文字列全て同様、userInfoはアラームログに書かれます。これは自 由に使う事が出来ます。 4 〜 255 = Keyイベントと同じ値をログに残す特別なキューを指定します。 24832 〜 30000 = 指定されたイベントタイプと同じイベントをキューにいれます。 alarmMsg as String 80文字以下の文字列で、alarmCmd "2"のメッセージか、alarmCmd "3"のプログラミングに使用します。 これは、アラームログに色々な情報を残すため、とても有用なものです。
戻り値 status as Integer 0 = 正常終了 -1 = 指定されたアラームプログラムがインストールされていません -2 = almErrorMemory - メモリーが不十分です -3 = almErrorFull - アラームキューが満タンです -4 = 予期しないエラー・未定義のエラー
例 Dim status as Integer Dim alarmPgm as String Dim alarmTime as Integer Dim alarmCmd as Integer Dim alarmMsg as String alarmPgm = "NSBAlarmProxy1" alarmTime = 3600 ' 1 hour from now alarmCmd = 3 alarmMsg = "Hey Wake UP!" status = NSL.SetAlarm(alarmPgm, alarmTime, alarmCmd, alarmMsg)
status = NSBSystemLib.CancelAlarm(alarmPgm)指定されたアラームプログラムをキャンセルするときに使います。
引数 alarmPgm as String アラームプログラム名
戻り値 status as Integer 0 = 正常終了 -1 = 指定されたアラームプログラムがインストールされていません -2 = almErrorMemory - メモリーが不十分です -3 = almErrorFull - アラームキューが満タンです -4 = 予期しないエラー・未定義のエラー
例 Dim status as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" status = NSL.CancelAlarm(alarmPgm)
alarmTime = NSBSystemLib.GetAlarm(alarmPgm, alarmCmd, alarmMsg)現在セットされているアラームの情報を取得します
参考: StringDateTime(), StringDate(), StringTime()引数 alarmPgm as String アラームプログラム名 alarmCmd as String AlarmCmdの文字列。この引数には戻り値が返されます。 この関数を使う前に、最大の文字数で初期化する必要があります。 この文字列は6文字より長くなってはいけません。 alarmMsg as String Alarm メッセージの文字列。この引数には戻り値が返されます。 この関数を使う前に、最大の文字数で初期化する必要があります。 この文字列は80字より長くなってはいけません。
戻り値 alarmTime as Integer アラーム時間がシステム設定にしたがった書式で返されます。 この値は、1904年1月1日からの経過秒で返されます。
例 Dim alarmTime as Integer Dim alarmPgm as String Dim alarmCmd as String Dim alarmMsg as String alarmPgm = "NSBAlarmProxy1" '最大の文字列で初期化します。 alarmCmd = "123456" alarmMsg = "1234567890123456789012345678901234567890" _ + "1234567890123456789012345678901234567890" alarmTime = NSL.GetAlarm(alarmPgm, alarmCmd, alarmMsg)
alarmTime = NSBSystemLib.GetAlarmTime(alarmPgm)現在セットされているアラームの情報を取得します。
参考: StringDateTime(), StringDate(), StringTime()引数 alarmPgm as String アラームプログラム名
戻り値 alarmTime as Integer アラーム時間がシステム設定にしたがった書式で返されます。 この値は、1904年1月1日からの経過秒で返されます。
例 Dim alarmTime as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" alarmTime = NSL.GetAlarmTime(alarmPgm)
resetTime = NSBSystemLib.GetAlarmResetTime(alarmPgm)現在セットされているアラームの情報を取得します。
引数 alarmPgm as String アラームプログラム名
戻り値 resetTime as Integer アラームリセット時間(秒)
例 Dim resetTime as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" resetTime = NSL.GetAlarmResetTime(alarmPgm)
resetLimit = NSBSystemLib.GetAlarmResetLimit(alarmPgm)現在セットされているアラームの情報を取得します。
引数 alarmPgm as String アラームプログラム名
戻り値 resetLimit as Integer アラームリセットの限界
例 Dim resetLimit as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" resetLimit = NSL.GetAlarmResetLimit(alarmPgm)
alarmCmd = NSBSystemLib.GetAlarmCommand(alarmPgm)現在セットされているアラームの情報を取得します。
引数 alarmPgm as String アラームプログラム名
戻り値 alarmCmd as Integer アラームコマンド
例 Dim alarmCmd as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" alarmCmd = NSL.GetAlarmCommand(alarmPgm)
alarmMsg = NSBSystemLib.GetAlarmMessage(alarmPgm)現在セットされているアラームの情報を取得します。
引数 alarmPgm as String アラームプログラム名
戻り値 alarmMsg as String アラームメッセージ
例 Dim alarmMsg as String Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" alarmMsg = NSL.GetAlarmMessage(alarmPgm)
alarmTime = NSBSystemLib.AlarmLog(alarmPgm, alarmCmd, alarmMsg)処理済みのアラームに関する情報を取得します。
参考: StringDateTime(), StringDate(), StringTime()引数 alarmPgm as String アラームプログラム名 alarmCmd as String AlarmCmdの文字列。この引数には戻り値が返されます。 この関数を使う前に、最大の文字数で初期化する必要があります。 この文字列は6文字より長くなってはいけません。 alarmMsg as String Alarm メッセージの文字列。この引数には戻り値が返されます。 この関数を使う前に、最大の文字数で初期化する必要があります。 この文字列は80字より長くなってはいけません。
戻り値 alarmTime as Integer アラーム時間がシステム設定にしたがった書式で返されます。 この値は、1904年1月1日からの経過秒で返されます。
例 Dim alarmTime as Integer Dim alarmPgm as String Dim alarmCmd as String Dim alarmMsg as String alarmPgm = "NSBAlarmProxy1" alarmCmd = "123456" alarmMsg = "1234567890123456789012345678901234567890" _ + "1234567890123456789012345678901234567890" alarmTime = NSL.AlarmLog(alarmPgm, alarmCmd, alarmMsg)
alarmTime = NSBSystemLib.AlarmLogAlarmTime(alarmPgm)処理済みのアラームに関する情報を取得します。
参考: StringDateTime(), StringDate(), StringTime()引数 alarmPgm as String アラームプログラム名
戻り値 alarmTime as Integer アラーム時間がシステム設定にしたがった書式で返されます。 この値は、1904年1月1日からの経過秒で返されます。
例 Dim alarmTime as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" alarmTime = NSL.AlarmLogAlarmTime(alarmPgm)
resetTime = NSBSystemLib.AlarmLogResetTime(alarmPgm)処理済みのアラームに関する情報を取得します。
引数 alarmPgm as String アラームプログラム名
戻り値 resetTime as Integer アラームリセット時間(秒)
例 Dim resetTime as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" resetTime = NSL.AlarmLogResetTime(alarmPgm)
resetLimit = NSBSystemLib.AlarmLogResetLimit(alarmPgm)処理済みのアラームに関する情報を取得します。
引数 alarmPgm as String アラームプログラム名
戻り値 resetLimit as Integer アラームリセットの限界
例 Dim resetLimit as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" resetLimit = NSL.AlarmLogResetLimit(alarmPgm)
resetCount = NSBSystemLib.AlarmLogResetCount(alarmPgm)処理済みのアラームに関する情報を取得します。
引数 alarmPgm as String アラームプログラム名
戻り値 resetCount as Integer アラームがリセットされた回数
Example Dim resetCount as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" resetCount = NSL.AlarmLogResetCount(alarmPgm)
alarmCmd = NSBSystemLib.AlarmLogCommand(alarmPgm)処理済みのアラームに関する情報を取得します。
引数 alarmPgm as String アラームプログラム名
戻り値 alarmCmd as Integer アラームコマンド
例 Dim alarmCmd as Integer Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" alarmCmd = NSL.AlarmLogCommand(alarmPgm)
alarmMsg = NSBSystemLib.AlarmLogMessage(alarmPgm)処理済みのアラームに関する情報を取得します。
引数 alarmPgm as String アラームプログラム名
戻り値 alarmMsg as String アラームメッセージ
例 Dim alarmMsg as String Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" alarmMsg = NSL.AlarmLogMessage(alarmPgm)
alarmPgm = NSBSystemLib.ClearAlarmLog()指定されたアラームプログラムのログを削除します。
引数 alarmPgm as String アラームプログラム名
例 Dim alarmPgm as String alarmPgm = "NSBAlarmProxy1" alarmPgm = NSL.ClearAlarmLog()
dbID = NSBSystemLib.FindDatabase(cardNo, dbName)指定されたデータベースのデータベースID(LocalID)を返します。
引数 cardNo as Integer この値は、ほとんどの場合、0 を指定する dbName as String データベース名
戻り値 dbID as Integer 0 が返された場合、指定したデータベースが存在しません それ以外は、指定されたデータベースのIDを返します
例 Dim dbID as Integer Dim cardNo as Integer Dim dbName as String cardNo = 0 dbName = "NSBRuntime" dbID = NSL.FindDatabase(cardNo, dbName)
dbName = NSBSystemLib.DatabaseInfo(cardNo, dbID)カードNoとデータベースID(LocalID)で示されるデータベースの名前を 返します。それ以外に、データベースの他の情報も参照することが 可能です。詳しい使い方とデータの参照方法などは、例を見てください。
参照: DatabaseName(), DatabaseAttributes(), DatabaseVersion(), DatabaseCreationDate(), DatabaseModificationDate(), DatabaseBackupDate(), DatabaseModificationNumber(), DatabaseType(), DatabaseCreatorID()引数 cardNo as Integer dbID as Integer
戻り値 dbName as String
例 Dim cardNo as Integer Dim dbID as Integer Dim dbName as String Dim dbVersion as Integer Dim dbCreationDate as Integer Dim dbModificationDate as Integer Dim dbBackupDate as Integer Dim dbModificationNumber as Integer Dim dbAppInfoID as Integer Dim dbSortInfoID as Integer Dim dbType as Integer Dim dbCreatorID as Integer cardNo = 0 dbName = "NSBRuntime" dbID = NSBNSL.FindDatabase(cardNo, dbName) If dbID <> 0 Then dbName = NSL.DatabaseInfo(cardNo, dbID) If dbName <> "" Then dbVersion = NSL.DatabaseVersion() dbCreationDate = NSL.DatabaseCreationDate() dbModificationDate = NSL.DatabaseModificationDate() dbBackupDate = NSL.DatabaseBackupDate() dbModificationNumber = NSL.DatabaseModificationNumber() dbAppInfoID = NSL.DatabaseAppInfoID() dbSortInfoID = NSL.DatabaseSortInfoID() dbType = NSL.DatabaseType() dbCreatorID = NSL.DatabaseCreatorID() EndIf EndIf
dbName = NSBSystemLib.DatabaseName()DatabaseInfo()関数で直前に呼び出されたデータベースの、名前を返します。
戻り値 dbName as String
例 DatabaseInfo()関数の例を参照して下さい。
dbAttributes = NSBSystemLib.DatabaseAttributes()DatabaseInfo()関数で直前に呼び出されたデータベースの、アトリビュート(属性)を返します。
戻り値 dbAttributes as Integer 属性は、ビットデータで返されます。以下に、利用可能なビットマスク値を示します: Bit 0 (0x0001) - dmHdrAttrResDB Bit 1 (0x0002) - dmHdrAttrReadOnly Bit 2 (0x0004) - dmHdrAttrAppInfoDirty Bit 3 (0x0008) - dmHdrAttrBackup Bit 4 (0x0010) - dmhdrAttrOKToInstallNewer Bit 5 (0x0020) - dmHdrAttrResetAfterInstall Bit 6 (0x0040) - dmHdrAttrCopyPrevention Bit 7 (0x0080) - dmHdrAttrStream Bit 8 (0x0100) - dmHdrAttrHidden Bit 9 (0x0200) - hmHdrAttrLaunchableData Bit 15 (0x8000) - dmHdrAttrOpen
例 DatabaseInfo()関数の例を参照して下さい。
dbVersion = NSBSystemLib.DatabaseVersion()DatabaseInfo()関数で直前に呼び出されたデータベースの、バージョンを返します。
戻り値 dbVersion as Integer
例 DatabaseInfo()関数の例を参照して下さい。
dbCreationDate = NSBSystemLib.DatabaseCreationDate()DatabaseInfo()関数で直前に呼び出されたデータベースの、作成日付を返します。 この日付は、システムフォーマットに従って、1904年1月1日からの経過秒を表しています。
参照: StringDateTime(), StringDate(), StringTime()戻り値 dbCreationDate as Integer
例 DatabaseInfo()関数の例を参照して下さい。
dbModificationDate = NSBSystemLib.DatabaseModificationDate()DatabaseInfo()関数で直前に呼び出されたデータベースの、更新日付を返します。 この日付は、システムフォーマットに従って、1904年1月1日からの経過秒を表しています。
参照: StringDateTime(), StringDate(), StringTime()戻り値 dbModificationDate as Integer
例 DatabaseInfo()関数の例を参照して下さい。
dbBackupDate = NSBSystemLib.DatabaseBackupDate()DatabaseInfo()関数で直前に呼び出されたデータベースの、バックアップ日付を返します。 この日付は、システムフォーマットに従って、1904年1月1日からの経過秒を表しています。
参考: StringDateTime(), StringDate(), StringTime()戻り値 dbBackupDate as Integer
例 DatabaseInfo()関数の例を参照して下さい。
dbModificationNumber = NSBSystemLib.DatabaseModificationNumber()DatabaseInfo()関数で直前に呼び出されたデータベースの、更新レコード数を返します。 この数は、レコードを削除したり、追加したり、修正した場合にそれぞれ1つずつ加算されます。
戻り値 dbModificationNumber as Integer
例 DatabaseInfo()関数の例を参照して下さい。
dbAppInfoID = NSBSystemLib.DatabaseAppInfoID()DatabaseInfo()関数で直前に呼び出されたデータベースのアプリケーション情報ブロックのローカルIDを返します。
戻り値 dbAppInfoID as Integer 0:情報ブロックが利用可能でない状態を表します。
例 DatabaseInfo()関数の例を参照して下さい。
dbSortInfoID = NSBSystemLib.DatabaseSortInfoID()DatabaseInfo()関数で直前に呼び出されたデータベースのソートテーブルブロックのローカルIDを返します。
戻り値 dbSortInfoID as Integer 0:ソートテーブルが利用可能でない状態を表します。
例 DatabaseInfo()関数の例を参照して下さい。
dbType = NSBSystemLib.DatabaseType()DatabaseInfo()関数で直前に呼び出されたデータベースのタイプ(型)を返します。
参考: IntToString4()戻り値 dbType as Integer
例 DatabaseInfo()関数の例を参照して下さい。
dbCreatorID = NSBSystemLib.DatabaseCreatorID()DatabaseInfo()関数で直前に呼び出されたデータベースのクリエータIDを返します。
参照: IntToString4()戻り値 dbCreatorID as Integer
例 DatabaseInfo()関数の例を参照して下さい。
dbTotalSize = NSBSystemLib.DatabaseTotalSize(cardNo, dbID)指定されたデータベースのヘッダ(カード番号やデータベースID情報など)を含む総サイズを返します。 さらに、それは、データベースのレコード数やデータベース内のサイズの合計を検索します。 例などを参考に、データへのアクセス方法のより詳しい情報を得てください。
参照: DatabaseNumRecords(), DatabaseDataSize()引数 cardNo as Integer dbID as Integer
戻り値 dbTotalSize as Integer
例 Dim cardNo as Integer Dim dbID as Integer Dim dbTotalSize as Integer Dim dbNumRecords as Integer Dim dbDataSize as Integer cardNo = 0 dbName = "NSBRuntime" dbID = NSL.FindDatabase(cardNo, dbName) If dbID <> 0 Then dbTotalSize = NSL.DatabaseSize(cardNo, dbID) dbNumRecords = NSL.DatabaseNumRecords() dbDataSize = NSL.DatabaseDataSize() EndIf
dbNumRecords = NSBSystemLib.DatabaseNumRecords()DatabaseTotalSize()関数で直前に呼び出されたデータベースのレコード数を返します。
戻り値 dbNumRecords as Integer
例 DatabaseTotalSize()関数の例を参照して下さい。
dbDataSize = NSBSystemLib.DatabaseDataSize()DatabaseTotalSize()関数で直前に呼び出されたデータベースのヘッダを差し引いたデータサイズを返します。
戻り値 dbDataSize as Integer
例 DatabaseTotalSize()関数の例を参照して下さい。
status = NSBSystemLib.DeleteDatabase(cardNo, dbID)指定されたデータベースを削除します。
参照: FindDatabase()引数 cardNo as Integer dbID as Integer
戻り値 status as Integer 0 = successful(成功) 257 = memErrChunkLocked(メモリーエラー:チャンクロック) 258 = memErrNotEnoughSpace(メモリーエラー:十分な空きがない) 259 = memErrInvalidParam(メモリーエラー:引数が不正) 517 = dmErrDatabaseOpen(データベースエラー:データベースが開いている) 518 = dmErrCantOpen(データベースエラー:データベースが開けない) 519 = dmErrCantFind(データベースエラー:データベースが見つからない) 526 = dmErrROMBased(データベースエラー:ROM上のデータベースである)
例 Dim cardNo as Integer Dim dbID as Integer Dim status as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) If dbID <> 0 Then status = NSL.DeleteDatabase(cardNo, dbID) EndIf
dbID = NSBSystemLib.GetNextDatabaseByTypeCreator(newSearch, dbType, dbCreatorID, onlyLatestVersion)指定されたデバイス上に存在するデータベース一覧を検索するために使用します。
参照: DatabaseCardNo(), DatabaseInfo()引数 newSearch as Integer 0 = continue searching for databases(続けて検索) 1 = start a new search(新規検索) dbType as Integer Integer database type.(データベースタイプ) 0 = wildcard search.(ワイルドカード検索) dbCreatorID as Integer Integer Creator ID.(クリエターID) 0 = wildcard search.(ワイルドカード検索) onlyLatestVersion as Integer 0 = 全てのバージョンを返します。 1 = 同一クリエータID内の最新バージョンのみ返します。
戻り値 dbID as Integer dbID (ローカルID) of the database.
例 Dim dbID as Integer Dim newSearch as Integer Dim dbType as Integer Dim dbCreatorID as Integer Dim onlyLatestVersion as Integer Dim dbCardNo as Integer Dim dbName as String onlyLatestVersion = 0 dbType = NSL.String4ToInt("libr") dbCreatorID = 0 newSearch = 1 dbID = 1 Do While dbID <> 0 dbID = NSL.GetNextDatabaseByTypeCreator(newSearch, _ dbType, dbCreatorID, onlyLatestVersion) If dbID <> 0 Then dbCardNo = NSL.DatabaseCardNo() dbName = NSL.DatabaseInfo(dbCardNo, dbID) End If newSearch = 0 Loop
dbCardNo = NSBSystemLib.DatabaseCardNo()GetNextDatabaseByTypeCreator()関数で直前に呼び出されたデータベースのカード番号を返します。
戻り値 dbCardNo as Integer
例 GetNextDatabaseByTypeCreator()関数の例を参照して下さい。
nbr = NSBSystemLib.NumDatabases(cardNo)指定されたカード番号上にあるデータベースの数を検索します。
このルーチンは、カード上のデータベースのディレクトリ情報を得るのに有用です。 GetDatabase()は、インデックス番号0〜(NumDatabases-1)までのデータベースIDを返します。 参照: GetDatabase()引数 cardNo as Integer
戻り値 nbr as Integer
例 Dim nbr as Integer Dim cardNo as Integer cardNo = 0 nbr = NSL.NumDatabases(cardNo)
nbr = NSBSystemLib.NumCards()この関数は、システム上のメモリーカードスロット数を返します。 全てのスロットが存在しなくてもかまいません。
戻り値 nbr as Integer
例 Dim nbr as Integer nbr = NSL.NumCards()
dbID = NSBSystemLib.GetDatabase(cardNo, index)指定されたカード番号とインデックスのデータベースIDを検索します。
参照: NumDatabases()引数 cardNo as Integer index as Integer
戻り値 dbID as Integer 0 = 無効
例 Dim nbr as Integer Dim dbID as Integer Dim cardNo as Integer Dim index as Integer Dim dbName as String cardNo = 0 nbr = NSL.NumDatabases(cardNo) index = 0 Do While index < nbr dbID = NSL.GetDatabase(cardNo, index) If dbID <> 0 Then dbName = NSL.DatabaseInfo(cardNo, dbID) End If index = index + 1 Loop
status = NSBSystemLib.SetDatabaseName(cardNo, dbID, dbName)指定されたデータベースの名前を変更します。
引数 cardNo as Integer dbID as Integer dbName as String
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbName as String cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbName = "oldNSBAlarmProxy5" status = NSL.SetDatabaseName(cardNo, dbID, dbName)
status = NSBSystemLib.SetDatabaseAttributes(cardNo, dbID, dbAttributes)指定されたデータベースのアトリビュート(属性)を変更します。
引数 cardNo as Integer dbID as Integer dbAttributes as Integer 属性は、ビットデータで表します。以下に、利用可能なビットマスク値を示します: Bit 0 (0x0001) - dmHdrAttrResDB Bit 1 (0x0002) - dmHdrAttrReadOnly Bit 2 (0x0004) - dmHdrAttrAppInfoDirty Bit 3 (0x0008) - dmHdrAttrBackup Bit 4 (0x0010) - dmhdrAttrOKToInstallNewer Bit 5 (0x0020) - dmHdrAttrResetAfterInstall Bit 6 (0x0040) - dmHdrAttrCopyPrevention Bit 7 (0x0080) - dmHdrAttrStream Bit 8 (0x0100) - dmHdrAttrHidden Bit 9 (0x0200) - hmHdrAttrLaunchableData Bit 15 (0x8000) - dmHdrAttrOpen
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbAttributes as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbAttributes = 2 status = NSL.SetDatabaseAttributes(cardNo, dbID, dbAttributes)
status = NSBSystemLib.SetDatabaseVersion(cardNo, dbID, dbVersion)指定されたデータベースのバージョン番号を変更します。
引数 cardNo as Integer dbID as Integer dbVersion as Integer
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbVersion as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbVersion = 6 status = NSL.SetDatabaseVersion(cardNo, dbID, dbVersion)
status = NSBSystemLib.SetDatabaseCreationDate(cardNo, dbID, dbCreationDate)指定されたデータベースの作成日付を変更します。
引数 cardNo as Integer dbID as Integer dbCreationDate as Integer
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbCreationDate as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbCreationDate = NSL.SystemTime("", "", 0, 0) status = NSL.SetDatabaseCreationDate(cardNo, dbID, _ dbCreationDate)
status = NSBSystemLib.SetDatabaseModificationDate(cardNo, dbID, dbModificationDate)指定されたデータベースの更新日付を変更します。
引数 cardNo as Integer dbID as Integer dbModificationDate as Integer
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbModificationDate as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbModificationDate = NSL.SystemTime("", "", 0, 0) status = NSL.SetDatabaseModificationDate(cardNo, dbID, _ dbModificationDate)
status = NSBSystemLib.SetDatabaseBackupDate(cardNo, dbID, dbBackupDate)指定されたデータベースのバックアップ日付を変更します。
引数 cardNo as Integer dbID as Integer dbBackupDate as Integer
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbBackupDate as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbBackupDate = NSL.SystemTime("", "", 0, 0) status = NSL.SetDatabaseModificationDate(cardNo, dbID, _ dbBackupDate)
status = NSBSystemLib.SetDatabaseModificationNumber(cardNo, dbID, dbModificationNumber)指定されたデータベースの更新レコード数を変更する時に使用します。
引数 cardNo as Integer dbID as Integer dbModificationNumber as Integer
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbModificationNumber as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbModificationNumber = 0 status = NSL.SetDatabaseModificationNumber(cardNo, dbID, _ dbModificationNumber)
status = NSBSystemLib.SetDatabaseAppInfoID(cardNo, dbID, dbAppInfoID)指定されたデータベースのアプリケーション情報ローカルIDを変更します。
引数 cardNo as Integer dbID as Integer dbAppInfoID as Integer
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbAppInfoID as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbAppInfoID = 0 status = NSL.SetDatabaseAppInfoID(cardNo, dbID, _ dbAppInfoID)
status = NSBSystemLib.SetDatabaseSortInfoID(cardNo, dbID, dbSortInfoID)指定されたデータベースのソートテーブル・ローカルIDを変更します。
引数 cardNo as Integer dbID as Integer dbSortInfoID as Integer
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbSortInfoID as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbSortInfoID = 0 status = NSL.SetDatabaseSortInfoID(cardNo, dbID, _ dbSortInfoID)
status = NSBSystemLib.SetDatabaseType(cardNo, dbID, dbType)指定されたデータベースのタイプを変更します。
引数 cardNo as Integer dbID as Integer dbType as Integer
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbType as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbType = String4ToInt("appl") status = NSL.SetDatabaseType(cardNo, dbID, dbType);
status = NSBSystemLib.SetDatabaseCreatorID(cardNo, dbID, dbCreatorID)指定されたデータベースのクリエータIDを変更します。
引数 cardNo as Integer dbID as Integer dbCreatorID as Integer
戻り値 status as Integer 0 = success(成功) 515 = dmErrInvalidParam(データベースエラー:不正な引数) 537 = dmErrAlreadyExists(データベースエラー:既に同名が存在) 538 = InvalidDatabaseName(不正なデータベース名)
例 Dim status as Integer Dim dbID as Integer Dim cardNo as Integer Dim dbCreatorID as Integer cardNo = 0 dbName = "NSBAlarmProxy5" dbID = NSL.FindDatabase(cardNo, dbName) dbCreatorID = String4ToInt("TEST") status = NSL.SetDatabaseCreatorID(cardNo, dbID, dbCreatorID);
eventType = NSBSystemLib.GetEvent(timeoutTicks, consumePenEvents, returnVirtualEvents)イベントがある場合(発生している場合)、そのシステムイベントタイプを返します。引数timeoutTicksを指定する事で、「ノン・ブロッキング」の遅延を実現できます。 timeoutTicksで指定する時間が経過する前にイベントが発生したら、イベントタイプと共に、ただちにこの関数は返されます。これは、アニメーションやゲームなどに有用な方法です。
この関数が、ボタンイベントの一部コードとして使用される場合、この関数を呼ぶ前に、ペンディングされているキーやペンのイベントをクリアしたいと思うでしょう。確かに、ボタンを押すことに起因する「ペン・アップ」イベントは、ただちにこの関数に戻り値を発生させます。これについては、FlushEvents()関数の例を参考にして下さい。引数 timeoutTicks as Integer この関数が返されるまでにシステム時計が何回刻む(tick数)かを指定します consumePenEvents as Integer 0 = ペン・イベントを消費しません 1 = ペン・イベントを消費します この関数は、PalmOSのEvtGetEvent()関数を呼び出します。 EvtGetEvent()関数は、イベントキューからイベントを取り去ります。 他の処理にこれらの取り除いたイベントを利用可能な状態にする為に、この共有ライブラリ関数は、 検知するイベントを再度キューに戻します。 これは描画などのペン・イベントに使う場合、望ましくないかもしれません。この場合、 consumePenEventsを1にセットすると、ペン・イベントは再度キューに戻らず、 ペン・データは利用可能なままになります。 returnVirtualEvents as Integer 0 = 仮想キー(主要)イベントを返しません 1 = 仮想キーイベントを返します。 仮想キーイベントは、PalmOSシステムか、サードパーティのシステムレベルで生じるイベントです。 これらのイベントは、低バッテリー警告や、バックライトの状態変更などのイベントを含みます。 多くの場合、仮想キーイベントは、返されます。 もし、これらが返される時、このライブラリのSysHandleEvent()関数をコールして、システムに 処理させることが賢明でしょう。
戻り値 eventType as Integer -1 = 指定するタイムアウトの時間内で何もイベントがない場合 0 = nilEvent(空イベント) 1 = penDownEven(ペンダウン・イベント)t 次の変数に、ペンの座標を参照できます: GlobalX(), and GlobalY() 2 = penUpEvent(ペンアップ・イベント) 次の変数に、ペンの座標を参照できます: GlobalX(), and GlobalY() 次の変数に、ペンのストローク座標を参照できます: GlobalStartX(), GlobalStartY(), GlobalEndX(), and GlobalEndY() 3 = penMoveEvent(ペン移動・イベント) 次の変数に、ペンの座標を参照できます: GlobalX(), and GlobalY() 4 = keyDownEvent(キーをダウンイベント) キー入力データを取得できます: KeyEventChr(), KeyEventKeyCode(), and KeyEventModifiers() 5 = winEnterEvent(ウィンドウ:Enter) 6 = winExitEvent(ウィンドウ:Exit) 7 = ctlEnterEvent(コントロール:Enter) 8 = ctlExitEvent(コントロール:Exit) 9 = ctlSelectEvent(コントロール:Select、ボタン関係が選択された時) 10 = ctlRepeatEvent(コントロール:Repeat) 11 = lstEnterEvent(リスト:Enter) 12 = lstSelectEvent(リスト:Select) 13 = lstExitEvent(リスト:Exit) 14 = popSelectEvent(ポップアップ:Select) 15 = fldEnterEvent(フィールド:Enter) 16 = fldHeightChangedEvent(フィールド:Height変更) 17 = fldChangedEvent(フィールド:変更) 18 = tblEnterEvent(テーブル:Enter) 19 = tblSelectEvent(テーブル:Select) 20 = daySelectEvent(ディ:Select) 21 = menuEvent(メニューイベント) 22 = appStopEvent(アプリケーション:Stop) 21 = frmOpenEvent(フォーム:Open) 22 = frmGotoEvent(フォーム:Goto) 23 = frmUpdateEvent(フォーム:Update) 24 = frmSaveEvent(フォーム:Save) 25 = frmCloseEvent(フォーム:Close) 26 = frmTitleEnterEvent(フォーム:TitleEnter) 27 = frmTitleSelectEvent(フォーム:TitleSelect) 28 = tblExitEvent(テーブル:Exit) 29 = sclEnterEvent(スクロール:Enter) 30 = sclExitEvent(スクロール:Exit) 31 = sclRepeatEvent(スクロール:Repeat) 35 = tsmConfirmEvent(日本語変換関連:確定) 36 = tsmFepButtonEvent(日本語変換関連:キー) 37 = tsmFepModeEvent(日本語変換関連:モード) 2048 = menuCmdBarOpenEvent(メニュー:コマンドバーOpen) 2049 = menuOpenEvent(メニュー:Open) 2050 = menuCloseEvent(メニュー:Close) 2051 = frmGadgetEnterEvent(フォーム:Gadget) 2052 = frmGadgetMiscEvent(フォーム:Gadget) 4096 = firstINetLibEvent(INetLib関連) 4352 = firstWebLibEvent(WebLib関連) 24576 = firstUserEvent(Userイベント)
例 Dim eventType as Integer Dim timeoutTicks as Integer NSL.FlushEvents() eventType = 0 Do While eventType <= 0 'do something eventType = NSL.GetEvent(timeoutTicks, 0, 0) Loop
NSBSystemLib.SysHandleEvent()直近のGetEvent()関数によって発生したイベントを消費します。 これは、EvtGetEvent()をコールし、次いでSysHandleEvent()を呼ぶことで実現します。
例 NSL.SysHandleEvent()
NSBSystemLib.FlushEvents()保留中のキーやボタンイベントをクリアします。 これは、PalmOSのEvtFlushKeyQueue()関数と、EvtFlushPenQueue()関数を呼ぶことで実現しています。 そして、その後、EvtGetEvent()およびSysHandleEventを()をコールすることで、残っている全てのイベントを空にします。
例 NSL.FlushEvents()
keyChr = NSBSystemLib.KeyEventChr()キーイベントの「Chr」データメンバーを返します。GetEvent()関数は、この関数のために、イベントタイプ4(keyDownEvent)を返しているでしょう。
戻り値 keyChr as Integer
例 Dim keyChr as Integer keyChr = NSL.KeyEventChr()
keyCode = NSBSystemLib.KeyEventKeyCode()キーイベントの「KeyCode」データメンバーを返します。 GetEvent()関数は、この関数のために、イベントタイプ4(keyDownEvent)を返しているでしょう。
戻り値 keyCode as Integer
例 Dim keyCode as Integer keyCode = NSL.KeyEventKeyCode()
modifiers = NSBSystemLib.KeyEventModifiers()キーイベントの「modifiers」データメンバーを返します。 GetEvent()関数は、この関数のために、イベントタイプ4(keyDownEvent)を返しているでしょう。
戻り値 modifiers as Integer
例 Dim modifiers as Integer modifiers = NSL.KeyEventModifiers()
NSBSystemLib.ControlHitControl objIDコントロールをタップをシミュレートします。これの関数は、イベントキューにctlSelectEventを追加します。
引数: objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
例 Dim objID as Integer objID = 1008 NSL.ControlHitControl objID
NSBSystemLib.FieldCopy objID現在選択されているテキストをクリップボードにコピーします。
引数: objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
例 Dim objID as Integer objID = 1008 NSL.FieldCopy objID
NSBSystemLib.FieldCut objID現在選択されているテキストをクリップボードにコピーし、その選択範囲を削除し、次いで、そのフィールドを再描画します。 要するに、カット、です。
引数: objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
例 Dim objID as Integer objID = 1008 NSL.FieldCut objID
NSBSystemLib.FieldInsert objID, insString現在、選択されている部分を、insStringに指定した文字列で置き換えて再描画します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 insString as String
例 Dim objID as Integer Dim insString as String objID = 1008 insString = "Insert This!" NSL.FieldInsert objID, insString
NSBSystemLib.FieldPaste objID現在、選択されている範囲を、クリップボード内のテキストで置き換えます。
引数: objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
例 Dim objID as Integer objID = 1008 NSL.FieldPaste objID
NSBSystemLib.FieldUndo objIDフィールドオブジェクトに加えられた直前の変更をアンドゥします。 これには、ペーストや、カットも含まれます。
引数: objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
例 Dim objID as Integer objID = 1008 NSL.FieldUndo objID
pos = NSBSystemLib.FieldGetInsPtPosition(objID)文字列の挿入ポイント位置を返します。
この関数が返す挿入ポイントは、文字列のバイト・オフセットの左側にあります。 つまり、例えば、戻り値が 0 の時、それは、先頭の文字の左側にあることになります。 複数行を持つフィールドの場合、行送りには、1つの文字を含んでいますので、次の行の始めは、行送りキャラクターの後になります。FieldSetInsertionPoint()と FieldSetInsPtPosition()を参照して下さい。引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 pos as Integer
例 Dim pos as Integer Dim objID as Integer objID = 1008 pos = NSL.FieldGetInsPtPosition(objID)
startPos = NSBSystemLib.FieldGetSelection(objID)フィールド内の選択されたテキストの開始位置と終了位置を返します。ただ、この関数は開始位置だけを返します。終了位置を取得するにはGlobalEndPos()関数を使用します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 startPos as Integer
例 Dim startPos as Integer Dim objID as Integer Dim endPos as Integer objID = 1008 startPos = NSL.FieldGetSelection(objID) endPos = NSL.GlobalEndPos()
dirty = NSBSystemLib.FieldAnyDirty()フォーム上にある1つ又は、それ以上のフィールド内の値が、最後にチェックした時から更新されていれば、1 を返します。
戻り値 dirty as Integer
例 Dim dirty as Integer dirty = NSL.FieldAnyDirty()
dirty = NSBSystemLib.FieldDirty(objID)フォーム上の指定したフィールドの値が変更されていれば、1を返します。
引数 objID as Integer 0 =現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 dirty as Integer
例 Dim dirty as Integer Dim objID as Integer objID = 1008 dirty = NSL.FieldDirty(objID)
NSBSystemLib.FieldSetDirty objID, dirty指定したフィールドに、印をセットします。あるフィールドの印が、最後にセットした時から変わっていたら、そのフィールドは、変更があったと見なして良いでしょう。(※訳者注:原文では印は、Dirty:汚れ、になっています)
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 dirty as Integer 0 = 印なし 1 = 印をする
例 Dim objID as Integer Dim dirty as Integer objID = 1008 dirty = 1 NSL.FieldSetDirty objID, dirty
NSBSystemLib.FieldSetAllDirty dirtyアクティブフォーム上の全フィールドに、印をセットします。
引数: dirty as Integer 0 = 印なし 1 = 印をする
例 Dim dirty as Integer NSL.FieldSetAllDirty dirty
NSBSystemLib.FieldSetSelection objID, startPos, endPosフィールド内に、startPos、endPosで指定された選択範囲をセットし、その範囲をハイライト表示します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 startPos as Integer endPos as Integer
例 Dim objID as Integer Dim startPos as Integer Dim endPos as Integer objID = 1008 NSL.FieldSetSelection objID, startPos, endPos
NSBSystemLib.FieldSetInsertionPoint objID, posposで指定された位置に、挿入ポイントをセットします。
このルーチンは、挿入位置を明示しない点がFieldldSetInsPtPositionと異なります。また、これは、フォーカスも移しません。FieldSetInsPtPosition() や FieldGetInsPtPosition()を参照して下さい。引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 pos as Integer
例 Dim objID as Integer Dim pos as Integer objID = 1008 NSL.FieldSetInsertionPoint objID, pos
NSBSystemLib.FieldSetInsPtPosition objID, posposで指定された位置に、挿入ポイントをセットします。
挿入ポイントが、可視位置を超えている場合、その場所までスクロールして、可視状態にします。FieldSetInsertionPoint() とFieldGetInsPtPosition()を参考にして下さい。引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 pos as Integer
例 Dim objID as Integer Dim pos as Integer objID = 1008 NSL.FieldSetInsPtPosition objID, pos
attributes = NSBSystemLib.FieldGetAttributes(objID)ビットイメージデータで、フィールドの属性を返します。BitsNbytes共有ライブラリは、ビット値の操作する機能を含んでいます。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 attributes as Integer ビットイメージデータは、次の意味を含みます: bit 0 - reserved(反転) bit 1 - numeric(数値) bit 2 - hasScrollBar(スクロールバーあり) bit 3 - autoShift(AutoShift True) bits 4 and 5 - justification(位置調整) 00 - leftAlign(左寄せ) 01 - centerAlign (中央寄せ:サポートされないかもしれない) 10 - rightAlign(右寄せ) bits 6 and 7 - underlined(下線) 00 - noUnderline(下線なし) 01 - grayUnderline(灰色アンダーライン) 10 - solidUnderline(実線アンダーライン) bit 8 - dirty(印) bit 9 - insPtVisible(挿入ポイント可視) bit 10 - dynamicSize(サイズ自動調整) bit 11 - hasFocus(フォーカス) bit 12 - singleLine(単一行) bit 13 - editable(編集可) bit 14 - visible(可視) bit 15 - usable(使用可)
例 Dim attributes as Integer Dim objID as Integer objID = 1008 attributes = NSL.FieldGetAttributes(objID)
NSBSystemLib.FieldSetAttributes objID, attributes指定したフィールドの属性をセットします。属性は、整数型のビットイメージデータで指定します。 BitsNbytes共有ライブラリは、ビット値の操作する機能を含んでいます。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 attributes as Integer ビットイメージデータは、次の意味を含みます: bit 0 - reserved(反転) bit 1 - numeric(数値) bit 2 - hasScrollBar(スクロールバーあり) bit 3 - autoShift(AutoShift True) bits 4 and 5 - justification(位置調整) 00 - leftAlign(左寄せ) 01 - centerAlign (中央寄せ:サポートされないかもしれない) 10 - rightAlign(右寄せ) bits 6 and 7 - underlined(下線) 00 - noUnderline(下線なし) 01 - grayUnderline(灰色アンダーライン) 10 - solidUnderline(実線アンダーライン) bit 8 - dirty(印) bit 9 - insPtVisible(挿入ポイント可視) bit 10 - dynamicSize(サイズ自動調整) bit 11 - hasFocus(フォーカス) bit 12 - singleLine(単一行) bit 13 - editable(編集可) bit 14 - visible(可視) bit 15 - usable(使用可)
例 Dim objID as Integer Dim attributes as Integer objID = 1008 NSL.FieldSetAttributes objID, attributes
fontId = NSBSystemLib.FieldGetFont(objID)フィールドのFontIDを返します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 fontId as Integer
例 Dim fontId as Integer Dim objID as Integer objID = 1008 fontId = NSL.FieldGetFont(objID)
NSBSystemLib.FieldSetFont objID, fontIdフィールドのFontIDを指定します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 fontId as Integer
例 Dim objID as Integer Dim fontId as Integer objID = 1008 fontId = 2 'large font NSL.FieldSetFont objID, fontId
position = NSBSystemLib.FieldGetScrollPosition(objID)フィールドのスクロール位置を返します。これは、可視行の先頭文字からのオフセット値になります。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 position as Integer
例 Dim position as Integer Dim objID as Integer objID = 1008 position = NSL.FieldGetScrollPosition(objID)
NSBSystemLib.FieldSetScrollPosition objID, positionフィールドのスクロール位置を設定します。これは、可視行の先頭文字からのオフセット値をセットします。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 position as Integer
例 Dim objID as Integer Dim position as Integer objID = 1008 position = 20 NSL.FieldSetScrollPosition objID, position
totalLines = NSBSystemLib.FieldGetScrollValues(objID)フィールドのスクロール値を返します。これらは、スクロールバーを更新するために必要な値です。この版数はスクロール位置(オフセット行番号)、テキスト高さ(画面にフィールドの文字列を表示するのに必要な行数)、及び、フィールド自体の高さを返します。この関数の戻り値は、テキスト高さ(行数の合計)のみ、返されます。 スクロール位置は、GlobalStartPos()関数を、フィールド高さは、GlobalHeight()関数を使ってください。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 totalLines as Integer
例 Dim totalLines as Integer Dim objID as Integer Dim position as Integer Dim height as Integer objID = 1008 totalLines = NSL.FieldGetScrollValues(objID) position = GlobalStartPos() height = GlobalHeight()
lines = NSBSystemLib.FieldGetVisibleLines(objID)フィールドの可視部分に表示できる行数を返します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 lines as Integer
例 Dim lines as Integer Dim objID as Integer objID = 1008 lines = NSL.FieldGetVisibleLines(objID)
lines = NSBSystemLib.FieldGetNumberOfBlankLines(objID)フィールド下部に表示される下線の本数を返します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 lines as Integer
例 Dim lines as Integer Dim objID as Integer objID = 1008 lines = NSL.FieldGetNumberOfBlankLines(objID)
yesNo = NSBSystemLib.FieldScrollable(objID, direction)フィールドが指定された方向にスクロールできる場合は、1を、そうでなければ 0 を返します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 direction as Integer 0 = up(上) 1 = down(下)
戻り値 yesNo as Integer
例 Dim yesNo as Integer Dim objID as Integer Dim direction as Integer objID = 1008 yesNo = NSL.FieldScrollable(objID, direction)
NSBSystemLib.FieldScrollField objID, nbrLines, directionnbrLinesで指定された行数だけ、フィールドを上又は下へスクロールさせます。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 nbrLines as Integer direction as Integer 0 = up(上) 1 = down(下)
例 Dim objID as Integer Dim nbrLines as Integer Dim direction as Integer objID = 1008 NSL.FieldScrollField objID, nbrLines, direction
NSBSystemLib.FieldSetBounds objID, topLeftX, topLeftY, width, heightフィールドの位置とサイズを変更します
ワード・ラップ情報を含むメモリブロックを変更する必要があり、十分なスペースが無い場合は、Fatal Errorを引き起こす可能性があります。Parameters objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 topLeftX as Integer topLeftY as Integer width as Integer height as Integer
例 Dim objID as Integer Dim topLeftX as Integer Dim topLeftY as Integer Dim width as Integer Dim height as Integer objID = 1008 NSL.FieldSetBounds objID, topLeftX, topLeftY, width, height
nbr = NSBSystemLib.FormGetNumberOfObjects()アクティブフォーム上のオブジェクト数を返します。
戻り値 nbr as Integer -1 アクティブなフォームがありません
例 Dim nbr as Integer nbr = NSL.FormGetNumberOfObjects()
x = NSBSystemLib.FormGetObjectBounds(objID)指定したフォーム上のオブジェクトの x, y, width,および heightを返します。
この関数では、x位置だけが返されます。グローバル変数の、GlobalY(), GlobalWidth(),及び GlobalHeight()を使って、その他の値を取得する必要があります。引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 x as Integer -1 フォーカスが無効なオブジェクトか、フォーカスを持っていないオブジェクトです
例 Dim x as Integer Dim objID as Integer Dim y as Integer Dim width as Integer Dim height as Integer objID = 1008 x = NSL.FormGetObjectBounds(objID) y = NSL.GlobalY() width = NSL.GlobalWidth() height = NSL.GlobalHeight()
x = NSBSystemLib.FormGetObjectPosition(objID)フォームオブジェクトのX及びY位置を返します。
この関数では、X位置しか返しません。グローバル変数のGlobalY()を使ってY位置を取得する必要があります。引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
Returns x as Integer -1 無効なオブジェクトか、フォーカスを持ったオブジェクトがありません
例 Dim x as Integer Dim objID as Integer Dim y as Integer objID = 1008 x = NSL.FormGetObjectPosition(objID) y = NSL.GlobalY
type = NSBSystemLib.FormGetObjectType(objID)指定されたオブジェクトの種類を返します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 type as Integer -1 無効なオブジェクトか、フォーカスを持ったオブジェクトがありません 0 = frmFieldObj(フィールド) 1 = frmControlObj(コントロール) 2 = frmListObj(リスト) 3 = frmTableObj(テーブル) 4 = frmBitmapObj(ビットマップ) 5 = frmLineObj(ライン) 6 = frmFrameObj(フレーム) 7 = frmRectangleObj(レクタングル) 8 = frmLabelObj(ラベル) 9 = frmTitleObj(タイトル) 10 = frmPopupObj(ポップアップ) 11 = frmGraffitiStateObj(Graffiti状態) 12 = frmGadgetObj(ガジェット) 13 = frmScrollbarObj(スクロールバー)
例 Dim type as Integer Dim objID as Integer objID = 1008 type = NSL.FormGetObjectType(objID) この関数は、全てのコントロールの種類に関する情報を提供しません。全てのオブジェクトの週類を 得るには、FormGetAllObjectTypes()関数を使います。
NSBSystemLib.FormSetObjectPosition objID, x, yx、yで指定された位置に、オブジェクトを移動します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 x as Integer y as Integer
例 Dim objID as Integer Dim x as Integer Dim y as Integer objID = 1008 x = 120 y = 40 NSL.FormSetObjectPosition objID, x, y
NSBSystemLib.FormSetObjectBounds objID, topLeftX, topLeftY, width, heightオブジェクトの、境界と位置を設定します。
引数 objID as Integer 0 = 現在、フォーカスがあるコントロールを対象にします objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。 topLeftX as Integer topLeftY as Integer width as Integer height as Integer
例 Dim objID as Integer Dim topLeftX as Integer Dim topLeftY as Integer Dim width as Integer Dim height as Integer objID = 1008 NSL.FormSetObjectBounds objID, topLeftX, topLeftY, width, height
title = NSBSystemLib.FormGetTitle()フォームの現在のタイトルを返します。
戻り値 title as String
例 Dim title as String title = NSL.FormGetTitle()
NSBSystemLib.FormReplaceTitle title, forceLength現在のフォームのタイトルをtitleで置き換えます。置き換えるタイトルの文字列長は、元のタイトルの長さを超えて指定することが出来ません。 forceLengthパラメーターが 0の場合、置き換えるタイトルは、現在のタイトル長さに自動的に切り詰められます。 もし、タイトル文字列の長さが変わってしまう場合、FormGetTitle()関数を使って変更前のタイトルを取得し、その長さを NS BasicのLen()関数で取得して、それをforceLengthの引数として使うべきです。
引数 title as String forceLength as Integer
例 Dim title as String Dim forceLength as Integer NSL.FormReplaceTitle title, forceLength
topItem = NSBSystemLib.ListGetTopItem(objID)指定されたリストボックスの先頭の番号を返します。
引数 objID as Integer
戻り値 topItem as Integer
例 Dim topItem as Integer Dim objID as Integer topItem = NSL.ListGetTopItem(objID)
NSBSystemLib.ListSetTopItem objID, topItem指定されたリストボックスの先頭の番号を指定します。それが、末尾になる場合は、先頭にはなりません。
引数 objID as Integer topItem as Integer
例 Dim objID as Integer Dim topItem as Integer NSL.ListSetTopItem objID, topItem
visibleItems = NSBSystemLib.ListGetVisibleItems(objID)指定されたリストボックスの可視部分の項目数を返します。
引数 objID as Integer
戻り値 visibleItems as Integer
例 Dim visibleItems as Integer Dim objID as Integer visibleItems = NSL.ListGetVisibleItems(objID)
result = NSBSystemLib.ListScrollList(objID, direction, nbrItems)指定された方向と項目数だけ、リストボックスをスクロールさせます。
引数 objID as Integer direction as Integer 0 = up(上) 1 = down(下) nbrItems as Integer
戻り値 result as Integer 0 = スクロールできないません 1 = スクロール成功
例 Dim result as Integer Dim objID as Integer Dim direction as Integer Dim nbrItems as Integer result = NSL.ListScrollList(objID, direction, nbrItems)
fontId = NSBSystemLib.FontGetFont()現在のカレントのフォントIDを返します。
戻り値 fontId as Integer
例 Dim fontId as Integer fontId = NSL.FontGetFont()
oldFontId = NSBSystemLib.FontSetFont(fontId)カレントフォントを設定します。
引数 fontId as Integer
戻り値 oldFontId as Integer
例 Dim oldFontId as Integer Dim fontId as Integer oldFontId = NSL.FontSetFont(fontId)
fontId = NSBSystemLib.FontSelect()3種類のシステムフォントのうち1つを選択できるようなダイアログを表示し、ユーザーが選択したFontIDを返します。
戻り値 fontId as Integer
例 Dim fontId as Integer fontId = NSL.FontSelect()
width = NSBSystemLib.FontCharWidth(charString)指定された文字の幅を返します。もし、指定された文字がカレントフォント内に見当らない場合、文字化けした記号が返されます。
引数 charString as String
戻り値 width as Integer
例 Dim width as Integer Dim charString as String width = NSL.FontCharWidth(charString)
width = NSBSystemLib.FontCharsWidth(charString, optionalLen)指定した文字列の幅を返します。カレントフォント内に指定した文字が見当らない場合は、文字化けした記号が返されます。
引数 charString as String optionalLen as Integer 0 = 実際の文字列の長さを使います
戻り値 width as Integer
例 Dim width as Integer Dim charString as String Dim optionalLen as Integer width = NSL.FontCharsWidth(charString, optionalLen)
offset = NSBSystemLib.FontWidthToOffset(charString, optionalLen, width)ピクセル位置を与えれば、その位置に表示された文字の位置を返します。もし、ピクセル位置が、文字の左端であれば、GlobalStartPos() は1を返します。 そうでない場合、0を返します。 GlobalWidth()は、返されたオフセットまでのテキストのピクセル幅を返します。
引数 charString as String optionalLen as Integer 0 = 実際の文字列の長さを使います width as Integer
戻り値 offset as Integer
例 Dim offset as Integer Dim charString as String Dim optionalLen as Integer Dim width as Integer offset = NSL.FontWidthToOffset(charString, optionalLen, width)
length = NSBSystemLib.FontCharsInWidth(charString, optionalLen, width)与えられた幅に適合する文字列長をバイト数で返します。グローバル変数のGlobalWidth()には、ピクセル数が返されます。
文字列の終端の空白は無視され削除されます。キャリッジリターンの後の文字は無視され、文字列は切り捨てられて扱われます。引数 charString as String optionalLen as Integer 0 = 実際の文字列の長さを使います width as Integer
戻り値 length as Integer
例 Dim length as Integer Dim charString as String Dim optionalLen as Integer Dim width as Integer length = NSL.FontCharsInWidth(charString, optionalLen, width)
length = NSBSystemLib.FontWordWrap(charString, width)与えら得た文字列が、指定された幅の中にどれだけのテキストが表示できるかバイト数を返します。
引数 charString as String width as Integer 0 = 実際の文字列の長さを使います
戻り値 length as Integer
例 Dim length as Integer Dim charString as String Dim width as Integer length = NSL.FontWordWrap(charString, width)
userName = NSBSystemLib.SyncUserName()HotSyncユーザー名前を返します。
戻り値 userName as String
例 Dim userName as String userName = NSL.SyncUserName()
syncDate = NSBSystemLib.SuccessfulSync()最後にHotSyncが成功した日付をシステム・フォーマットで返します。戻り値は、1904年1月1日からの経過秒として返されます。 StringDateTime()、StringDate()、又は、StringTime()を使ってシステム・フォーマットを文字列へ変換して使ってください。
戻り値 syncDate as Integer
例 Dim syncDate as Integer syncDate = NSL.SuccessfulSync()
syncDate = NSBSystemLib.LastSync()最後にHotSyncした日付をシステム・フォーマットで返します。戻り値は、1904年1月1日からの経過秒として返されます。 StringDateTime()、StringDate()、又は、StringTime()を使ってシステム・フォーマットを文字列へ変換して使ってください。
戻り値 syncDate as Integer
例 Dim syncDate as Integer syncDate = NSL.LastSync()
localNbrStr = NSBSystemLib.LocalizeNumber(stdNbrStr)与えられた文字列の数値形式を、標準/米国フォーマットから、システム設定で設定した地域情報にしたがったフォーマットへ変更します。
引数 stdNbrStr as String
戻り値 localNbrStr as String
例 Dim localNbrStr as String Dim stdNbrStr as String stdNbrStr = "4,123.56" localNbrStr = NSL.LocalizeNumber(stdNbrStr)
stdNbrStr = NSBSystemLib.DelocalizeNumber(localNbrStr)与えられた文字列の数値形式を、システム設定で設定した地域情報にしたがったフォーマットから、標準/米国フォーマットへ変更します。
引数 localNbrStr as String
戻り値 stdNbrStr as String
例 Dim stdNbrStr as String Dim localNbrStr as String locNbrStr = "4.123,56" stdNbrStr = NSL.DelocalizeNumber(localNbrStr)
localDateStr = NSBSystemLib.LocalizeDate(stdDateStr, ToDateFormat, longDateFormat)与えられた文字列の日付形式を、標準/米国フォーマットから、システム設定で設定した地域情報にしたがったフォーマットへ変更します。
引数 stdDateStr as String 日付文字列に、時刻情報を含んでも、時刻部分は無視されます。 ToDateFormat as Integer 0 = stdDateStrの書式を"MM/DD/YY[YY]"で指定します 1 = stdDateStrの書式を"[YY]YY/MM/DD"で指定します longDateFormat as Integer 0 = 短い日付書式を指定します 1 = 長い日付書式を指定します
戻り値 localDateStr as String(ローカライズされた日付文字列)
例 Dim localDateStr as String Dim stdDateStr as String Dim ToDateFormat as Integer Dim longDateFormat as Integer stdDateStr = DateMMDDYY(Today()) ToDateFormat = 0 longDateFormat = 0 localDateStr = NSL.LocalizeDate(stdDateStr, ToDateFormat, longDateFormat)
data = NSBSystemLib.GetAppPreferences(pgmName, prefId, saved)アプリケーション環境設定文字列を取得します。
現在、設定文字列は、250バイト以下に制限されています。引数 pgmName as String プログラム名 - これは要注意です prefId as Integer 環境設定ID saved as Integer 0 = 環境設定は、ハードリセットの後に保持されません 1 = 環境設定は、ハードリセットの後も保持されます
戻り値 data as String
例 Dim data as String Dim pgmName as String Dim prefId as Integer Dim saved as Integer pgmName = "SysLibTest" prefId = 1 saved = 0 data = NSL.GetAppPreferences(pgmName, prefId, saved)
status = NSBSystemLib.SetAppPreferences(pgmName, prefId, data, saved)アプリケーション設定文字列を設定します。
現在、設定文字列は、250バイト以下に制限されています。引数 pgmName as String プログラム名 - これは要注意です prefId as Integer 環境設定ID data as String saved as Integer 0 = 環境設定は、ハードリセットの後に保持されません 1 = 環境設定は、ハードリセットの後も保持されます
戻り値 status as Integer 0 = 成功 -1 = 無効なプログラム名を指定しました
例 Dim status as Integer Dim pgmName as String Dim prefId as Integer Dim data as String Dim saved as Integer pgmName = "SysLibTest" prefId = 1 data = "anything I want!" saved = 0 status = NSL.SetAppPreferences(pgmName, prefId, data, saved)
data = NSBSystemLib.GetSysPreference(prefID)システム環境設定値を取得します。
引数 prefID as Integer PalmOS SDKの Preferences.h の値を指定します: 0 = prefVersion 1 = prefCountry 2 = prefDateFormat 3 = prefLongDateFormat 4 = prefWeekStartDay 5 = prefTimeFormat 6 = prefNumberFormat 7 = prefAutoOffDuration 現在は、prefAutoOffDurationSecs が良く使われます (prefAutoOffDuration は分単位です) 8 = prefSysSoundLevelV20 9 = prefGameSoundLevelV20 10 = prefAlarmSoundLevelV20 11 = prefHidePrivateRecordsV33 12 = prefDeviceLocked 13 = prefLocalSyncRequiresPassword 14 = prefRemoteSyncRequiresPassword 15 = prefSysBatteryKind 16 = prefAllowEasterEggs 17 = prefMinutesWestOfGMT グリニッジ標準時 18 = prefDaylightSavings サマータイム 19 = prefRonamaticChar 20 = prefHard1CharAppCreator App creator for hard key #1 21 = prefHard2CharAppCreator 22 = prefHard3CharAppCreator 23 = prefHard4CharAppCreator 24 = prefCalcCharAppCreator 25 = prefHardCradleCharAppCreator 26 = prefLauncherAppCreator 27 = prefSysPrefFlags 28 = prefHardCradle2CharAppCreator 29 = prefAnimationLevel PalmOS 3.0から、次のものが追加されました: ------------------------------------------ 30 = prefSysSoundVolume 実際の振幅 − エラー音や、その他アラームやゲーム以外の音 31 = prefGameSoundVolume 32 = prefAlarmSoundVolume 33 = prefBeamReceive 使用しない−赤外通信の検索モードを持つ ExgLibControl を使う 34 = prefCalibrateDigitizerAtReset Trueは、ソフトリセット時に、ユーザーキャリブレーションを表示します 35 = prefSystemKeyboardID 優先されるキーボードリソースのID 36 = prefDefSerialPlugIn デフォルトのシリアルプラグインのcreator ID PalmOS 3.1からの拡張分: ------------------------- 37 = prefStayOnWhenPluggedIn 38 = prefStayLitWhenPluggedIn PalmOS 3.2からの拡張分: ------------------------- 39 = prefAntennaCharAppCreator App creator for antenna key PalmOS 3.3からの拡張分: ------------------------- 40 = prefMeasurementSystem English, Metric, etc. PalmOS 3.5からの拡張分: ------------------------- 41 = prefShowPrivateRecords returns privateRecordViewEnum 42 = prefAutoOffDurationSecs PalmOS 4.0からの拡張分: ------------------------- 43 = prefTimeZone G.M.T.からの相対時間。+は、G.M.T.の東, −は西t 44 = prefDaylightSavingAdjustment D.S.T.の調整(分)、標準的には、0か60 45 = prefAutoLockType Never, on poweroff, after preset delay or at preset time. 46 = prefAutoLockTime Auto lock preset time or delay. 47 = prefAutoLockTimeFlag 分か時間で 48 = prefLanguage 選択された言語(セットアップのFormats) 49 = prefLocale 国(セットアップのFormats) 50 = prefTimeZoneCountry タイムゾーン 51 = prefAttentionFlags User prefs for getting user's attention 52 = prefDefaultAppCreator Default application launched on reset.
戻り値 data as Integer
例 Dim data as Integer Dim prefID as Integer prefID = 7 'prefAutoOffDuration - in seconds data = NSL.GetSysPreference(prefID)
NSBSystemLib.SetSysPreference prefID, dataシステム環境設定値を設定します。
引数 prefID as Integer GetSysPreference()関数を参照 data as Integer
例 Dim prefID as Integer Dim data as Integer prefID = 7 'prefAutoOffDuration - in minutes data = 3 '3 minutes NSL.SetSysPreference prefID, data
NSBSystemLib.ProgressStartDialog titleプログレスダイアログをスタートさせます。これら関数は、長い時間を要する処理を実行している間、その経過状況をユーザーに伝える特別なアラート画面を表示します。
参照: ProgressStopDialog(), ProgressUpdateDialog()引数: title as String 20文字以内のダイアログのタイトル文字列
例 Dim title as String Dim message as String Dim stage as Integer Dim error as Integer Dim force as Integer Dim canceled as Integer Dim strValue as String Dim resolution as Integer Dim completeChar as String Dim incompleteChar as String Dim percent as Integer Dim count as Integer completeChar = "|" incompleteChar = "." resolution = 5 count = 100 title = "Progress Test..." NSL.ProgressStartDialog title Delay 1 error = 0 stage = 1 Do While stage <= count canceled = NSL.ProgressUserCancel() If canceled = 1 Then Exit Do End If percent = NSL.ProgressPercent(stage, count) strValue = NSL.ProgressPercentString(percent, resolution, _ completeChar, incompleteChar) Message = strValue + Chr(10) + Str(percent) _ + "% complete" + Chr(10) _ + "stage = " + Str(stage) NSL.ProgressUpdateDialog error, message stage = stage + 1 Delay 0.25 Loop force = 0 Delay 1 NSL.ProgressStopDialog(force)
NSBSystemLib.ProgressStopDialog forceプログレスダイアログをストップし、ダイアログボックスの表示を消します。
引数: force as Integer 0 = ただちに、ダイアログを終了しません。 1 = ただちに、ダイアログを終了します。 この引数は、ダイアログがエラーメッセージを表示する過程においてのみ、意味を持ちます。 もし、"force"に 0 がセットされていれば、ユーザーはダイアログを消すために「OK」ボタンを タップしなければなりません。
例 ProgressStartDialog() の例を見てください。
NSBSystemLib.ProgressUpdateDialog error, messageプログレスダイアログ上の表示メッセージを更新します。
引数 error as Integer 0 = エラーはありません 1 = エラー発生にします もし、"error"に 1 をセットした場合、ダイアログには、特別な指定されたメッセージが 表示され、"OK"ボタンを表示します。 message as String 表示するメッセージ。120文字以内で指定します。
例 ProgressStartDialog() の例を見てください。
canceled = NSBSystemLib.ProgressUserCancel()ユーザーが"Cancel"をタップした時、1 が返されます。 途中で中断しないか、してはならない処理を作るときには、この関数は使わないで下さい。 今のPalmOSでは、このボタンを非表示にしたり、無効の灰色表示にできませんので、"Cencel"ボタンは、 表示されています。しかし、実際は、何も動作しません。
戻り値 canceled as Integer
例 ProgressStartDialog() の例を見てください。
percent = NSBSystemLib.ProgressPercent(current, count)入力された値に対して、完了した値の割合(%)を計算します。 この関数は、実際は、プログレスマネージャAPIの一部機能ではありません。 これは、プログレスダイアログのメッセージに含むことができるように、割合を計算するのに便利な方法として提供しています。
引数 current as Integer 繰り返し処理ループ中の、現在の繰り返し数 count as Integer 100%完了する時の、繰り返し数
戻り値 percent as Integer
例 ProgressStartDialog() の例を見てください。
strValue = NSBSystemLib.ProgressPercentString(percent, resolution, completeChar, incompleteChar)進行中の「完了・未完了」の割合を表現するような文字列を返します。 この関数は、実際は、プログレスマネージャAPIの一部機能ではありません。 これは進行度合いを、■などのグラフィックキャラクタを使って表すための便利な関数として提供されます。 ここで返された文字列は、プログレスダイアログのメッセージの一部に使うことができます。
引数 percent as Integer Percent complete - 参照: ProgressPercent(). resolution as Integer パーセントのサイズを表す解像度(resolution) 解像度 1 は、100文字で処理が完了することを意味します。 1%変化する毎に、処理文字列に反映されます。 解像度 5 は、20文字で処理が完了することを意味します。 5%変化する毎に、処理文字列に反映されます。 処理文字列の長さは、(100 ÷ 解像度)で計算できます。 解像度は、以下のどれかである必要があります: 1, 2, 4, 5, 10, 20, 25, or 50 completeChar as String 進行した時に表示される文字列を指定します。 "|" を推奨します。 incompleteChar as String 未完了の処理を表す文字列を指定します。 "." を推奨します。 "completeChar"と"incompleteChar" は、同じピクセル幅の文字列であるべきです。 そうすることで、実際の進行状況を、正確に伝えることができます。
戻り値 strValue as String
例 ProgressStartDialog() の例を見てください。
intValue = NSBSystemLib.String4ToInt(fourByteString)4バイトの文字列の、整数値を返します。 この関数は、クリエータID、アプリケーションンタイプ、リソースタイプなどの値を計算する時などに有用です。
参照: IntToString4()引数 fourByteString as String
戻り値 intValue as Integer
例 Dim intValue as Integer Dim fourByteString as String fourByteString = "libr" intValue = NSL.String4ToInt(fourByteString)
fourByteString = NSBSystemLib.IntToString4(intValue)整数値から、4バイトの文字列を返します。これは、整数値から、クリエータIDやアプリケーションタイプや、リソースタイプなどを作るのに役立ちます。
参照: String4ToInt()引数 intValue as Integer
戻り値 fourByteString as String
例 Dim fourByteString as String Dim intValue as Integer intValue = 1818845810 '"libr" fourByteString = NSL.IntToString4(intValue)
item = NSBSystemLib.DelimitedItem(inputStr, delimiter, nbr)特定のデリミタ(分割文字)を含む文字列から、デリミタで分解した指定した位置の文字列を返します。
入力文字列は、250文字以下でなければなりません。Parameters inputStr as String デリミタを含む分割したい文字列 delimiter as String デリミタ(文字、または、文字列) nbr as Integer 返したい位置。これは、1 が先頭になります。
Returns item as String 取り出された文字列が返されます。指定された文字列がない場合、デリミタが返されます。
例 Dim item as String Dim inputStr as String Dim delimiter as String Dim nbr as Integer inputStr = "Joe;Mary;Jane" delimiter = ";" nbr = 2 'Returns the string "Mary" item = NSL.DelimitedItem(inputStr, delimiter, nbr)
fixedStr = NSBSystemLib.FixedWidthString(origStr, width, options)文字列を固定幅の文字列を返します。 これは、PopUpやListBoxなどの項目データとして、長さを揃えたデータを作りたい時に役立ちます。 指定するピクセル数に収まるよう、必要に応じて、幅広のスペース(chr(25))と通常のスペース(chr(32))が組み合わされます。 指定された幅を超える部分は、切り取られます。
NormalSpacedString()関数を使うと、通常のスペースの文字列に変換できます。引数 origStr as String 表示したい文字列 width as Integer 表示したい幅のピクセル数 options as Integer 0 = 左詰め 1 = 右詰め 2 = 左詰めで表示し、切り取られたことを「...」で表します 3 = 右詰めで表示し、切り取られたことを「...」で表します 4 = 中央合わせで表示し、切り取られたことを「...」で表します 5 = 中央合わせ
戻り値 fixedStr as String 調整された文字列
例 Dim fixedStr as String Dim origStr as String Dim width as Integer Dim options as Integer origStr = "This is a test" width = 80 options = 0 fixedStr = NSL.FixedWidthString(origStr, width, options)
normalStr = NSBSystemLib.NormalSpacedString(origStr)文字列に含まれる、広幅スペース(chr(25))を通常スペース(chr(32))へ置き換えます。
参照: FixedWidthString()引数 origStr as String
戻り値 normalStr as String
例 Dim normalStr as String Dim origStr as String normalStr = NSL.NormalSpacedString(origStr)
newTimeSelected = NSBSystemLib.SelectOneTime(defHour, defMinute, title)PalmOS関数のSelectOneTime()を呼び出し、ユーザーが、1つの時刻を選択できるようなダイアログを表示します。 この関数は、時間を選択すると、1 を返しますが、そうでなければ、0 を返します。 グローバル変数の、GlobalHour() と GlobalMinute() には、選択された時間が返されます。
引数 defHour as Integer デフォルトで選択しておく時刻(時間) defMinute as Integer デフォルトで選択しておく時刻(分) title as String
戻り値 newTimeSelected as Integer
例 Dim newTimeSelected as Integer Dim defHour as Integer Dim defMinute as Integer Dim title as String defHour = 10 defMinute = 30 title = "Some Title" newTimeSelected = NSL.SelectOneTime(defHour, defMinute, title) If newTimeSelected = 1 Then defHour = NSL.GlobalHour() defMinute = NSL.GlobalMinute() End If
newSysTime = NSBSystemLib.IncrementSystemTime(oldSysTime, hours, minutes, seconds)指定する時刻(oldSysTime)に、指定された時間、分、秒を加えたシステム時間を返します。(指定する時刻は、1904年1月1日からの経過秒です)
引数 oldSysTime as Integer 0 = 現在の時刻を使います hours as Integer minutes as Integer seconds as Integer
戻り値 newSysTime as Integer
例 Dim newSysTime as Integer Dim oldSysTime as Integer Dim hours as Integer Dim minutes as Integer Dim seconds as Integer oldSysTime = 0 hours = 0 minutes = 30 seconds = 0 'Add 30 minutes newSysTime = NSL.IncrementSystemTime(oldSysTime, hours, minutes, seconds)
sysTime = NSBSystemLib.SystemTime(strDate, strTime, seconds, ToDateFormat)システム時間(1904年1月1日からの経過秒)を返します。 対象となる日付と時間は、strDateとstrTimeの2つの文字列を指定します。 日付を表すstrDateには、日付と時間の両方の値を含んでも構いません。 もし、時刻strTimeがブランク("")の場合は、strDateに含まれる時刻が使われます。 また、両方ともブランクの場合、現在の日付と時間を使います。
参照: StringDateTime(), StringDate(), and StringTime()引数 strDate as String 日付の書式。詳細は、引数ToDateFormatを参照して下さい strTime as String "HH[:MM[:SS]][AM|PM|am|pm]"で表される時刻。 ("P"や"p"の文字列が含まれる場合、適当な"AM/PM"書式に調整されます) seconds as Integer 戻り値の時刻に加え、調整するための秒数。(マイナスの値も可) ToDateFormat as Integer 0 = 日付のフォーマットは "MM/DD/YYYY" か "MM/DD/YY" 1 = 日付のフォーマットは "YYYY/MM/DD" か "YY/MM/DD"
戻り値 sysTime as Integer 1904年1月1日からの経過秒
例 Dim sysTime as Integer Dim strDate as String Dim strTime as String Dim seconds as Integer Dim ToDateFormat as Integer strDate = "" strTime = "" Seconds = 5 ToDateFormat = 0 sysTime = NSL.SystemTime(strDate, strTime, seconds, ToDateFormat)
strDateTime = NSBSystemLib.StringDateTime(sysTime, ToDateFormat, ToTimeFormat, AMPMFormat)与えられたシステム時間(1904年1月1日からの経過秒)を、日付・時刻文字列に変換して返します。引数sysTimeに 0 を指定すると、現在の日付と時間が使われます。
参照: SystemTime(), StringDate(), and StringTime()引数 sysTime as Integer 1904年1月1日からの経過秒 ToDateFormat as Integer 戻り値の日付フォーマット: 0 = "MM/DD/YY" 1 = "YYYY/MM/DD" 2 = "MM/DD/YYYY" 3 = "YY/MM/DD" ToTimeFormat as Integer 戻り値の時刻フォーマット: 0 = "HH:MM" 1 = "HH:MM:SS" AMPMFormat as Integer 0 = AM/PM を付加しません。 1 = 時刻を調整し" AM" か " PM" を付加します。
戻り値 strDateTime as String
例 Dim strDateTime as String Dim sysTime as Integer Dim ToDateFormat as Integer Dim ToTimeFormat as Integer Dim AMPMFormat as Integer sysTime = SystemTime("", "", 0, 0) strDateTime = NSL.StringDateTime(sysTime, ToDateFormat, ToTimeFormat, AMPMFormat)
strDate = NSBSystemLib.StringDate(sysTime, ToDateFormat)与えられたシステム時間(1904年1月1日からの経過秒)を、日付文字列に変換して返します。日付のデータだけが返されます。引数sysTimeに 0 を指定すると、現在の日付と時間が使われます。
参照: SystemTime(), StringDateTime(), and StringTime()引数 sysTime as Integer 1904年1月1日からの経過秒 ToDateFormat as Integer 戻り値の日付フォーマット: 0 = "MM/DD/YY" 1 = "YYYY/MM/DD" 2 = "MM/DD/YYYY" 3 = "YY/MM/DD"t.
戻り値 strDate as String
例 Dim strDate as String Dim sysTime as Integer Dim ToDateFormat as Integer sysTime = SystemTime("", "", 0, 0) strDate = NSL.StringDate(sysTime, ToDateFormat)
strTime = NSBSystemLib.StringTime(sysTime, ToTimeFormat, AMPMFormat)与えられたシステム時間(1904年1月1日からの経過秒)を、時刻文字列に変換して返します。 時刻のデータだけが返されます。引数sysTimeに 0 を指定すると、現在の日付と時間が使われます。
参照: SystemTime(), StringDateTime(), and StringDate()引数 sysTime as Integer 1904年1月1日からの経過秒 ToTimeFormat as Integer 戻り値の時刻フォーマット: 0 = "HH:MM" 1 = "HH:MM:SS" AMPMFormat as Integer 0 = AM/PM を付加しません。 1 = 時刻を調整し" AM" か " PM" を付加します。
戻り値 strTime as String
例 Dim strTime as String Dim sysTime as Integer Dim ToTimeFormat as Integer Dim AMPMFormat as Integer sysTime = SystemTime("", "", 0, 0) strTime = NSL.StringTime(sysTime, ToTimeFormat, AMPMFormat)
NSBSystemLib.PostEvent eventNbrEvtAddEventToQueueをコールすることで、イベントをキューに入れます。このイベント番号は、24576〜32767のカスタムイベント番号です。
引数: eventNbr as Integer
例 Dim eventNbr as Integer eventNbr = 30000 NSL.PostEvent eventNbr
objID = NSBSystemLib.FormGetFocus()フォーカスを持っているオブジェクトのIDを返します。
戻り値 objID as Integer -1 :どのオブジェクトもフォーカスを持っていない
例 Dim objID as Integer objID = NSL.FormGetFocus()
txtLen = NSBSystemLib.FieldGetTextLength(objID)指定するIDのフィールド内に含まれる文字列の長さを返します。
引数 objID as Integer 0 : 現在、フォーカスを持っているフィールドを指定 objIDは"Object ID"か"Object Index"のどちらかになります。objIDの値が、 1からオブジェクト数の間であれば、objIDは"Object Index"としてみなさ れます。それ以外は"Object ID"としてみなされます。
戻り値 txtLen as Integer
例 Dim txtLen as Integer Dim objID as Integer objID = 1008 txtLen = NSL.FieldGetTextLength(objID)
nbr = NSBSystemLib.RandomNumber(seed, minNbr, maxNbr)最大値と最小値で指定した範囲の乱数を返します。
引数 seed as Integer 乱数のシード(種)。0 を指定すると、現在のシードを使います。 minNbr as Integer 最小値 >= 0 、maxNbrより小さい値 maxNbr as Integer 最大値 <= 32767、minNbrより大きな値
戻り値 nbr as Integer
例 Dim nbr as Integer Dim seed as Integer Dim minNbr as Integer Dim maxNbr as Integer minNbr = 1 maxNBR = 10 nbr = NSL.RandomNumber(seed, minNbr, maxNbr)
NSBSystemLib.ResetAutoOffTimer()AutoOffTimeをリセットします。長い繰り返し処理中で使い、オートパワーオフで、電源が切れることを防ぎます。
例 NSL.ResetAutoOffTimer()
oldSeconds = NSBSystemLib.SetAutoOffTime(newSeconds)オートパワーオフの時間(秒)をセットします。元の値に戻せるように、直前の設定値を戻り値として返します。
引数 newSeconds as Integer
戻り値 oldSeconds as Integer
例 Dim oldSeconds as Integer Dim newSeconds as Integer newSeconds = 600 '10 minutes oldSeconds = NSL.SetAutoOffTime(newSeconds)
verStr = NSBSystemLib.ProgramVersionString(cardNbr, pgmName)'tver'リソースを読み取ることで、プログラムのバージョン文字列を返します。もし、リソースが見当らない場合は、データベースのバージョンが返されます。
引数 cardNbr as Integer pgmName as String
戻り値 verStr as String
例 Dim verStr as String Dim cardNbr as Integer Dim pgmName as String cardNbr = 0 pgmName = "NSBSystemLib" verStr = NSL.ProgramVersionString(cardNbr, pgmName)
heapSize = NSBSystemLib.DynamicHeapSize()ダイナミック・ヒープサイズを変更します。
戻り値 heapSize as Integer
例 Dim heapSize as Integer heapSize = NSL.DynamicHeapSize()
freeSize = NSBSystemLib.DynamicHeapFree()ダイナミック・ヒープ中のフリーなバイト数を返します。
戻り値 freeSize as Integer
例 Dim freeSize as Integer freeSize = NSL.DynamicHeapFree()
maxChunkSize = NSBSystemLib.DynamicHeapMaxChunk()ダイナミック・ヒープ内の、最大のチャンクサイズを返します。
戻り値 maxChunkSize as Integer
例 Dim maxChunkSize as Integer maxChunkSize = NSL.DynamicHeapMaxChunk()
error = NSBSystemLib.SortInit(maxItems, itemType)SortQSortとSortInsertionSortの関数で使用されるソート配列を初期化します。 引数maxItemsは、ソート配列に並べ替え・追加されるアイテム数の最大数を返します。 この値は、正確でなくても構いませんが、実際に加えられたアイテム数以上の数である必要があります。 ソート配列によって使われるメモリを開放するためには、maxItemsに 0 をしていします。 新たにソート配列を初期化するか、プログラムの終了により、ライブラリが閉じられた場合、自動的に開放されます。
引数 maxItems as Integer ソート配列に加えられるアイテムの最大数 itemType as String ソートするデータのタイプ 有効なタイプは: "string"、 "integer"、 "double"
戻り値 error as Integer 0 = 正常終了 -1 = ダイナミックメモリーが不充分 -2 = 不正な引数itemTypeを指定
例 SortQSort() 及び SortInsertionSort() の両方を参照して下さい。
error = NSBSystemLib.SortAddString(strItem)文字列データをソート配列に追加します。
引数 strItem as String 追加する文字列データ
戻り値 error as Integer 0 = 正常終了 -1 = ダイナミックメモリー不足 -2 = ソート配列が初期化されていない -3 = ソート配列は、文字列型ではない -4 = ソート配列に用意されたアイテム数を超過した
例 SSortQSort() 及び SortInsertionSort() の両方を参照して下さい。
error = NSBSystemLib.SortAddInteger(intItem)ソート配列に整数(Integer)型のデータを追加します。
引数 intItem as Integer 追加する整数データ
戻り値 error as Integer 0 = 正常終了 -1 = ダイナミックメモリー不足 -2 = ソート配列が初期化されていない -3 = ソート配列は、整数(Integer)型ではない -4 = ソート配列に用意されたアイテム数を超過した
例 SSortQSort() 及び SortInsertionSort() の両方を参照して下さい。
error = NSBSystemLib.SortAddDouble(dblItem)ソート配列に実数(Double)型のデータを追加します。
引数 dblItem as Double 追加する実数データ
Returns error as Integer 0 = 正常終了 -1 = ダイナミックメモリー不足 -2 = ソート配列が初期化されていない -3 = ソート配列は、実数(Double)型ではない -4 = ソート配列に用意されたアイテム数を超過した
例 SSortQSort() 及び SortInsertionSort() の両方を参照して下さい。
strItem = NSBSystemLib.SortGetString(index)ソート配列から、指定した位置の文字データを取得する。
引数 index as Integer ソート配列中のデータのインデックスか添字。
戻り値 strItem as String
例 SSortQSort() 及び SortInsertionSort() の両方を参照して下さい。
intItem = NSBSystemLib.SortGetInteger(index)ソート配列から、指定した位置の整数データを取得する。
引数 index as Integer ソート配列中のデータのインデックスか添字。
戻り値 intItem as Integer
例 SSortQSort() 及び SortInsertionSort() の両方を参照して下さい。
dblItem = NSBSystemLib.SortGetDouble(index)ソート配列から、指定した位置の実数データを取得する。
引数 index as Integer ソート配列中のデータのインデックスか添字。
戻り値 dblItem as Double
例 SSortQSort() 及び SortInsertionSort() の両方を参照して下さい
numItems = NSBSystemLib.SortQSort(reverseSort, caselessSort)SortInit()で初期化され、SortAddString(),SortAddInteger(),SortAddDouble()などで、データを追加したソート配列に対して「クイックソート」を実行します。 これは、PalmOS APIのSysQSortをコールします。(SortInsertionSort()も同様です)
引数 reverseSort as Integer ソート順 0 = 昇順 1 = 降順 caselessSort as Integer 0 = 大文字/小文字を区別してソート 1 = 大文字/小文字を区別しないでソート
戻り値 numItems as Integer ソートしたアイテム数 ソート配列からアイテムを得るには、ふさわしい関数 (SortGetString(), SortGetInteger(), SortGetDouble())を使ってください。
例 Dim error as Integer Dim maxItems as Integer Dim itemType as String Dim numItems as Integer Dim reverseSort as Integer Dim caselessSort as Integer Dim i as Integer Dim tmpStr as String maxItems = 100 itemType = "string" error = NSL.SortInit(maxItems, itemType) If error <> 0 Then MsgBox "SortInit error = " + Str(error) Exit Sub End If For i = 1 to someNumber error = NSL.SortAddString(someStringArray(i)) If error <> 0 Then MsgBox "SortAddString error = " + Str(error) Exit Sub End If Next reverseSort = 0 'Sort from lowest to highest caselessSort = 1 'Case insensitive sort numItems = NSL.SortQSort(reverseSort, caselessSort) For i = 1 to numItems tmpStr = NSL.SortGetString(i) someStringArray(i) = tmpStr Next
numItems = NSBSystemLib.SortInsertionSort(reverseSort, caselessSort)SortInit()で初期化され、SortAddString(),SortAddInteger(),SortAddDouble()などで、データを追加したソート配列に対して「クイックソート」を実行します。 これは、PalmOS APIのSysInsertionSortをコールします。(SortQSort()も同様です) ここに、PalmOS SDK説明書が、どのようにSysQSort API を使うのか記述があります:
引数 reverseSort as Integer ソート順 0 = 昇順 1 = 降順 caselessSort as Integer 0 = 大文字/小文字を区別してソート 1 = 大文字/小文字を区別しないでソート
戻り値 numItems as Integer ソートしたアイテム数 ソート配列からアイテムを得るには、ふさわしい関数 (SortGetString(), SortGetInteger(), SortGetDouble())を使ってください。
例 Dim error as Integer Dim maxItems as Integer Dim itemType as String Dim numItems as Integer Dim reverseSort as Integer Dim caselessSort as Integer Dim i as Integer Dim tmpStr as String maxItems = 100 itemType = "string" error = NSL.SortInit(maxItems, itemType) If error <> 0 Then MsgBox "SortInit error = " + Str(error) Exit Sub End If For i = 1 to someNumber error = NSL.SortAddString(someStringArray(i)) If error <> 0 Then MsgBox "SortAddString error = " + Str(error) Exit Sub End If Next reverseSort = 0 'Sort from lowest to highest caselessSort = 1 'Case insensitive sort numItems = NSL.SortInsertionSort(reverseSort, caselessSort) For i = 1 to numItems tmpStr = NSL.SortGetString(i) someStringArray(i) = tmpStr Next
numItems = NSBSystemLib.ListQSort(objID, reverseSort, caselessSort)既存のリスト・オブジェクト中の項目に「クイックソート」を実行します。 このルーチンはPalmOS APIのSysQSortを使用します。ListInsertionSort機能も使用することができます。 クイックソートと挿入法のアルゴリズムの差を比較するためには、このライブラリのSortQSortとSortInsertionSortの記述を参照して下さい。
引数 objID as Integer リストオブジェクトのobjectID 0 を指定すると、フォーカスを持ったオブジェクトが対象になります。 reverseSort as Integer 0 = 昇順 1 = 降順 caselessSort as Integer 0 = 大文字/小文字を区別してソート 1 = 大文字/小文字を区別しないでソート
戻り値 numItems as Integer ソートしたアイテム数
例 Dim numItems as Integer Dim objID as Integer Dim reverseSort as Integer Dim caselessSort as Integer objID = 1008 reverseSort = 0 caselessSort = 0 numItems = NSL.ListQSort(objID, reverseSort, caselessSort)
numItems = NSBSystemLib.ListInsertionSort(objID, reverseSort, caselessSort)既存のリスト・オブジェクト中の項目に「インサージョンソート(挿入法)」を実行します。 このルーチンはPalmOS APIのSysInsertionSortを使用します。ListQSort機能も使用することができます。 クイックソートと挿入法のアルゴリズムの差を比較するためには、このライブラリのSortQSortとSortInsertionSortの記述を参照して下さい。
引数 objID as Integer リストオブジェクトのobjectID 0 を指定すると、フォーカスを持ったオブジェクトが対象になります。 reverseSort as Integer 0 = 昇順 1 = 降順 caselessSort as Integer 0 = 大文字/小文字を区別してソート 1 = 大文字/小文字を区別しないでソート
戻り値 numItems as Integer ソートしたアイテム数
例 Dim numItems as Integer Dim objID as Integer Dim reverseSort as Integer Dim caselessSort as Integer objID = 1008 reverseSort = 0 caselessSort = 0 numItems = NSL.ListInsertionSort(objID, reverseSort, caselessSort)
type = NSBSystemLib.FormGetAllObjectTypes(objID)指定されたオブジェクトの種類を返します。.
この関数は、個々のコントロールオブジェクトを明確に区別する点がFormGetObjectType()と 異なります。引数 objID as Integer 0 = 現在フォーカスを持っているオブジェクト objIDは、オブジェクトIDでもオブジェクトインデックスでもどちらでも 指定できます。 もし、objIDが1からフォーム上のオブジェクト数以下であれば、objIDは オブジェクトインデックスとして、それ以外は、オブジェクトIDとして 扱われます。
戻り値 type as Integer -1 無効なオブジェクトか、フォーカスを持っていない場合 0 = frmFieldObj 2 = frmListObj 3 = frmTableObj 4 = frmBitmapObj 5 = frmLineObj 6 = frmFrameObj 7 = frmRectangleObj 8 = frmLabelObj 9 = frmTitleObj 10 = frmPopupObj 11 = frmGraffitiStateObj 12 = frmGadgetObj 13 = frmScrollbarObj 100 = buttonCtl 101 = pushButtonCtl 102 = checkboxCtl 103 = popupTriggerCtl 104 = selectorTriggerCtl 105 = repeatingButtonCtl 106 = sliderCtl 107 = feedbackSliderCtl
例 Dim type as Integer Dim objID as Integer objID = 1008 type = NSL.FormGetAllObjectTypes(objID)
NSBSystemLib.FieldClearAll()フォーム上の全てのテキストをクリアします。
例 NSL.FieldClearAll()
obj = NSBSystemLib.ObjectWithPoint(x, y, returnType, searchOption)(x,y)で指定した位置の近隣にあるオブジェクトの情報を返します。
引数 x as Integer x 座標 y as Integer y 座標 returnType as Integer 0 = オブジェクトIDを返す 1 = オブジェクトインデックスを返す このインデックスは1からフォーム上のオブジェクト数の間の値を 返します。 これは、このインデックスをライブラリ中の他の関数でも使えるように、 PalmOSが扱うインデックスに1が加えられています。 したがって、SysTrap()などでAPIを使用する場合、この値から1を引いて 使う必要があります。 2 = オブジェクトのポインタを返す(Variant型) searchOption as Integer 0 = 使用可能で可視状態で編集が許可されているものだけを検索 1 = 使用可能で可視状態のものだけを検索 2 = 全てのものを検索
戻り値 obj as Integer オブジェクトIDか、インデックスかポインタ(指定した形式) -1 か NULLの場合は、オブジェクトが見つからない場合。
例 Dim obj as Integer Dim x as Integer Dim y as Integer Dim returnType as Integer Dim searchOption as Integer obj = NSL.ObjectWithPoint(x, y, returnType, searchOption)
result = NSBSystemLib.ANDInt(int1, int2)int1とint2の間のビットごとの論理積(AND)を返します。
引数 int1 as Integer int2 as Integer
戻り値 result as Integer
例 Dim result as Integer Dim int1 as Integer Dim int2 as Integer result = NSL.ANDInt(int1, int2)
result = NSBSystemLib.ORInt(int1, int2)int1とint2の間のビットごとの論理和(OR)を返します。
引数 int1 as Integer int2 as Integer
戻り値 result as Integer
例 Dim result as Integer Dim int1 as Integer Dim int2 as Integer result = NSL.ORInt(int1, int2)
result = NSBSystemLib.XORInt(int1, int2)int1とint2の間のビットごとの排他的論理和(XOR)を返します。
引数 int1 as Integer int2 as Integer
戻り値 result as Integer
例 Dim result as Integer Dim int1 as Integer Dim int2 as Integer result = NSL.XORInt(int1, int2)
result = NSBSystemLib.OnesComplement(intValue)引数に対して"1の補数"を返します。 これは、全てのビットを反転させた値になります。
引数 intValue as Integer
戻り値 result as Integer
例 Dim result as Integer Dim intValue as Integer result = NSL.OnesComplement(intValue)
result = NSBSystemLib.BitValue(intValue, bitNumber)指定されたビットの値を返します。 0なら0、1なら1が返ります。
引数 intValue as Integer bitNumber as Integer ビット番号は右が 0で、31までの数値です。
戻り値 result as Integer
例 Dim result as Integer Dim intValue as Integer Dim bitNumber as Integer result = NSL.BitValue(intValue, bitNumber)
result = NSBSystemLib.BitsValue(intValue, startBit, endBit)指定したビット番号間のビット値を返します。 これは、開始ビットと終了ビットの間を全て返します。 例えば、 BitsValue(intValue, 5, 7) とした場合、ビット番号5,6,7の値が返ります。
引数 intValue as Integer startBit as Integer ビット番号は右が 0で、31までの数値です。 endBit as Integer ビット番号は右が 0で、31までの数値です。
戻り値 result as Integer
例 Dim result as Integer Dim intValue as Integer Dim startBit as Integer Dim endBit as Integer result = NSL.BitsValue(intValue, startBit, endBit)
result = NSBSystemLib.SetBitValue(intValue, bitNumber, bitValue)指定したビット番号にビットをセットします。
引数 intValue as Integer bitNumber as Integer ビット番号は右が 0で、31までの数値です。 bitValue as Integer
戻り値 result as Integer
例 Dim result as Integer Dim intValue as Integer Dim bitNumber as Integer Dim bitValue as Integer result = NSL.SetBitValue(intValue, bitNumber, bitValue)
result = NSBSystemLib.SetBitsValue(intValue, bitsValue, startBit, endBit)指定したビット番号にビットをセットします。 これは、開始ビットと終了ビットを指定できます。 例えば、SetBitsValue(intValue, 1, 5, 7) とした場合、5,6,7番目のビットに値がセットされます。
引数 intValue as Integer bitsValue as Integer startBit as Integer ビット番号は右が 0で、31までの数値です。 endBit as Integer ビット番号は右が 0で、31までの数値です。
戻り値 result as Integer
例 Dim result as Integer Dim intValue as Integer Dim bitsValue as Integer Dim startBit as Integer Dim endBit as Integer result = NSL.SetBitsValue(intValue, bitsValue, startBit, endBit)
hexValue = NSBSystemLib.IntToHex(intValue, trimLeading)指定した整数値を16進表記の文字列に変換します。
引数 intValue as Integer trimLeading as Integer 0 = 結果の先頭が 0 の場合、これを排除しません 1 = 結果の先頭の 0 を排除します
戻り値 hexValue as String
例 Dim hexValue as String Dim intValue as Integer Dim trimLeading as Integer hexValue = NSL.IntToHex(intValue, trimLeading)
intValue = NSBSystemLib.HexToInt(hexValue)16進表記の文字列を整数値に変換します。
引数 hexValue as String
戻り値 intValue as Integer
例 Dim intValue as Integer Dim hexValue as String intValue = NSL.HexToInt(hexValue)
binValue = NSBSystemLib.IntToBin(intValue, trimLeading)指定した整数値を2進表記の文字列に変換します。
引数 intValue as Integer trimLeading as Integer 0 = 結果の先頭が 0 の場合、これを排除しません 1 = 結果の先頭の 0 を排除します
戻り値 binValue as String
例E Dim binValue as String Dim intValue as Integer Dim trimLeading as Integer binValue = NSL.IntToBin(intValue, trimLeading)
intValue = NSBSystemLib.BinToInt(binValue)2進表記の文字列を整数値に変換します。
引数 binValue as String
戻り値 intValue as Integer
例 Dim intValue as Integer Dim binValue as String intValue = NSL.BinToInt(binValue)
depths = NSBSystemLib.GetSupportedDepths()使っているPalmデバイスがサポートしているビットマップのビット深度情報を返します。
ビット操作については、共有ライブラリ「BitsNBytes」もしくはVer.2.0以降の 本ライブラリで関数として提供されます。戻り値 depths as Integer
例 Dim depths as Integer depths = NSL.GetSupportedDepths()
boolean = NSBSystemLib.DepthSupported(depth)指定したビット深度がサポートされていれば 1 を、そうでなければ 0 を返します。
引数 depth as Integer
戻り値 boolean as Integer
例 Dim boolean as Integer Dim depth as Integer depth = 4 boolean = NSL.DepthSupported(depth)
boolean = NSBSystemLib.ColorSupported()Palmデバイスがカラーをサポートしていれば 1 を、そうでなければ 0 を返します。
戻り値 boolean as Integer
例 Dim boolean as Integer boolean = NSL.ColorSupported()
NSBSystemLib.SetDepth depthスクリーンモードを指定したビット深度にセットします。
引数 depth as Integer
例 Dim depth as Integer depth = 4 NSL.SetDepth depth
NSBSystemLib.SetColor booleanスクリーンモードをカラーモードにします。
引数 boolean as Integer 1 = カラーモード 0 = 非カラーモード
例 Dim boolean as Integer boolean = 1 NSL.SetColor boolean
NSBSystemLib.SaveScreenMode()現在のスクリーンモード設定を保存します。 保存された値は、後述する「RestoreScreenMode」を呼ぶことで復元できます。 例えば、プログラム開始時にスクリーンモードを保存しておき、プログラム終了時に 復元するようにしておけば、プログラム中のいかなるモード変更も、デバイスの 設定に影響されなくなります。
例 NSL.SaveScreenMode()
NSBSystemLib.RestoreScreenMode()保存されているスクリーンモード設定を復元します。 この値は「SaveScreenMode」で保存された値です。
例 NSL.RestoreScreenMode()
depth = NSBSystemLib.CurrentDepth()現在のビット深度を返します。
戻り値 depth as Integer
例 Dim depth as Integer depth = NSL.CurrentDepth()
boolean = NSBSystemLib.CurrentColor()現在のカラー情報を返します。 戻り値が 1 の場合、カラーが表示できるモードにあります。 そうでない場合は 0 が返ります。
戻り値 boolean as Integer
例 Dim boolean as Integer boolean = NSL.CurrentColor()
NSBSystemLib.SetToDefaults()全てのスクリーンモード設定を初期値に戻します。
例 NSL.SetToDefaults()
depth = NSBSystemLib.DefaultDepth()ビット深度の初期値を返します。
戻り値 depth as Integer
例 Dim depth as Integer depth = NSL.DefaultDepth()
boolean = NSBSystemLib.DefaultColor()デフォルトのカラー情報を返します。 戻り値が 1 の場合、デフォルトでカラーモードが設定されています。 そうでない場合 0 が返されます。
戻り値 boolean as Integer
例 Dim boolean as Integer boolean = NSL.DefaultColor()
index = NSBSystemLib.GetTableEntryIndex(which)PalmOSの「UIColorGetTableEntryIndex」を呼び出します。 whichで指定したUIのカラーインデックスを返します。
この関数は、PalmOS 3.5以上でなければ動作しません。引数 which as Integer UIObjectFrame = 0, UIObjectFill = 1 UIObjectForeground = 2 UIObjectSelectedFill = 3 UIObjectSelectedForeground = 4 UIMenuFrame = 5 UIMenuFill = 6 UIMenuForeground = 7 UIMenuSelectedFill = 8 UIMenuSelectedForeground = 9 UIFieldBackground = 10 UIFieldText = 11 UIFieldTextLines = 12 UIFieldCaret = 13 UIFieldTextHighlightBackground = 14 UIFieldTextHighlightForeground = 15 UIFieldFepRawText = 16 UIFieldFepRawBackground = 17 UIFieldFepConvertedText = 18 UIFieldFepConvertedBackground = 19 UIFieldFepUnderline = 20 UIFormFrame = 21 UIFormFill = 22 UIDialogFrame = 23 UIDialogFill = 24 UIAlertFrame = 25 UIAlertFill = 26 UIOK = 27 UICaution = 28 UIWarning = 29
戻り値 index as Integer -1 = PalmOSのバージョンが3.5未満
例 Dim index as Integer Dim which as Integer which = 11 'UIFieldText index = NSL.GetTableEntryIndex(which)
index = NSBSystemLib.GetTableEntryRGB(which)PalmOSの「UIColorGetTableEntryRGB」を呼び出します。 whichで指定したUIのRGB値を返します。 RGB値は「RGBColorType」という構造で、以下のフィールドを含んでいます。
index, red, green, blue.この関数は、全ての値を含んだ戻り値を返しますが、実際に返されるのはindexという戻り値だけです。 赤、緑、青の値が欲しい場合は、この関数に続いてGetRGBRed, GetRGBGreen, and GetRGBBlueという 関数を使う必要があります。詳細は「例」を見てください。
この関数は、PalmOS 3.5以上でなければ動作しません。引数 which as Integer (GetTableEntryIndexのwhichと同じ)
戻り値 index as Integer -1 = PalmOSのバージョンが3.5未満
例 Dim index as Integer Dim which as Integer Dim red as Integer Dim green as Integer Dim blue as Integer which = 11 'UIFieldText index = NSL.GetTableEntryRGB(which) red = SL.GetRGBRed() green = SL.GetRGBGreen() blue = SL.GetRGBBlue()
index = NSBSystemLib.GetRGBIndex()RGB値は「RGBColorType」という構造で、以下のフィールドを含んでいます。
index, red, green, blue.この関数は、直前に実行された GetTableEntryRGB か IndexToRGB の結果の index を返します。
戻り値 index as Integer
例 Dim index as Integer index = NSL.GetRGBIndex()
red = NSBSystemLib.GetRGBRed()RGB値は「RGBColorType」という構造で、以下のフィールドを含んでいます。
index, red, green, blue.この関数は、直前に実行された GetTableEntryRGB か IndexToRGB の結果の red を返します。
戻り値 red as Integer
例 (GetTableEntryRGB か IndexToRGB を参照)
green = NSBSystemLib.GetRGBGreen()RGB値は「RGBColorType」という構造で、以下のフィールドを含んでいます。
index, red, green, blue.この関数は、直前に実行された GetTableEntryRGB か IndexToRGB の結果の green を返します。
戻り値 green as Integer
例 (GetTableEntryRGB か IndexToRGB を参照)
blue = NSBSystemLib.GetRGBBlue()RGB値は「RGBColorType」という構造で、以下のフィールドを含んでいます。
index, red, green, blue.この関数は、直前に実行された GetTableEntryRGB か IndexToRGB の結果の blue を返します。
戻り値 blue as Integer
例 (GetTableEntryRGB か IndexToRGB を参照)
NSBSystemLib.SetTableEntryIndex which, indexPalmOSの IndexToRGB をコールした後、UIColorSetTableEntry をコールします。 それによって、UIカラーリストの値が変更されます。
幾つかの変更点は、Redrawコマンドなどで再描画されるまで反映されません。 フォームの背景色(UIFormFill:22)なども、NextScreenコマンドでフォームが変更されるまで反映されません。 通常、NextScreenがコールされる前の、Startupコード内に記述した方が良いでしょう。引数 which as Integer (GetTableEntryIndexのwhichと同じ) index as Integer
例 Dim which as Integer Dim index as Integer NSL.SetTableEntryIndex which, index
NSBSystemLib.SetTableEntryRGB which, red, green, bluePalmOSの UIColorSetTableEntry をコールし、 UIカラーを変更します。
幾つかの変更点は、Redrawコマンドなどで再描画されるまで反映されません。 フォームの背景色(UIFormFill:22)なども、NextScreenコマンドでフォームが変更されるまで反映されません。 通常、NextScreenがコールされる前の、Startupコード内に記述した方が良いでしょう。.引数 which as Integer (GetTableEntryIndexのwhichと同じ) red as Integer green as Integer blue as Integer Red, Green, Blue は 0〜255の間の数値
例 Dim which as Integer Dim red as Integer Dim green as Integer Dim blue as Integer NSL.SetTableEntryRGB which, red, green, blue
NSBSystemLib.BrightnessAdjust()PalmOSの UIBrightnessAdjust をコールし「輝度調節」のダイアログを表示します。
この関数は、PalmOS 3.5以上でなければ動作しません。例 NSL.BrightnessAdjust()
NSBSystemLib.ContrastAdjust()PalmOSの UIContrastAdjust をコールし「コントラストの調整」ダイアログを表示します。
PalmOSのドキュメントでは、PalmVシリーズでのみ動作するとの記述があります。例 NSL.ContrastAdjust()
changed = NSBSystemLib.PickColorIndex(index, title)PalmOSの UIPickColor をコールし「カラーパレット」のダイアログを表示します。 ユーザーは、カラーインデックスのダイアログから色を選択することが出来ます。 選択したカラーindexおよび、RGB値を得る場合、GetRGBIndex, GetRGBRed, GetRGBGreen もしくは、GetRGBBlueを コールする必要があります。
この関数は、PalmOS 3.5以上でなければ動作しません。引数 index as Integer index初期値 title as String ダイアログのタイトル
戻り値 changed as Integer -1 = PalmOSのバージョンが3.5未満 0 = キャンセルか、初期値が選択された 1 = 初期値とは異なる色が選択された
例 Dim changed as Integer Dim index as Integer Dim title as String changed = NSL.PickColorIndex(index, title)
changed = NSBSystemLib.PickColorRGB(red, green, blue, title)PalmOSの UIPickColorRGB をコールし「カラーパレット」のダイアログを表示します。 ユーザーは、RGBダイアログから色を選択することが出来ます。 選択したカラーindexおよび、RGB値を得る場合、GetRGBIndex, GetRGBRed, GetRGBGreen もしくは、GetRGBBlueを コールする必要があります。
この関数は、PalmOS 3.5以上でなければ動作しません。引数 red as Integer green as Integer blue as Integer R,G,B(0-255)の初期値 title as String ダイアログのタイトル
戻り値 changed as Integer -1 = PalmOSのバージョンが3.5未満 0 = キャンセルか、初期値が選択された 1 = 初期値とは異なる色が選択された
例 Dim changed as Integer Dim red as Integer Dim green as Integer Dim blue as Integer Dim title as String changed = NSL.PickColorRGB(red, green, blue, title)
NSBSystemLib.IndexToRGB indexPalmOSのWinIndexToRGBをコールし、与えられたカラーインデックスに 最も近い有効なRGB値を返します。 RGB値は「RGBColorType」という構造で、以下のフィールドを含んでいます。
index, red, green, blue.実際のカラーインデックスやRGB値を得るには、この関数を実行後、 GetRGBIndex, GetRGBRed, GetRGBGreen、もしくは、GetRGBBlue を実行する必要があります。 詳しくは、例を参照してください。
この関数は、PalmOS 3.5以上でなければ動作しません。引数 index as Integer
例 Dim index as Integer NSL.IndexToRGB index
index = NSBSystemLib.RGBToIndex(red, green, blue)PalmOSのWinRGBToIndexをコールし、与えられたRGB値に近いカラーインデックスを返します。
この関数は、PalmOS 3.5以上でなければ動作しません。引数 red as Integer green as Integer blue as Integer Red, Green, Blue は 0〜255の間の数値
戻り値 index as Integer -1 = PalmOSのバージョンが3.5未満
例 Dim index as Integer Dim red as Integer Dim green as Integer Dim blue as Integer index = NSL.RGBToIndex(red, green, blue)
oldIndex = NSBSystemLib.SetForeColor(newIndex)PalmOSの WinSetForeColor をコールします。 前景色が、指定されたカラーインデックスの色にセットされ、以後の描画操作に反映されます。
フォームの表示が行われる時に、色の情報がリセットされデフォルトに設定が戻る場合があるようです。 これを回避するために、この関数はFormのAfter()セクションで実行するのが最適です。引数 newIndex as Integer
戻り値 oldIndex as Integer 直前の前景色のカラーインデックス -1 = PalmOSのバージョンが3.5未満
例 Dim oldIndex as Integer Dim newIndex as Integer oldIndex = NSL.SetForeColor(newIndex)
oldIndex = NSBSystemLib.SetBackColor(newIndex)PalmOSの WinSetBackColor をコールします。 背景色が、指定されたカラーインデックスの色にセットされ、以後の描画操作に反映されます。
フォームの表示が行われる時に、色の情報がリセットされデフォルトに設定が戻る場合があるようです。 これを回避するために、この関数はFormのAfter()セクションで実行するのが最適です。引数 newIndex as Integer
戻り値 oldIndex as Integer 直前の背景色のカラーインデックス -1 = PalmOSのバージョンが3.5未満
例 Dim oldIndex as Integer Dim newIndex as Integer oldIndex = NSL.SetBackColor(newIndex)
oldIndex = NSBSystemLib.SetTextColor(newIndex)PalmOSの WinSetTextColor をコールします。 テキスト色が、指定されたカラーインデックスの色にセットされ、以後の描画操作に反映されます。
フォームの表示が行われる時に、色の情報がリセットされデフォルトに設定が戻る場合があるようです。 これを回避するために、この関数はFormのAfter()セクションで実行するのが最適です。引数 newIndex as Integer
戻り値 oldIndex as Integer 直前のテキスト色のカラーインデックス -1 = PalmOSのバージョンが3.5未満
例 Dim oldIndex as Integer Dim newIndex as Integer oldIndex = NSL.SetTextColor(newIndex)
NSBSystemLib.DrawLine x1, y1, x2, y2PalmOSの WinDrawLine によって直線(x1,y1)-(x2,y2)を描画します。 前景色で指定されたカラーインデックスの色で描画されます。
この関数は、とりあえず揃えるために用意しました。実行結果は、組み込みコマンドの DrawLine と同じになります。引数 x1 as Integer y1 as Integer x2 as Integer y2 as Integer
例 Dim x1 as Integer Dim y1 as Integer Dim x2 as Integer Dim y2 as Integer NSL.DrawLine x1, y1, x2, y2
NSBSystemLib.DrawGrayLine x1, y1, x2, y2PalmOSの WinDrawGrayLine によって「グレイ」な直線(x1,y1)-(x2,y2)を描画します。 実際は、灰色で描画されるわけではなく、前景色と背景色を交互に繰り返して描画します。
引数 x1 as Integer y1 as Integer x2 as Integer y2 as Integer
例 Dim x1 as Integer Dim y1 as Integer Dim x2 as Integer Dim y2 as Integer NSL.DrawGrayLine x1, y1, x2, y2
NSBSystemLib.EraseLine x1, y1, x2, y2PalmOSの WinEraseLine によって直線(x1,y1)-(x2,y2)を消去します。 実際は、背景色で直線を描画することで「消去」としています。
引数 x1 as Integer y1 as Integer x2 as Integer y2 as Integer
例 Dim x1 as Integer Dim y1 as Integer Dim x2 as Integer Dim y2 as Integer NSL.EraseLine x1, y1, x2, y2
NSBSystemLib.InvertLine x1, y1, x2, y2PalmOSの WinInvertLine によって直線(x1,y1)-(x2,y2)を反転描画します。
引数 x1 as Integer y1 as Integer x2 as Integer y2 as Integer
例 Dim x1 as Integer Dim y1 as Integer Dim x2 as Integer Dim y2 as Integer NSL.InvertLine x1, y1, x2, y2
NSBSystemLib.DrawPixel x, yPalmOSの WinDrawPixel によって点(x,y)を前景色で描画します。
引数 x as Integer y as Integer
例 Dim x as Integer Dim y as Integer NSL.DrawPixel x, y
NSBSystemLib.ErasePixel x, yPalmOSの WinErasePixel によって点(x,y)を消去します。 実際は、背景色で描画することで消去としています。
引数 x as Integer y as Integer
例 Dim x as Integer Dim y as Integer NSL.ErasePixel x, y
NSBSystemLib.InvertPixel x, yPalmOSの WinInvertPixel によって点(x,y)を反転します。
引数 x as Integer y as Integer
例 Dim x as Integer Dim y as Integer NSL.InvertPixel x, y
index = NSBSystemLib.GetPixel(x, y)PalmOSの WinGetPixel によって点(x,y)のカラーインデックスを返します。
引数 x as Integer y as Integer
戻り値 index as Integer
例 Dim index as Integer Dim x as Integer Dim y as Integer index = NSL.GetPixel(x, y)
success = NSBSystemLib.ScreenLock(mode)PalmOSのWinScreenLockをコールします。
この関数は、PalmOS 3.5以上でなければ動作しません。引数 mode as Integer winLockCopy = 0 - 古いスクリーンを新しい描画先にコピーします winLockErase = 1 - スクリーンを白紙にする winLockDontCare = 2 - 何もしない
戻り値 success as Integer -1 = PalmOSのバージョンが3.5未満 1 = 成功 0 = 失敗
例 Dim success as Integer Dim mode as Integer success = NSL.ScreenLock(mode)
NSBSystemLib.ScreenUnlock()PalmOSの WinScreenUnlock をコールします。
この関数は、PalmOS 3.5以上でなければ動作しません。例 NSL.ScreenUnlock()
NSBSystemLib.WinSaveBits index, x, y, width, height位置(x,y)から横width、縦heightで指定された短形を index番号で指定されたエリアにコピーします。
引数 index as Integer x as Integer y as Integer width as Integer height as Integer
例 Dim index as Integer Dim x as Integer Dim y as Integer Dim width as Integer Dim height as Integer NSL.WinSaveBits index, x, y, width, height
NSBSystemLib.WinRestoreBits index, x, y
引数 index as Integer WinSaveBitsでコピーしたインデックス番号 x as Integer y as Integer
例 Dim index as Integer Dim x as Integer Dim y as Integer NSL.WinRestoreBits index, x, y
NSBSystemLib.SetSleepEvent eventNbrそのプログラムを実行中、デバイスの電源がOFFになったときに発生させるイベントをセットします。
See the GetSleepEvent(), SetWakeEvent(), and GetWakeEvent() functions.引数 eventNbr as Integer 0 の場合、どんなイベントも保存されません。
例 Dim eventNbr as Integer eventNbr = 30000 NSL.SetSleepEvent eventNbr
NSBSystemLib.SetWakeEvent eventNbrそのプログラムが実行中で、かつライブラリ使用中、デバイスの電源がオンになったときに発生させるイベントをセットします。
GetWakeEvent(), SetSleepEvent(), 及び GetSleepEvent() を参照してください。引数 eventNbr as Integer 0 の場合、どんなイベントも保存されません。
例 Dim eventNbr as Integer eventNbr = 30001 NSL.SetWakeEvent eventNbr
eventNbr = NSBSystemLib.GetSleepEvent()電源OFF(オートパワーオフか電源ボタン)によって発生させるイベント番号を返します。
SetSleepEvent(), SetWakeEvent(), 及び GetWakeEvent() を参照してください。戻り値 eventNbr as Integer
例 Dim eventNbr as Integer eventNbr = NSL.GetSleepEvent()
eventNbr = NSBSystemLib.GetWakeEvent()電源ON(そのプログラムが実行中で、かつライブラリ使用中)した時に発生させるイベント番号を返します。
GetWakeEvent(), SetSleepEvent(), 及び GetSleepEvent() を参照。戻り値 eventNbr as Integer
例 Dim eventNbr as Integer eventNbr = NSL.GetWakeEvent()
eventTime = NSBSystemLib.GetSleepEventTime()電源OFFイベントに設定されている時間を返します。
SetSleepEvent(), SetWakeEvent(), GetWakeEvent(), GetWakeEventTime(), StringDateTime(), StringDate(), 及び StringTime() を参照戻り値 eventTime as Integer システムフォーマットの時刻を返します。 これは、1904年1月1日からの経過秒を表します。
例 Dim eventTime as Integer eventTime = NSL.GetSleepEventTime()
eventTime = NSBSystemLib.GetWakeEventTime()電源ONイベントに設定されている時間を返します。
SetSleepEvent(), SetWakeEvent(), GetWakeEvent(), GetWakeEventTime(), StringDateTime(), StringDate(), 及び StringTime() を参照戻り値 eventTime as Integer システムフォーマットの時刻を返します。 これは、1904年1月1日からの経過秒を表します。
例 Dim eventTime as Integer eventTime = NSL.GetWakeEventTime()
Dim KeyStr As String Dim DecryptedStr As String Dim EncryptedStr As String Dim StrLen As IntegerC++ サンプル:
KeyStr = "secret" DecryptedStr = "The quick brown fox jumps over the lazy dog!" StrLen = EncryptData(KeyStr, DecryptedStr, EncryptedStr) DecryptedStr = "" StrLen = DecryptData(KeyStr, EncryptedStr, DecryptedStr)
char keyStr[25]; char decryptedStr[251]; char encryptedStr[251]; int len;
strcpy(keyStr, "secret"); strcpy(decryptedStr, "The quick brown fox jumps over the lazy dog!"); len = encryptData(keyStr, decryptedStr, encryptedStr); strcpy(decryptedStr, ""); len = decryptData(keyStr, encryptedStr, decryptedStr);
encryptedStr = NSBSystemLib.EncryptDESString(decryptedStr)指定した文字列(平文)を暗号化した値を返します。 指定する文字列は248文字以上にしてはいけません。 返される暗号化文字列は、元の平文よりも最長で9文字程度長くなります。
引数 decryptedStr as String
戻り値 encryptedStr as String
例 Dim encryptedStr as String Dim decryptedStr as String encryptedStr = NSL.EncryptDESString(decryptedStr)
decryptedStr = NSBSystemLib.DecryptDESString(encryptedStr)復号化した平文を返します。 指定する暗号文字列は、250文字未満の長さになります。
引数 encryptedStr as String
戻り値 decryptedStr as String
例 Dim decryptedStr as String Dim encryptedStr as String decryptedStr = NSL.DecryptDESString(encryptedStr)
NSBSystemLib.SetDESKey keyStrEncryptDESString() や DecryptDESString()を使う時の暗号/復号キーを確立させます。 このキーは、これらの関数を使う前にセットしなければなりません。一度セットしたら、プログラム終了時まで値は保持されます。
引数 keyStr as String
例 Dim keyStr as String NSL.SetDESKey keyStr