|
|
Tech Note 14: 共通ライブラリ「NSBSystemLib」を使うJune 14, 2003Copyright 2003 NS BASIC Corporation |
はじめに
関数一覧及び、クイックリファレンス
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 n