☆Zaurus SZAB C言語《ファイル選択》

ファイルを一覧させて、その中から選択させる最も簡単な方法です。
SZAB付属のコントロールを使いますので、見栄えはかなり悪いです。

○はじめに

実は色々とサンプルがあるのですが、ソースの意味が良く分かりません。
どうやらザウルス専用の関数を駆使しなければならないようです。
単にファイルリストを表示するだけに、勉強したくはありませんよね?

ここでは、とにかく簡単にファイル一覧を表示して、その中から選択する方法を紹介します。
つぅか、この方法以外は理解できないんです(^^;

○方法はヘルプを見よう

方法は説明しません(ぉ)
なぜなら私もヘルプのコピペだからです(爆)

SZABメニューのヘルプ(H)→開発関連ヘルプ(D)→クラスライブラリリファレンス(L)
にて、クラスライブラリヘルプを表示して下さい。

目次のリスト・スクロールバーコントロールクラスの項の、ファイルリストクラス(READFILELIST)を見て下さい。
色々説明がされていますが、使用例だけで十分です。

○順番に設定してみよう

ヘルプがあるのですが、これは SZABプログラミングを十分理解している事を前提に書かれています。
ツールに慣れるつもりのない私のようなユーザーには、ちんぷんかんぷんです。
ヘルプを見ながら順番に設定していきましょう。

>文字列エディタで
> FileName1Str F0:*.*
> FileName2Str F0:TST1*.*
>と設定します。
これは、SZABメニューの、ツール(T)→文字列エディタ(S)にて SZAB文字列エディタを起動し、
リソースIDに FileName1Str、文字列に F0:*.*を定義すると言うことです。


>フォームエディタで
> <ファイルリスト>
> 部品名: READFILELIST00
> LEFT_X_PID: 60
> TOP_Y_PID: 60
> FILE_NAME_PID: *.*
> DRIVE_NAME_PID: F0:
> FILE_CALL_BACK_PID: READFILELIST00_CB func )
> (コールバック関数は後述)
これは、設置を行いたいフォームをダブルクリックして、フォームエディタを起動し、
左にあるクラス選択ツールバーの上から4つ目にあるリスト・スクロールバーコントロールをクリックし、READFILELISTを置いて下さい。
次に、置いた READFILELISTをクリックし、右下の部品プロパティ中に設定例の項目が並んでいますので、設定して下さい。
FILE_CALL_BACK_PIDは、今は無視して下さい。


><文字列セレクトボタン>
> 部品名: SELECTBUTTON_CHAR00
> BUTTON_NUM_PID: 2
> SELECT_BTN_TYPE_PID: AUTO_FRAME_DISP+SAME_BUTTON_SIZE+HORIZONTAL_BTN
> SELECTBTN_FRAME
> SELECTBTN_FRAME_X_PID: 60
> SELECTBTN_FRAME_Y_PID: 30
> SELECTBTN_FRAME_WIDTH_PID: 200
> SELECTBTN_FRAME_HEIGHT_PID: 20
> SELECTBTNDATA(1)
> 文字列データ: プロジェクトリソースのFileName1Str
> SELECTBTNDATA(2)
> 文字列データ: プロジェクトリソースのFileName2Str
これは結構複雑です。
フォームエディタの左にあるクラス選択ツールバーの一番上にあるボタンコントロールをクリックし、SELECTBUTTON_CHARを置いて下さい。
次に、置いた SELECTBUTTON_CHARをクリックし、右下の部品プロパティを見ると一見設定例の項目が無いように見えますが、右にあるスクロールバーで上の方に移動して下さい。


><クリックボタン>
> 部品名: CLICKBUTTON00
> アイコンデータ: ビルトインリソースのCloseIcn
直接ファイル一覧とは関係は無いのですが、終了ボタンも設置するように指示されています。
意味が分からない場合は、無視して良いでしょう。


>=== サンプルプログラム ===
問題となるのは、このサンプルプログラムをどこに書くか? です。

>void READFILELIST00FileSelect(AplForm,Message,FLMsg)
これは、フォームエディタの READFILELISTをクリックし、右下のイベントプロパティの FileSelectID内に記述します。

>void SELECTBUTTON_CHAR00BtnSelect(AplForm,Message,BtnMsg)
これは、フォームエディタの SELECTBUTTON_CHARをクリックし、右下のイベントプロパティの ButtonSelectID内に記述します。

>void CLICKBUTTON00BtnSelect(AplForm,Message,BtnMsg)
これは、終了ボタンのソースですので、必要であればボタンに記述して下さい。

○ドライブ選択の方法は?

以上でヘルプにある説明は終わりです。
ここですぐに疑問に思うことがあります「どうやってカードの中のファイルを一覧表示するのか?」です。
F0:*.*の意味がなぜ説明されていない? と激怒しました。

色々試したところ、以下の事が分かりました。
F0 : 本体内メモリー
C1 : コンパクトフラッシュカードスロット
C2 : SDカードスロット
です。
ただ、存在しないスロットのファイルを一覧しようとしてもエラーは出ませんので、適当にありそうなドライブ名を選択できるようにしておくと良いでしょう(汗)


トップメニュープログラマ専用Zaurus開発