OS4.0以降のアプリをOS3.5に対応させるための変更点。

ウィンドウ境界の取得方法

OS4.0以降では、
RectangleType	bounds;
FrmPtr		frmP = FrmGetActiveForm ();

WinGetBounds (FrmGetWindowHandle(frmP), &bounds);
と書くところを、
WinGetDrawWindowBounds (&bounds);
とする必要がある。OS4.0以降でもこのまま使用可。

ウィンドウ境界の取得方法

RectangleType	bounds;

WinGetDrawWindowBounds (&bounds);
スモールフォントに対応するためには「tallCustomTableItem」にするが、OS3.5ではこれを指定するとエラーとなるため、OSで場合分けして「customTableItem」を指定するようにする。
ただし、行の高さを11pixels未満に出来ないため、PEG-N700CのようにOS3.5のハイレゾ機種では、スモールフォントで表示出来ても、テーブルの行の高さはスタンダードフォントと同じになってしまい、間が抜けることになる。 ちなみに、OS4.0以降では次のようにすることも出来るが、OS3.5ではエラーになる。
WinGetBounds (FrmGetWindowHandle(FrmGetActiveForm ()), &bounds);

Table Item Type

TblSetItemStyle (tableP, row, column, type);
のtypeの部分に、OS3.5以前では「tallCustomTableItem」を指定できない。
蛇足
  • customTableItem : テーブルに設定したフォントで、行の高さが決まる。
  • tallCustomTableItem : フォントに関わらず、行の高さを自由に指定できる。
    TblSetRowHeight (table, row, height)
  • OS5以降やハイレゾCLIEにおいて描画処理でスモールフォントを表示する場合、テーブルに設定したフォントと実際に表示されるフォントが違うため、「tallCustomTableItem」にしないと、必要以上に行間が開いてしまう。
  • OS5以降のCLIE や tsPatch を適用している場合は、テーブルにスモールフォントを直接設定できるため「customTableItem」でも問題無い。
  • PEG-N700CのようにOS3.5のハイレゾ機種では、スモールフォントで表示出来ても、テーブルに「tallCustomTableItem」を指定できないため、行の高さはスタンダードフォントと同じになってしまい、間が抜けることになる。この場合、文字を描画する座標を、テーブルの配列を無視して計算するしかなさそう。