DrDialogでは、全てのウィンドウがダイアログ・ウィンドウという事のようですが、そのスタイルは殆ど標準ウィンドウと同じものが使用可能です。複数のダイアログを含む場合の親子関係はIDで決まり、IDの最も若いものが親となります。
以下にマウスの右ボタンで表示されるポップアップメニューから指定できるデフォルトのスタイルを示します。ダイアログ・リソースのロード/メモリ割り振り指定
- Resource Memory Flags
Preload
ダイアログ・リソースを起動時に全てロードする。
Moveable
ダイアログ・リソースを必要に応じてメモリー内で移動する。
Discardable
不必要となったダイアログ・リソースを破棄する事をシステムに許可する。ダイアログ位置の基準点の指定
- Alignment
Window
ダイアログの位置指定を、所有者ウィンドウの原点からの相対位置とする。
Screen
ダイアログの位置指定を、画面の左上隅からの相対位置とする。
Mouse
ダイアログの位置指定を、ウィンドウ生成時のマウスポインターの位置からの相対位置とする。ダイアログの枠(ボーダー)の表示形式の指定
- Border
Dialog
標準ダイアログ形式のボーダーを表示。(立体表示)
Thin
細いボーダーを表示。(非立体形式表示)。
Sizing
サイズ変更可能形式のボーダーを表示。(立体表示)
None
ボーダー無し。(非立体表示)ダイアログに付加される基本的なコントロールの指定
- Optional Controls
Titlebar
タイトルバーを付加する。
Min button
最小化ボタンを付加する。
Max button
最大化ボタンを付加する。
System menu
システムメニューを付加する。
Vertical scroll bar
垂直スクロールバーを付加する。
Horizontal scroll bar
水平スクロールバーを付加する。ダイアログボックスのスタイルの指定
- Dialog Box Styles
Visible
ダイアログを作成と同時に可視状態に指定する。
Disabled
ダイアログを使用禁止状態に指定する。
Save bits
ダイアログの背面で隠れている部分の画面イメージを
保管する。
Sync paint
ダイアログの一部が無効になった場合、すぐに再描画
を行う。
System modal
ダイアログをシステム・モーダル形式に指定する。
No byte align
ダイアログ表示位置の最適化を行わない。
No move with owner
所有者が移動してもダイアログは移動しない。
DBCS status line
日本語入力用ステータスラインを付加する。
(WarpV4では意味無し)
ダイアログの動作は、何等かのイベントが発生した場合にそれぞれのイベントに対応したコードの実行という形で行われます。イベントに対してコードが指定されていない場合は、そのイベントに対しての動作は行われません。
以下にダイアログ・コントロールの取得可能なイベントを示します。
取得イベント Init プログラムの初期化時に発生。最も優先される。 Open ダイアログがオープンする際に発生。Initの後で実行される。 Exit ダイアログをクローズする際に発生。 Timer Timer関数によって指定された時間間隔で発生。 Move ダイアログを移動させた場合に発生。 Size ダイアログのサイズを変更した場合に発生。 Key キー操作を行った場合に発生。その際の取得可能データは以下の通り。
EventData.1 キーの名前
EventData.2 キーのクラス
EventData.3 シフトキー等のコンビネーションキーの名前
EventData.4 Altキーが押されていれば1、それ以外は0
EventData.5 Ctrlキーが押されていれば1、それ以外は0
EventData.6 Shiftキーが押されていれば1、それ以外は0ShowMenu マウスの右ボタンによるメニューの表示要求で発生 Notify 別のプログラムが本ダイアログに告知する事によって発生 GetFocus ダイアログが入力フォーカスを得た場合に発生 LoseFocus ダイアログが入力フォーカスを失った場合に発生 Any ダイアログでハンドリングされないイベントによって発生
各々のコントロールには、そのコントロールを操作する為の専用のファンクションが用意されています。以下にダイアログ・コントロールにて使用可能なファンクションを示します。
Open 新しいダイアログをオープンします。
rc = Dialog.Open( [alias][, registeredName] ["Modal" | "Nonmodal"] )
Modal:モーダル・ダイアログを指定します。
Nonmodal:非モーダル・ダイアログを指定します。Frame ダイアログのフレームサイズを取得します。
result = Dialog.Frame()Close ダイアログをクローズします。
rc = Dialog.Close()Timer タイマーをスタート/ストップします。
rc = Dialog.Timer( [interval] )Owner ダイアログのオーナーを取得/設定します。
oldOwner = Dialog.Owner( [newOwner] )Text タイトルバーのテキストを取得/設定します。
oldTitle = Dialog.Text( [newTitle] )Style ダイアログのスタイルマスクを取得/設定します。
oldStyle = Dialog.Style( [newStyle] )Font タイトルバーのフォントを取得/設定します。
oldFont = Dialog.Font( [newFont] )Color ダイアログのカラー属性を取得/設定します。
oldColor = Dialog.Color( [attribute [, newColor]] )
attribute(+:前景, -:背景, A:アクティブ, |:非アクティブ, H:ハイライト, D:ディセーブル, T:テキスト, M:メニュー, B:ボーダー)
Color("#index"か、"#red green blue"の形式が使用可能。RGBは0~255で指定)
- アクティブ・テキストの前景色を黒にする場合
oldColor = Dialog.Control.Color("AT+", "#0 0 0")ID ダイアログのウィンドウIDを取得します。
id = Dialog.ID()Position ダイアログの位置とサイズを取得/設定します。
result = Dialog.Position( [x [, y [, dx [, dy] ] ] ] )
x:X座標, y:Y座標, dx:幅, dy:高さVisible ダイアログの可視属性を取得/設定します。
oldState = Dialog.Visible( [newState] )
State(0:不可視,1:可視)Enabled ダイアログの活動状態を取得/設定します。
oldState = Dialog.Enabled( [newState] )
State(0:Disabled,1:Enabled)Hide ダイアログを非表示状態にします。
CALL Dialog.Hide ["Update" | "Noupdate"]
Update:直ちに非表示状態にします。(デフォルト)
Moupdate:非表示にはしませんが、Showコマンドが使われるまで更新を抑制します。Show ダイアログを表示状態にします。
CALL Dialog.ShowTop ダイアログを最前面に移動します。
CALL Dialog.TopBottom ダイアログを最背面に移動します。
CALL Dialog.BottomEnable ダイアログを活動状態にします。
CALL Dialog.EnableDisable ダイアログを非活動状態にします。
CALL Dialog.DisableFocus ダイアログに入力フォーカスを与えます。
CALL Dialog.FocusIsDefault ダイアログを現在のデフォルトにします。
CALL Dialog.IsDefault ["Object" | "Say"]
Object:ダイアログを現在のデフォルトにします。
Say:ダイアログをSAYコマンドの出力先に指定します。
Dialoghint:ダイアログを各ダイアログに定義されたヒントの出力先に指定します。
Controlhint:ダイアログを各コントロールに定義されたヒントの出力先にします。Controls 全てのコントロールのリストを取得します。
CALL Dialog.Controls [stem]Classes 全てのコントロール・クラスのリストを取得します。
CALL Dialog.Classes [stem]