予約フォームと予約管理
予約フォームには、休業日を考慮した宿泊期間、宿泊人数、到着時刻、そして場合によっては前回の訪問の評価が必要です。月カレンダーが MinDate、MaxRangeDays、無効な日を適用し、スピンエディットが人数を数え、時刻ピッカーが入力された時刻を受け付け、評価がフィードバックを集めます。すべて同じテーマで統一されます。BookingForm デモは、7 つのエディターとライブの概要表示で、ホテルの予約フォームを構築しています。
- カレンダーの範囲
- スピンエディット
- 評価
どのモニターでも同じ見た目で、ネイティブのエディットのように動作する 15 個のフォーム入力です。実際の予約ルールを備えたカレンダー、日付と時刻のピッカー、レンジスライダー、カラーピッカー、チップ、星評価、スピンエディット、ボタン、検索、マスクと通貨のエディット、複数列のルックアップ、メモに加え、設定用のトグルスイッチ、IP アドレスエディット、継続時間エディット、フォントピッカー、チェックリストボックス、デュアルリストボックス、タッチパネル用の NumPad とスクリーンキーボードを提供します。日付は自分の言語で入力でき、保存する前にフォーム全体を検証でき、1 つのプロパティでダークテーマに切り替えられ、エディターをデータセットにバインドできます。
日付、金額、コード、選択肢、タグを素早く入力でき、間違いにくくする 16 の機能です。
実際の業務フォームの項目をカバーする 15 個の入力コントロールで、いずれも VCL、FireMonkey、.NET で利用できます。
コントロール一覧
予約フォーム、設定ページ、フィルターでは、同じ入力が繰り返し求められます。カレンダー、日付や時刻のピッカー、スライダー、色、タグの一覧、星評価、単位付きの数値、マスクされたコード、価格、長い一覧からの選択、検索ボックス、コメントです。sgcEditors は、この 15 個すべてを一貫したファミリーとして提供します。各コントロールは、VCL と FireMonkey では同じ published プロパティとイベントで、WinForms、WPF、Avalonia では同じ名前で用意されているため、1 つのコントロールで学んだことが他のコントロールにも当てはまります。テーマ、アクセントカラー、キーボードの操作モデルも共通です。パレットの SGC Editors ページから配置するだけで、最初の実行から正しい見た目になります。
TsgcVCLMonthCalendar、TsgcVCLDatePicker、TsgcVCLTimePicker、TsgcVCLDateTimePickerTsgcVCLRangeSlider と TsgcVCLSpinEditTsgcVCLColorPicker、TsgcVCLTokenEdit、TsgcVCLRatingTsgcVCLButtonEdit、TsgcVCLSearchEdit、TsgcVCLMaskEdit、TsgcVCLCurrencyEdit、TsgcVCLLookupEdit、TsgcVCLMemoTsgcVCLCustomEditor を継承しています
コントロール一覧
ホテル、クリニック、レンタルの窓口では、どんな日付でも受け付けるわけではありません。月カレンダーは 1 つの日付を選択でき、SelectionMode を esmRange にすると日付の範囲を選択でき、MaxRangeDays でその範囲の長さに上限を設けられます。MinDate と MaxDate の外にある日、DisabledDates に挙げた日、週末などの DisabledWeekDays、OnIsDateDisabled ハンドラーが拒否した日は、取り消し線付きで描画され、選択できません。ISO 8601 の週番号と、月、年、10 年のビューにより、先の日付にも素早く移動できます。同じカレンダーが日付ピッカーのドロップダウンにも使われるため、日付を選ぶあらゆる場所でルールが適用されます。
SelectionMode: esmSingle または esmRangeMinDate、MaxDate、MaxRangeDaysDisabledDates、DisabledWeekDays、OnIsDateDisabledShowWeekNumbers で ISO 週番号を表示します
コントロール一覧 登録版のみ
価格、重量、距離のフィルターは、レール上の範囲として指定するのが最も分かりやすい方法です。レンジスライダーは、1 つのつまみで Min から Max の間の値を選び、RangeMode では 2 つのつまみで範囲を選びます。水平にも垂直にも配置できます。目盛り、ラベル、ドラッグ中のつまみの上に表示される値のヒントを描画し、レールをクリックすると最も近いつまみがそこに移動します。つまみが交差することはなく、Step で値がスナップし、MinRange で最小の間隔が保たれるため、フィルターが誤って空になることはありません。値とラベルは、小数点や桁区切りを含め、コントロールのロケールに従います。
Value と EndValue を持つ RangeModeMin、Max、Step、MinRangeTickInterval、ShowLabels、ShowValueTipLabelFormat または OnFormatLabelCommunity 版: つまみは 1 つだけ描画され編集できます。EndValue は保持されますが表示されません。
ヘルプのトピックを読む
コントロール一覧 登録版のみ
タグ、宛先、スキルは 1 行のテキストではなく、リストです。トークンエディットは、各エントリを削除ボタン付きのチップとして描画し、チップを折り返し、収まらない場合はスクロールします。区切り文字、Enter、Tab、フォーカスの喪失で、入力したテキストがチップになり、a, b, c を貼り付けると 3 つのチップになります。OnValidateToken で各エントリを正規化または拒否でき、AllowDuplicates、CaseSensitive、MaxTokens でルールを設定できます。Registered 版では、入力中にオートコンプリートのリストがエントリを提案します。AddToken、RemoveToken、Clear を使うと、レコードの読み込みや保存の際に、コードからリストを変更できます。
Tokens がチップを保持し、Delimiters が 1 つのチップの終わりを決めますOnValidateToken と InvalidTokens で各エントリを検証しますAutoCompleteItems と AutoCompleteMinChars を使いますOnTokenAdded と OnTokenRemoved で変更を通知しますCommunity 版: チップ、検証、上限は動作しますが、オートコンプリートのリストは開きません。
ヘルプのトピックを読むコントロール一覧 登録版のみ
テーマエディター、グラフの設定、ラベルのデザイナーには、固定のパレットだけでは足りません。カラーピッカーは、色見本のグリッド、彩度と明度の正方形、色相バー、アルファバー、プレビューと 16 進数のエディットを備えた行を重ねて配置し、Parts でどれを表示するかを選べます。16 進数のエディットは、#RGB、#RGBA、#RRGGBB、#RRGGBBAA を受け付けます。ピッカーは色相を色とは別に保持するため、グレーでも色相が保たれ、ドラッグ中に正方形が飛ぶことはありません。ブランドのパレットを色見本として定義しても、ユーザーは 1 クリックで完全なピッカーを使えます。
Parts には ecpSwatches、ecpHSV、ecpAlpha、ecpHex がありますSwatches と SwatchColumns を使いますSelectedColor は ARGB 値ですOnChangeComplete は、ユーザーがマウスを離したときに発生しますCommunity 版: 色見本と 16 進数のみで、HSV の正方形とアルファバーは描画されず、アルファは常に $FF です。
ヘルプのトピックを読むコントロール一覧
多くの項目では、テキストの横にボタンが必要です。ファイルの参照、ダイアログを開く、値のクリアなどです。ボタンエディットは、参照、ドロップダウン、検索、クリア、プラス、マイナス、テキスト、オーナードローのボタンをネイティブのエディットの両側に置け、ボタンごとに専用のショートカットがあり、スクリーンリーダーがすべてのボタンを名前で読み上げて押すことができます。検索エディットは、入力が止まって少し経つと、または Enter で即座に OnSearch を発生させ、以前の検索をドロップダウンの履歴として再び提示します。メモは、プレースホルダー、上限を設定できる文字数カウンター、MinLines と MaxLines の間で行数に追従する高さを備えた、テーマ対応の複数行エディターです。
TsgcVCLButtonEdit: Buttons と OnButtonClickTsgcVCLSearchEdit: SearchDelay、History、OnSearchTsgcVCLMemo: ShowCounter、MaxLength、AutoHeightコントロール一覧
電話番号、郵便番号、口座番号、価格には、決まった形式が必要です。マスクエディットは、Delphi の EditMask 構文または .NET の MaskedTextBox 構文の入力マスクを受け付けるため、同じマスクが Delphi と .NET のアプリケーションで同じように動作します。リテラルは固定され、各位置はその種類の文字だけを受け付け、Text はリテラルを含めても除いても値を返します。通貨エディットは、浮動小数点を使わずに正確な Currency の値(.NET では decimal)を保持します。フォーカスがないときはロケールの通貨形式をそのまま表示し、ユーザーが入力している間は、記号または ISO コード付きの桁区切りされた数値を表示します。MinValue、MaxValue、AllowNegative で金額を範囲内に保ちます。
EditMask と MaskSyntax: emxDelphi または emxDotNetIsComplete、EditText、SaveLiteralsValue、Decimals、CurrencyCode、SymbolModePositivePattern と NegativePatternコントロール一覧
顧客、製品、国は名前で選びますが、キーで保存されます。ルックアップエディットは、任意のヘッダー行を持つ複数列のドロップダウンを開き、入力に合わせて絞り込みます。エディットには表示列が表示され、KeyValue は国名の裏にある国コードのようなキーを保持します。行は Items(セルを | で区切った 1 行 1 レコード)から、またはサーバーで検索するための OnGetItems から取得し、どの行にも一致しないテキストの扱いは OnNotInList で決めます。.NET では、WinForms、WPF、Avalonia で ItemsSource、DisplayMember、ValueMember を通じて、任意のコレクションから行を取得することもできます。
Columns: Title、Width、AlignmentKeyColumn、DisplayColumn、KeyValueShowHeader、MatchMode、DropDownRowsItemsSource、SelectedValueコントロール一覧
設定ページやオプションパネルでは、機能のオンとオフを切り替えます。トグルスイッチはチェックボックスの現代的な形で、新しい状態へスライドする丸いつまみ付きの角丸トラック、両側どちらにも置ける任意のキャプション、必要に応じてトラック内に表示するオンとオフの文字で構成されます。独自に描画され、オンのときはテーマのアクセントカラーを使い、DPI に合わせて拡大縮小します。ユーザーによる変更はまず OnChanging を通るため、フォームのルールで拒否でき、OnChange はユーザーの操作でもコードでも、変更のたびに実行されます。
TsgcVCLToggleSwitch と TsgcFMXToggleSwitch、.NET では TsgcWinFormsToggleSwitch、TsgcWpfToggleSwitch、TsgcAvaloniaToggleSwitchChecked、Caption、CaptionPosition、OnText と OffText を使う ShowText、ReadOnly、AnimatedTrackOnColor、TrackOffColor、ThumbColor、またはテーマの色、さらにトラックの大きさを決める SwitchWidth と SwitchHeightOnChanging は Allow でユーザーによる変更を取り消し、OnChange は変更のたびに発生し、Toggle はユーザーと同じように状態を切り替えますChecked が既定で双方向にバインドされ、WinForms ではデータバインディング用に CheckedChanged が発生しますトグルスイッチは Community を含むすべてのエディションに入っています。
ヘルプのトピックを読むコントロール一覧
ネットワーク設定、機器のセットアップ、ファイアウォールのルールでは、アドレスの入力が求められます。IPv4 では、IP アドレスエディットはドット区切りの 4 つのオクテット欄を表示し、入力に合わせて次の欄へ移動するため、通常のエディットと同じ速さで入力でき、アドレスは常に正しい形式になります。255 を超える値は上限に丸められ、フォーカスが外れると空の欄は 0 になります。IPv6 では、16 進数の数字、コロン、ドットを受け付ける 1 つのテキスト欄になり、フォーカスが外れるとテキストを検証して RFC 5952 の正規形で書き込むため、2001:DB8:0:0:0:0:2:1 は 2001:db8::2:1 になります。
TsgcVCLIPAddressEdit と TsgcFMXIPAddressEdit、.NET では TsgcWinFormsIPAddressEdit、TsgcWpfIPAddressEdit、TsgcAvaloniaIPAddressEditMode で IPv4 か IPv6 を選び、Address が値で、Octets は IPv4 アドレスの 1 つの欄を読み取りまたは設定しますIsValid はアドレスが完全かどうかを返し、Required を指定すると、空または不完全なアドレスにテーマのエラー枠が表示されますOnChange は変更のたびに発生し、Clear はアドレスを空にし、スクリーンリーダーには Value パターンを持つエディットとして認識されますAddress が既定で双方向にバインドされ、WinForms ではデータバインディング用に AddressChanged が発生しますIP アドレスエディットは Community を含むすべてのエディションに入っています。
ヘルプのトピックを読むコントロール一覧
タイムアウト、間隔、実行時間は時刻ではなく継続時間です。継続時間エディットはこれを、日、時間、分、秒、ミリ秒のセグメントで表示し、ユーザーは 1 つのセグメントずつ、キー入力、矢印キー、マウスホイール、スピンボタンで編集します。ステップは次のセグメントに繰り上がるため、59 秒に 1 を足すと 1 分になり、表示される最上位のセグメントには上限がないため、日を表示しない場合は 50 時間が 50:00:00 と表示されます。
TsgcVCLTimeSpanEdit と TsgcFMXTimeSpanEdit、.NET では TsgcWinFormsTimeSpanEdit、TsgcWpfTimeSpanEdit、TsgcAvaloniaTimeSpanEditValue は Delphi ではミリ秒、.NET では TimeSpan で、Days、Hours、Minutes、Seconds、Milliseconds の各部分がありますSegments で表示するセグメントを選び、DisplayFormat で値を時計形式の 1.02:30:05.250 または単位付きの 1d 2h 30m 5s 250ms で表示しますMinValue と MaxValue で値を制限し、AllowNegative で先頭のマイナスを受け付け、Increment と ShowButtons でステップとスピンボタンを設定しますValue が既定で双方向にバインドされ、WinForms ではデータバインディング用に ValueChanged が発生します継続時間エディットは Community を含むすべてのエディションに入っています。
ヘルプのトピックを読むコントロール一覧
レポートデザイナー、ラベルエディター、設定ページでは、ユーザーが書体を選べるようにします。フォントピッカーはドロップダウンボタン付きのエディットで、一覧では各フォントファミリをそれぞれの書体で描画します。入力するとファミリが絞り込まれ、最近選んだファミリは区切り線の上に先頭から表示され、フィルターで等幅のファミリだけに絞り込めるため、コードエディターやターミナルに向いています。一覧はアプリケーションが設定するまでプラットフォームから取得されます。
TsgcVCLFontPicker と TsgcFMXFontPicker、.NET では TsgcWinFormsFontPicker、TsgcWpfFontPicker、TsgcAvaloniaFontPickerFontName が値、Fonts がファミリの一覧で、RefreshFonts はフォントをインストールした後に一覧を再読み込みしますShowPreview は各名前をそれぞれの書体で描画し、PreviewText は名前の後にサンプルテキストを追加しますRecentCount と RecentFonts は最近選んだファミリを保持し、アプリケーションが保存と再読み込みを行えますFontFilter は等幅のファミリだけを残し、Alt+下キーで一覧が開き、Enter またはクリックでファミリを選び、Escape で閉じますFontName が既定で双方向にバインドされますフォントピッカーは Community を含むすべてのエディションに入っています。
ヘルプのトピックを読むコントロール一覧
グリッドの列、レポートのフィルター、ライセンスのモジュールは、長い選択肢のリストです。チェックリストボックスはスクロールするリストで、各行にチェックボックスがあり、未チェック、チェック済み、グレーのいずれかになり、項目ごとに有効フラグを持ちます。任意で表示できるヘッダー行のすべて選択は、有効な項目をすべてチェックまたは解除し、任意で表示できるフィルターボックスは、入力したテキストを含まない行を、状態を変えずに非表示にします。表示範囲の行だけを描画するため、10000 項目のリストでも高速です。
TsgcVCLCheckListBox と TsgcFMXCheckListBox、.NET では TsgcWinFormsCheckListBox、TsgcWpfCheckListBox、TsgcAvaloniaCheckListBoxItems には項目ごとの Checked、State、ItemEnabled があり、3 つ目の状態には AllowGrayed を使いますShowCheckAll は 3 状態のすべて選択行を表示し、ShowFilter はフィルターボックスを表示しますCheckAll、UncheckAll、CheckedCount があり、ユーザーによる変更では OnChange の前に OnClickCheck が発生しますCheckedItems と CheckedIndices がバインディング用の読み取り専用リストで、ItemCheck イベントは Change の前に発生しますチェックリストボックスは Community を含むすべてのエディションに入っています。
ヘルプのトピックを読むコントロール一覧
レポートの列、グループのメンバー、プロセスのステップを選ぶには、項目を一方のリストから他方へ移動します。デュアルリストボックスは左に Available リスト、右に Selected リストを描画し、その間のボタンで選択した行またはすべての行を移動し、外側の上下ボタンで Selected リストを並べ替えます。ダブルクリックまたはドラッグで項目をもう一方のリストへ移動でき、Selected リスト内のドラッグで並べ替えられます。
TsgcVCLDualListBox と TsgcFMXDualListBox、.NET では TsgcWinFormsDualListBox、TsgcWpfDualListBox、TsgcAvaloniaDualListBoxAvailableItems と SelectedItems、AvailableCaption と SelectedCaption、ShowCaptions と ShowReorderButtonsSortAvailable は戻した項目を順序どおりに挿入し、ShowFilter は各リストの上にフィルターボックスを追加し、ReadOnly は選択を保持して移動を拒否しますMoveToSelected、MoveAllToSelected、MoveToAvailable、MoveAllToAvailable、MoveUp、MoveDown はボタンと同じ動作をしますOnMoving で項目をその場に残すことができ、OnChange は 1 回の操作につき 1 回発生しますSelectedItems が既定で双方向にバインドされ、WinForms では SelectedItemsChanged が発生しますデュアルリストボックスは Community を含むすべてのエディションに入っています。
ヘルプのトピックを読むキーボードユーザーのための素早い入力、保存前のすべての項目の検証、すべてのユーザーに合った言語、データセットへの直接のリンクを備えています。
入力、言語、データ
データ入力の担当者は、カレンダーをクリックして進むのではなく、日付を入力します。sgcEditors のすべてのテキストフィールドは、プラットフォームの本物のエディットコントロールなので、日本語、中国語、韓国語の IME 入力、クリップボード、元に戻す、コンテキストメニュー、スクリーンリーダーがすべて動作します。解析は柔軟です。スラッシュ、ハイフン、ドット、コロン、カンマ、スペースが区切りとして使え、ロケールの月名や曜日名が認識され、2 桁の年はピボットされます。上下キーでキャレット位置のセグメントを増減でき、読み取れないテキストは OnParseError を発生させます。
DisplayFormat では d、m、y、h、n、s のセグメントを使いますOnParseError で変則的な入力を受け入れるか拒否するかを決められますAllowEmpty と TextHint を使います入力、言語、データ
現場のタッチパネルにはキーボードがなく、システムのキーボードは画面の半分を覆ってしまいます。NumPad は、指や手袋でも押せる大きさのキーで数値を入力します。ドッキング型のパッドをフォームに置くとフォーカスのあるコントロールに書き込み、ドロップダウン型のパッドをコントロールに関連付けると、コントロールをタップしたときにその下にパッドが開きます。ターゲット側の変更は不要です。パッドはターゲットの範囲と小数桁数を読み取り、値をユーザーによる変更として書き込むので、ターゲットの丸め、限界値、OnChange は、ユーザーが入力したときと同じように動作します。
TsgcVCLNumPad はドッキング型、TsgcVCLNumPadPopup はドロップダウン型で、FireMonkey と .NET にもありますAssociate でターゲットを指定するか、パッドがフォーカスのあるコントロールに追従しますNumPad は、Community 版を含むすべてのエディションにあります。オペレーター画面向けの sgcUI HMI パックの一部です。
ヘルプのトピックを読む入力、言語、データ
キオスク、セルフサービス端末、オペレーターパネルには、数値だけでなく、名前、コード、メモの入力も必要です。スクリーンキーボードは、NumPad と同じ入力経路の上に作られたフルキーボードです。フォームにドッキングするとフォーカスのあるコントロールに書き込み、ドロップダウン型を関連付けると、エディットがフォーカスを受け取ったときにその下に開きます。キーボードはフォーカスを奪わないので、ターゲットのキャレットと選択範囲はそのまま保たれ、標準のエディット、メモ、sgcEditors のコントロールに変更は不要です。
TsgcVCLKeyboard はドッキング型、TsgcVCLKeyboardPopup はドロップダウン型で、FireMonkey にもあり、.NET では WinForms、WPF、Avalonia に対応しますAssociate でターゲットを指定するか、キーボードがフォーカスに追従します。AutoPopup、AutoPopupAll、PopupPosition、CloseOnEnter でドロップダウンを制御しますsgcKeyboardRegisterLayout による独自レイアウト、Layouts を順に切り替えるレイアウトキーOnKeyText は書き込み前にテキストを変更または取り消し、OnEnterKey は Enter の後に実行されますスクリーンキーボードは、Community 版を含むすべてのエディションにあります。オペレーター画面とキオスク向けの sgcUI HMI パックの一部です。
ヘルプのトピックを読む
入力、言語、データ
国際的なチームや多言語の製品では、すべてのユーザーにとって自然に読める日付が必要です。各コントロールは独自の FormatSettings を持ち、ユーザーのロケールから設定され、実行時に変更できるため、1 つのフォーム上の 2 つのコントロールが別のロケールを使うこともできます。カレンダーとピッカーは、日と月の名前、日付と時刻の書式、AM と PM の文字列、区切り文字をここから取得します。FirstDayOfWeek と WeekNumbering はロケールまたは任意の設定に従い、数値には適切な小数点と桁区切りが使われます。単位、ヒント、アクセシビリティ名は独自のプロパティのままなので、フォームの他の部分と一緒に翻訳できます。
FormatSettingsFirstDayOfWeek: efdLocale、または強制的な efdMondayWeekNumbering: 既定は ewnISO8601 ですTsgcEditorLocale
入力、言語、データ 登録版のみ
Delphi の業務フォームの多くは TDataSet 上に構築されており、すべてのエディターを手作業で配線するのは繰り返しの多い作業です。10 個のデータ対応コントロールは、DataSource と DataField を通じてフィールドに直接バインドされます。日付ピッカー、時刻ピッカー、スピンエディット、評価、2 つ目のつまみが EndDataField にバインドされるレンジスライダー、ボタンエディット、フィールドの EditMask を使うマスクエディット、通貨エディット、メモ、そして TDBLookupComboBox のように ListSource、KeyField、ListField を通じて 2 つ目のデータセットから複数列の一覧を埋めるルックアップエディットです。AllowEmpty がオンの場合、Null のフィールドは空として表示され、必須フィールドの空の値はバリデーターに報告されます。バインドには TsgcEditorFieldLink を使い、これは DB ユニットだけを使うため、FireMonkey 版でも LiveBindings は不要です。.NET では、WinForms のエディターが BindingSource、DataTable、DataView、List を使って DataSource、DataMember、DataField でフィールドにバインドされ、WPF と Avalonia の値プロパティは双方向にバインドされます。既存のフォームに配置するだけで、すでにあるデータセットのロジックは変更なしで動作し続けます。
TsgcVCLDBDatePicker、TsgcVCLDBTimePicker、TsgcVCLDBSpinEditTsgcVCLDBRating と TsgcVCLDBRangeSliderTsgcVCLDBButtonEdit、TsgcVCLDBMaskEdit、TsgcVCLDBCurrencyEdit、TsgcVCLDBMemo、TsgcVCLDBLookupEditDataSource、DataField、EndDataField。ルックアップの一覧は ListSource、KeyField、ListFieldDataSource、DataMember、DataField。WPF と Avalonia: 値のプロパティは双方向にバインドされます.NET の Community パッケージでは、WinForms のエディターに DataSource、DataMember、DataField がありません。WPF と Avalonia のバインディング、およびルックアップエディットの ItemsSource は、どちらのエディションでも動作します。
ヘルプのトピックを読む入力、言語、データ
フォームは、すべての項目が正しくなって初めて完成です。sgcUICore のバリデーターは、フォームのコントロールをルールに照らして検証します。必須、範囲、長さ、正規表現、メールアドレス、他の項目との比較、独自のコードです。Smart Paste と同じ方法でコントロールを見つけるため、sgcEditors のコントロールも、標準のエディット、メモ、コンボ、チェックボックス、ピッカーも同様に検証でき、VCL、FireMonkey、WinForms、WPF、Avalonia で動作します。マスクエディットは不完全な値を、ルックアップエディットは一覧にないテキストを、ルールなしで報告します。エラーは、テーマのエラー色の枠、メッセージをツールチップとして持つアイコン、任意の概要リストとして表示され、スクリーンリーダーは項目と一緒にメッセージを読み上げます。.NET では、バリデーターはデータ層のエラーも表示します。WinForms と WPF では IDataErrorInfo と INotifyDataErrorInfo、Avalonia ではデータ検証エラーです。
TsgcVCLValidator、TsgcFMXValidator、TsgcWinFormsValidator、TsgcWpfValidator、TsgcAvaloniaValidatoruvrRequired、uvrRange、uvrLength、uvrRegex、uvrEmail、uvrCompare、uvrCustomTrigger: 既定は uvtExit、uvtChange または uvtManual も選べます。保存する前に Validate を呼び出しますTsgcVCLValidationSummary はエラーを一覧表示し、クリックするとその項目にフォーカスしますCommunity 版を含むすべてのエディションで利用できます。正規表現は、Delphi 7 から 13 と .NET で同じテキストに一致します。
ヘルプのトピックを読む入力、言語、データ
レイアウトコントロールは、フォームのコントロールを sgcEditors も標準のコントロールも区別なく、グループ、タブ付きグループ、列に配置します。ラベルは 1 つの幅にそろい、ユーザーがドラッグできるスプリッターと右から左のレイアウトに対応し、SaveLayout は配置を JSON として保存します。データフォームはその上に作られています。TDataSet を指定するか、自作クラスのオブジェクトをバインドすると、フィールドごとに sgcEditors のコントロール 1 つ、各フィールドの検証規則、エラーの概要、レコードの閲覧、追加、編集、削除、登録を行うナビゲーターが作られます。Smart Paste は、メールの署名や住所ブロックのような貼り付けたテキストでレコード全体を埋め、埋めたフィールドに印を付けます。.NET では、WinForms、WPF、Avalonia のデータフォームが DataTable、リスト、またはオブジェクトを受け取ります。
TsgcVCLLayoutControl、TsgcFMXLayoutControl、SaveLayout と LoadLayoutTsgcVCLDataForm、TsgcFMXDataForm、TsgcWinFormsDataForm、TsgcWpfDataForm、TsgcAvaloniaDataFormFields:各フィールドのキャプション、種類、必須、制限、グループ、タブ、順序。クラスには BindObjectSmartPasteFromClipboard、SmartPasteUndo、ナビゲーターの Smart Paste ボタンレイアウトコントロールは Community 版を含むすべてのエディションに含まれます。Delphi の Community 版には sgcEditors のデザイン時パッケージがないため、そこではコードで作成します。データフォーム、その検証規則、その Smart Paste は Registered 版のみです。
ヘルプのトピックを読むレビューで確認される細部です。マウスが不要で、どのモニターでも鮮明で、アプリケーションに合った見た目になります。
キーボード、DPI、テーマ
150 パーセントのノートパソコンの隣に 100 パーセントの外部モニターを置く構成は今や普通のことで、ぼやけた入力コントロールは見劣りします。sgcEditors は、すべてのコントロールを 96 DPI の論理ピクセルでレイアウトし、画面のスケールで描画するため、コードで行うことは何もありません。VCL のフォームが別の DPI のモニターに移動すると、内部のエディットとそのフォントがコントロールに合わせてスケールされ、ドロップダウンは、開いたモニターの DPI で描画されます。FireMonkey のラスターは、Retina や Android に向けて、シーンのスケールに従います。
WM_DPICHANGED で再スケールされますSaveToPNG は scale を受け取り、鮮明な画像を出力します
キーボード、DPI、テーマ
sgcEditors には、マウスが必要な機能はありません。描画型のコントロールは自らフォーカスを受け取り、テキスト型のコントロールはフォーカスを内部のエディットに渡します。フォーカスされたコントロールには、アクセントカラーの 2 ピクセルのフォーカスリングが描画されます。カレンダーでは、矢印キーで 1 日または 1 週間ずつ移動して無効な日をスキップし、PageUp と PageDown で 1 か月ずつ移動し、Shift で範囲を拡張します。ピッカーでは、F4 または Alt+Down でドロップダウンを開き、Escape で値を元に戻します。スピンエディットは、上下キー、PageUp、PageDown で値を増減します。
Increment と LargeIncrement があります
キーボード、DPI、テーマ
すべての入力が同じテーマに従うと、フォームは完成度が高く見えます。各コントロールには Theme、AccentColor、TextStyle があり、枠、ホバー、押下状態、選択、無効状態の色はそこから導出されるため、1 つのプロパティで見た目全体が変わります。トークンはすべての sgcUI 製品が使うものと同じなので、sgcDashboard のタイルや sgcToolbar の下に配置したエディターも、追加の作業なしで調和します。無効なコントロールは、自動的に背景になじみます。実行時にテーマを切り替えると、すべてのエディターが再描画されるため、ダークモードの設定にそのまま使えます。
Theme: utDefault(既定、アプリケーションのテーマに従う)、utLight、または utDarkAccentColor を使いますTextStyle を使いますsgcUI スイートのデモに含まれる sgcEditors:組み込みのシミュレーションデータでオフラインで動作する完全なアプリケーションです。
顧客の連絡先カードにある評価と与信限度額のエディタ。
Altamira ERP →
日付と時刻のピッカーで、プロセストレンドの表示範囲を設定します。
Altamira Plant →
予約フォームには、休業日を考慮した宿泊期間、宿泊人数、到着時刻、そして場合によっては前回の訪問の評価が必要です。月カレンダーが MinDate、MaxRangeDays、無効な日を適用し、スピンエディットが人数を数え、時刻ピッカーが入力された時刻を受け付け、評価がフィードバックを集めます。すべて同じテーマで統一されます。BookingForm デモは、7 つのエディターとライブの概要表示で、ホテルの予約フォームを構築しています。
基幹業務アプリケーションでは、1 日中レコードを編集します。10 個のデータ対応エディターは、DataSource と DataField を通じて TDataSet のフィールドにバインドされ、レンジスライダーは両端をバインドし、Null のフィールドは空として表示されます。実際のキーボード入力と柔軟な解析を組み合わせることで、オペレーターは素早く値を入力でき、データセットにはクリーンなデータが渡されます。DataAware デモは、TClientDataSet 上の 10 個のエディターを、TDBGrid と TDBNavigator の隣に配置しています。
複数の国で使われる計画ツールは、すべてのユーザーに正しい週の開始日、週番号、月名を表示する必要があります。各コントロールが独自の FormatSettings を持つため、1 つのフォームにドイツ語のカレンダーと英語のカレンダーを並べて表示でき、FirstDayOfWeek と WeekNumbering はロケールまたは独自のルールに従います。Calendar デモは、14 日に制限した範囲で、英語、ドイツ語、スペイン語、フランス語、イタリア語を切り替えます。
The same API in Delphi, C++ Builder and C#: a rating, a range slider and a token edit, all reporting through OnChange.
uses
SysUtils, Classes, Controls, Forms, StdCtrls,
sgcEditors_Types, sgcEditors_VCL_Value, sgcEditors_VCL_Token;
type
TFeedbackForm = class(TComponent)
public
Stars: TsgcVCLRating;
Budget: TsgcVCLRangeSlider;
Tags: TsgcVCLTokenEdit;
Summary: TLabel;
procedure EditorChange(Sender: TObject);
end;
procedure TFeedbackForm.EditorChange(Sender: TObject);
begin
// OnChange fires for every new value: clicked, dragged or typed
Summary.Caption := Format('%.1f stars, budget %.0f to %.0f, %d tags',
[Stars.Value, Budget.Value, Budget.EndValue, Tags.Tokens.Count]);
end;
function CreateFeedbackForm(aForm: TForm): TFeedbackForm;
begin
Result := TFeedbackForm.Create(aForm);
Result.Stars := TsgcVCLRating.Create(aForm);
Result.Stars.Parent := aForm;
Result.Stars.SetBounds(16, 16, 200, 32);
Result.Stars.Glyph := ergHeart;
Result.Stars.Precision := erpHalf;
Result.Stars.Value := 3.5;
Result.Stars.OnChange := Result.EditorChange;
Result.Budget := TsgcVCLRangeSlider.Create(aForm);
Result.Budget.Parent := aForm;
Result.Budget.SetBounds(16, 60, 320, 48);
Result.Budget.Max := 500;
Result.Budget.Step := 10;
Result.Budget.RangeMode := True;
Result.Budget.Value := 80;
Result.Budget.EndValue := 240;
Result.Budget.ShowLabels := True;
Result.Budget.OnChange := Result.EditorChange;
Result.Tags := TsgcVCLTokenEdit.Create(aForm);
Result.Tags.Parent := aForm;
Result.Tags.SetBounds(16, 120, 320, 64);
Result.Tags.TextHint := 'Add a tag';
Result.Tags.AutoCompleteItems.CommaText := 'Breakfast,Parking,Pool';
Result.Tags.AddToken('Breakfast');
Result.Tags.OnChange := Result.EditorChange;
Result.Summary := TLabel.Create(aForm);
Result.Summary.Parent := aForm;
Result.Summary.SetBounds(16, 196, 320, 20);
Result.EditorChange(nil);
end;#include <vcl.h>
#include "sgcEditors_Types.hpp"
#include "sgcEditors_VCL_Value.hpp"
#include "sgcEditors_VCL_Token.hpp"
class TFeedbackHandler : public TObject
{
public:
TsgcVCLRating *Stars;
TsgcVCLRangeSlider *Budget;
TsgcVCLTokenEdit *Tags;
TLabel *Summary;
void __fastcall EditorChange(TObject *Sender);
};
void __fastcall TFeedbackHandler::EditorChange(TObject *Sender)
{
// OnChange fires for every new value: clicked, dragged or typed
Summary->Caption = FormatFloat("0.0", Stars->Value) + " stars, budget " +
FormatFloat("0", Budget->Value) + " to " + FormatFloat("0", Budget->EndValue) +
", " + IntToStr(Tags->Tokens->Count) + " tags";
}
TFeedbackHandler * __fastcall CreateFeedbackForm(TForm *Form)
{
TFeedbackHandler *H = new TFeedbackHandler();
H->Stars = new TsgcVCLRating(Form);
H->Stars->Parent = Form;
H->Stars->SetBounds(16, 16, 200, 32);
H->Stars->Glyph = ergHeart;
H->Stars->Precision = erpHalf;
H->Stars->Value = 3.5;
H->Stars->OnChange = H->EditorChange;
H->Budget = new TsgcVCLRangeSlider(Form);
H->Budget->Parent = Form;
H->Budget->SetBounds(16, 60, 320, 48);
H->Budget->Max = 500;
H->Budget->Step = 10;
H->Budget->RangeMode = true;
H->Budget->Value = 80;
H->Budget->EndValue = 240;
H->Budget->ShowLabels = true;
H->Budget->OnChange = H->EditorChange;
H->Tags = new TsgcVCLTokenEdit(Form);
H->Tags->Parent = Form;
H->Tags->SetBounds(16, 120, 320, 64);
H->Tags->TextHint = "Add a tag";
H->Tags->AutoCompleteItems->CommaText = "Breakfast,Parking,Pool";
H->Tags->AddToken("Breakfast");
H->Tags->OnChange = H->EditorChange;
H->Summary = new TLabel(Form);
H->Summary->Parent = Form;
H->Summary->SetBounds(16, 196, 320, 20);
H->EditorChange(NULL);
return H;
}using System;
using System.Drawing;
using System.Windows.Forms;
using esegece.sgcUICore;
using esegece.sgcEditors;
public class FeedbackForm : Form
{
private readonly TsgcWinFormsRating stars;
private readonly TsgcWinFormsRangeSlider budget;
private readonly TsgcWinFormsTokenEdit tags;
private readonly Label summary = new Label { Location = new Point(12, 196), Size = new Size(320, 20) };
public FeedbackForm()
{
ClientSize = new Size(360, 230);
stars = new TsgcWinFormsRating { Location = new Point(12, 12), Size = new Size(200, 32) };
stars.Glyph = TsgcEditorRatingGlyph.ergHeart;
stars.Precision = TsgcEditorRatingPrecision.erpHalf;
stars.Value = 3.5;
budget = new TsgcWinFormsRangeSlider { Location = new Point(12, 56), Size = new Size(320, 48) };
budget.BeginInit();
budget.Max = 500;
budget.Step = 10;
budget.RangeMode = true;
budget.Value = 80;
budget.EndValue = 240;
budget.EndInit();
budget.ShowLabels = true;
tags = new TsgcWinFormsTokenEdit { Location = new Point(12, 116), Size = new Size(320, 64) };
tags.TextHint = "Add a tag";
foreach (string s in new[] { "Breakfast", "Parking", "Pool" })
tags.AutoCompleteItems.Add(s);
tags.Tokens.Add("Breakfast");
// OnChange fires for every new value: clicked, dragged or typed
foreach (TsgcWinFormsCustomEditor e in new TsgcWinFormsCustomEditor[] { stars, budget, tags })
{
e.OnChange = s => ShowSummary();
Controls.Add(e);
}
Controls.Add(summary);
ShowSummary();
}
private void ShowSummary() =>
summary.Text = $"{stars.Value:0.0} stars, budget {budget.Value:0} to {budget.EndValue:0}, {tags.Tokens.Count} tags";
}dotnet add package esegece.sgcEditors.WinFormssgcUICore のバリデーターで検証する、ルックアップエディット、マスクエディット、通貨エディットです。ユーザーが保存するときに Validate を呼び出すと、すべてのエラーが表示され、最初の無効な項目にフォーカスが移ります。
function CreateOrderValidator(aForm: TForm; aCountry: TsgcVCLLookupEdit;
aPhone: TsgcVCLMaskEdit; aPrice: TsgcVCLCurrencyEdit): TsgcVCLValidator;
var
oRule: TsgcVCLValidationRule;
begin
// cells: key | name, the edit shows the name and KeyValue keeps the code
aCountry.Items.Add('ES|Spain');
aCountry.Items.Add('FR|France');
aCountry.Items.Add('DE|Germany');
aCountry.KeyColumn := 0;
aCountry.DisplayColumn := 1;
// Delphi EditMask syntax: the user types the digits, the literals stay
aPhone.EditMask := '(000) 000-0000;0;_';
aPrice.CurrencyCode := 'EUR';
Result := TsgcVCLValidator.Create(aForm);
Result.Container := aForm;
Result.Display := [uvdBorder, uvdIcon];
oRule := TsgcVCLValidationRule(Result.Rules.Add);
oRule.Control := aCountry;
oRule.Kind := uvrRequired;
oRule := TsgcVCLValidationRule(Result.Rules.Add);
oRule.Control := aPrice;
oRule.Kind := uvrRange;
oRule.MinValue := '1';
oRule.MaxValue := '10000';
end;public class Country
{
public string Code { get; set; }
public string Name { get; set; }
}
public class OrderForm : Form
{
private readonly TsgcWinFormsLookupEdit country = new TsgcWinFormsLookupEdit();
private readonly TsgcWinFormsMaskEdit phone = new TsgcWinFormsMaskEdit();
private readonly TsgcWinFormsCurrencyEdit price = new TsgcWinFormsCurrencyEdit();
private readonly TsgcWinFormsValidator validator = new TsgcWinFormsValidator();
public OrderForm()
{
country.SetBounds(16, 16, 240, 28);
phone.SetBounds(16, 56, 240, 28);
price.SetBounds(16, 96, 240, 28);
Controls.AddRange(new Control[] { country, phone, price });
// any list: the edit shows Name, SelectedValue returns Code
country.ItemsSource = new List<Country>
{
new Country { Code = "ES", Name = "Spain" },
new Country { Code = "FR", Name = "France" }
};
country.DisplayMember = "Name";
country.ValueMember = "Code";
phone.EditMask = "(000) 000-0000"; // MaskedTextBox syntax by default
price.Decimals = 2;
validator.Container = this;
validator.Rules.Add(new TsgcWinFormsValidationRule
{ Control = country, Kind = TsgcUIValidationRuleKind.uvrRequired });
validator.Rules.Add(new TsgcWinFormsValidationRule
{ Control = price, Kind = TsgcUIValidationRuleKind.uvrRange, MinValue = "1" });
}
public bool Save() => validator.Validate();開いたデータセット上の TsgcVCLDataForm が、エディター、検証規則、ナビゲーターを作成します。フィールドの種類とグループを設定して再構築すると、ナビゲーターの Smart Paste ボタンがクリップボードからレコードを埋めます。
uses
Forms, Controls, DB,
sgcUICore_AI, sgcEditors_DataForm, sgcEditors_VCL_DataForm;
function CreateCustomerForm(aOwner: TForm; aSource: TDataSource;
aProvider: TsgcUIAIProvider): TsgcVCLDataForm;
var
oField: TsgcDataFormField;
begin
Result := TsgcVCLDataForm.Create(aOwner);
Result.Parent := aOwner;
Result.Align := alClient;
// an open dataset: one field, one editor and one rule per TField
Result.DataSource := aSource;
oField := Result.Fields.FindField('EMAIL');
oField.Kind := edfEmail;
oField.Required := True;
oField.Group := 'Contact';
Result.Fields.FindField('PHONE').Group := 'Contact';
Result.RebuildEditors;
// the Smart Paste button of the navigator fills every field from the
// clipboard; without a provider a local parser reads "Name: value" lines
Result.Provider := aProvider;
end;Gallery、Calendar、BookingForm、Validation、DataAware は VCL と C++ Builder 向けに、FireMonkey 向けには GalleryFMX と ValidationFMX が付属します。.NET 版には、WinForms、WPF、Avalonia 向けの Gallery と Validation、そして BookingForm、BindingWpf、DataAwareWinForms があります。
15 個のエディターすべてを 1 つのフォームに並べ、テーマの切り替え、読み取り専用の切り替え、イベントログ、PNG エクスポートを備えています。すべてのコントロールとそのキーボード操作を試す最も手軽な方法です。
最大 14 日の範囲、週番号、無効にした週末と祝日、英語、ドイツ語、スペイン語、フランス語、イタリア語のロケール切り替えを備えています。
宿泊、人数、到着時刻のライブの概要、国のルックアップ、マスクされた電話番号、予約の前に宿泊者の項目を検証するバリデーターを備えたホテルの予約フォームです。実際のフォームでコントロールがどのように連携するかが分かります。
TClientDataSet 上の 10 個のデータ対応エディターを、TDBGrid と TDBNavigator とともに配置しています。2 つ目のデータセットから埋めるルックアップエディットと、必須フィールドのバリデーターも含みます。データ対応コントロールには、Registered 版または体験版が必要です。
FireMonkey のエディターで作ったギャラリーで、Windows と Android に対応し、VCL のコントロールと同じプロパティとイベントを備えています。
標準のコントロールと sgcEditors のコントロールに対するすべてのルールの種類、3 つのトリガー、枠とアイコンの表示、概要リストを確認できます。ValidationFMX は FireMonkey で同じことを行い、.NET 版には Validation、ValidationWpf、ValidationAvalonia があります。
Delphi (VCL) 向けの QuickStart デモ 5 つが Demos\Editors\Delphi\00.QuickStart に入っています。PDF ガイドが、それらを順を追って解説します。フォーム上の最初のエディター、値の読み書き、テーマ、入力検証、データフォームで作る連絡先アプリケーション。
sgcEditors は、すべての sgcUI エディションに含まれており、単体でも販売しています。All-Access バンドルにも含まれています。
無料の Community 版(NuGet の esegece.sgcEditors.Community)には 15 個のコントロールすべてとレイアウトコントロール、検証フレームワークが含まれますが、カラーピッカーには HSV の正方形とアルファバーがなく、トークンエディットにはオートコンプリートのリストがなく、レンジスライダーのつまみは 1 つで、データ対応エディター、データフォーム、WinForms の DataSource バインディングはありません。
| 機能 | Community(無料) | 登録版 |
|---|---|---|
| VCL、FireMonkey、.NET 向けの 15 個のコントロールすべて | ✓ | ✓ |
| 検証: ルール、エラー表示、概要(sgcUICore) | ✓ | ✓ |
| WinForms、WPF、Avalonia での ItemsSource によるルックアップの一覧 | ✓ | ✓ |
| ネイティブのテキスト入力、柔軟な解析、ローカライズ | ✓ | ✓ |
| カレンダーの範囲、制限、無効な日 | ✓ | ✓ |
| キーボード、DPI、テーマ、ヘッドレス出力 | ✓ | ✓ |
| タッチパネル用の NumPad | ✓ | ✓ |
| 10 種類のレイアウトを備えたスクリーンキーボード | ✓ | ✓ |
| 設定用のトグルスイッチ | ✓ | ✓ |
| IPv4 と IPv6 に対応した IP アドレスエディット | ✓ | ✓ |
| 継続時間のための継続時間エディット | ✓ | ✓ |
| 各フォントファミリのプレビュー付きフォントピッカー | ✓ | ✓ |
| すべて選択とフィルター付きのチェックリストボックス | ✓ | ✓ |
| 移動ボタンと並べ替えボタン付きのデュアルリストボックス | ✓ | ✓ |
| JSON で保存するレイアウト付きのレイアウトコントロール(Delphi の Community 版ではコードで作成) | ✓ | ✓ |
| 2 つのつまみを持つレンジスライダー | − | ✓ |
| カラーピッカーの HSV の正方形とアルファバー | − | ✓ |
| トークンエディットのオートコンプリートのリスト | − | ✓ |
| データ対応エディター(Delphi と C++ Builder) | − | ✓ |
| WinForms の DataSource、DataMember、DataField | − | ✓ |
| TDataSet、クラス、DataTable、またはオブジェクトからのデータフォーム、検証と Smart Paste 付き | − | ✓ |
すべてのコントロールが、VCL、FireMonkey、WinForms、WPF、Avalonia 向けに、同じプロパティとイベントで用意されています。
| コントロール | VCL と C++ Builder | FireMonkey | .NET |
|---|---|---|---|
| 月カレンダー | TsgcVCLMonthCalendar | TsgcFMXMonthCalendar | TsgcWinFormsMonthCalendar |
| 日付ピッカー | TsgcVCLDatePicker | TsgcFMXDatePicker | TsgcWinFormsDatePicker |
| 時刻ピッカー | TsgcVCLTimePicker | TsgcFMXTimePicker | TsgcWinFormsTimePicker |
| 日時ピッカー | TsgcVCLDateTimePicker | TsgcFMXDateTimePicker | TsgcWinFormsDateTimePicker |
| レンジスライダー | TsgcVCLRangeSlider | TsgcFMXRangeSlider | TsgcWinFormsRangeSlider |
| カラーピッカー | TsgcVCLColorPicker | TsgcFMXColorPicker | TsgcWinFormsColorPicker |
| トークンエディット | TsgcVCLTokenEdit | TsgcFMXTokenEdit | TsgcWinFormsTokenEdit |
| 評価 | TsgcVCLRating | TsgcFMXRating | TsgcWinFormsRating |
| スピンエディット | TsgcVCLSpinEdit | TsgcFMXSpinEdit | TsgcWinFormsSpinEdit |
| ボタンエディット | TsgcVCLButtonEdit | TsgcFMXButtonEdit | TsgcWinFormsButtonEdit |
| 検索エディット | TsgcVCLSearchEdit | TsgcFMXSearchEdit | TsgcWinFormsSearchEdit |
| マスクエディット | TsgcVCLMaskEdit | TsgcFMXMaskEdit | TsgcWinFormsMaskEdit |
| 通貨エディット | TsgcVCLCurrencyEdit | TsgcFMXCurrencyEdit | TsgcWinFormsCurrencyEdit |
| ルックアップエディット | TsgcVCLLookupEdit | TsgcFMXLookupEdit | TsgcWinFormsLookupEdit |
| メモ | TsgcVCLMemo | TsgcFMXMemo | TsgcWinFormsMemo |
| トグルスイッチ | TsgcVCLToggleSwitch | TsgcFMXToggleSwitch | TsgcWinFormsToggleSwitch |
| IP アドレスエディット | TsgcVCLIPAddressEdit | TsgcFMXIPAddressEdit | TsgcWinFormsIPAddressEdit |
| 継続時間エディット | TsgcVCLTimeSpanEdit | TsgcFMXTimeSpanEdit | TsgcWinFormsTimeSpanEdit |
| フォントピッカー | TsgcVCLFontPicker | TsgcFMXFontPicker | TsgcWinFormsFontPicker |
| チェックリストボックス | TsgcVCLCheckListBox | TsgcFMXCheckListBox | TsgcWinFormsCheckListBox |
| デュアルリストボックス | TsgcVCLDualListBox | TsgcFMXDualListBox | TsgcWinFormsDualListBox |
| NumPad | TsgcVCLNumPad, TsgcVCLNumPadPopup | TsgcFMXNumPad, TsgcFMXNumPadPopup | TsgcWinFormsNumPad, TsgcWinFormsNumPadPopup |
| スクリーンキーボード | TsgcVCLKeyboard, TsgcVCLKeyboardPopup | TsgcFMXKeyboard, TsgcFMXKeyboardPopup | TsgcWinFormsKeyboard, TsgcWinFormsKeyboardPopup |
| レイアウトコントロール | TsgcVCLLayoutControl | TsgcFMXLayoutControl | TsgcWinFormsLayoutControl |
| データフォーム | TsgcVCLDataForm | TsgcFMXDataForm | TsgcWinFormsDataForm |
.NET の列には WinForms の名前を示しています。同じコントロールが WPF と Avalonia にもあり、プレフィックスは TsgcWpf と TsgcAvalonia です。非ビジュアルのヘルパーは、TsgcEditorModel、TsgcEditorLocale、TsgcEditorFieldLink です。10 個のデータ対応エディター(TsgcVCLDBDatePicker、TsgcVCLDBTimePicker、TsgcVCLDBSpinEdit、TsgcVCLDBRating、TsgcVCLDBRangeSlider、TsgcVCLDBButtonEdit、TsgcVCLDBMaskEdit、TsgcVCLDBCurrencyEdit、TsgcVCLDBMemo、TsgcVCLDBLookupEdit と、その FireMonkey 版)は Registered 版専用で、Delphi と C++ Builder 向けに提供されます。.NET では、Registered 版の WinForms エディターが DataSource、DataMember、DataField でバインドされます。レイアウトコントロールはすべてのエディションに含まれ、データフォームは Registered 版のみです。バリデーターと検証の概要は sgcUICore に含まれます。TsgcVCLValidator、TsgcFMXValidator、TsgcWinFormsValidator、TsgcWpfValidator、TsgcAvaloniaValidator です。
| ターゲット | コンポーネント | プラットフォーム |
|---|---|---|
| Delphi 7 から 13、VCL | TsgcVCL エディター | Win32、XE2 以降は Win64 |
| Delphi XE6 から 13、FireMonkey | TsgcFMX エディター | Windows、macOS、iOS、Android |
| C++ Builder 2007 から 13 | TsgcVCL と TsgcFMX のエディター | 生成された .hpp ヘッダーとスタティックライブラリ |
| Delphi 10.2 から 13、フレームワーク非依存 | モデル、レイアウトモデルとその JSON、ヘッドレスの PNG および SVG 出力 | Linux64(Linux 用コントロールはありません) |
| .NET Framework 4.7.2、.NET 8、9 と 10 | WinForms、WPF、Avalonia のエディター | Windows デスクトップと Avalonia のターゲット |
はい。すべてのテキストフィールドはプラットフォームの本物のエディットです。VCL ではボーダーレスの TEdit、FireMonkey では FMX の TEdit を使っているため、日本語、中国語、韓国語の IME 入力、クリップボード、元に戻す、コンテキストメニュー、スクリーンリーダーが、特別なコードなしで動作します。テキスト入力と IMEをご覧ください。
はい。MinDate と MaxDate で制限を設定し、DisabledDates で祝日を列挙し、DisabledWeekDays で週末をブロックし、OnIsDateDisabled でその他のルールを判定できます。無効な日は取り消し線付きで表示され、キーボード操作ではスキップされ、ピッカーに入力しても受け付けられません。Calendar デモは、週末と 2 つの祝日をブロックして、ルールの動作を示しています。
Delphi と C++ Builder の 10 個です。日付ピッカー、時刻ピッカー、スピンエディット、評価、レンジスライダー、ボタンエディット、マスクエディット、通貨エディット、メモ、ルックアップエディットで、それぞれ VCL と FireMonkey のコントロールがあります。Registered 版または体験版が必要です。.NET では、Registered 版の WinForms エディターが DataSource、DataMember、DataField でフィールドにバインドされ、どちらのエディションでも、コントロールを WinForms、WPF、Avalonia のデータバインディングでバインドでき、ルックアップエディットは ItemsSource から行を取得します。
15 個のコントロールすべてと検証フレームワークが含まれます。Community 版では、カラーピッカーの HSV の正方形とアルファバー、トークンエディットのオートコンプリートのリスト、レンジスライダーの 2 つ目のつまみ、WinForms エディターの DataSource、DataMember、DataField メンバーが含まれません。Delphi のデータ対応エディターは Registered 版専用です。エディションをご覧ください。
はい。sgcUICore のバリデーターをフォームに配置し、Container を設定してルールを追加します。必須、範囲、長さ、正規表現、メールアドレス、比較、カスタムです。sgcEditors のコントロールと、標準のエディット、メモ、コンボ、チェックボックス、ピッカーを検証し、枠、アイコン、任意の概要を表示し、スクリーンリーダーがメッセージを読み上げます。保存する前に Validate を呼び出します。すべてのエディションで、VCL、FireMonkey、WinForms、WPF、Avalonia 向けに利用できます。検証をご覧ください。
はい。各コントロールは FormatSettings を独自に保持するため、日と月の名前、書式、区切り文字、週の開始日をコントロールごとに変えられます。Calendar デモは、実行時に英語、ドイツ語、スペイン語、フランス語、イタリア語を切り替え、別途指定しない限り、週番号は ISO 8601 に従います。
日付と時刻については使えます。TsgcVCLDatePicker、TsgcVCLTimePicker、TsgcVCLDateTimePicker は、ドロップダウンのカレンダーまたは時刻リストを備えた、型付きのエディットです。さらに、月名を柔軟に解析し、制限と無効な日を考慮し、sgcUI のテーマに従い、モニターごとの DPI で描画されます。
はい。C++ Builder 2007 と 2010 から 13 では、生成されたヘッダーとライブラリを通じて、同じ VCL と FireMonkey のコントロールを使えます。DataAware を含むすべての Delphi のデモも、C++ Builder のプロジェクトとして付属します。このページのコードタブでは、同じフォームを Delphi、C++ Builder、C# で確認でき、各サンプルは公開前にコンパイル済みです。
はじめに, VCL クイックスタート, FireMonkey クイックスタート, データ対応クイックスタート, コントロール, 月カレンダー, ルックアップエディット, マスク, 検証, テキスト入力と IME, ローカライズ, エディション, プラットフォーム.
Delphi、C++ Builder、.NET。いずれも sgcUI の全製品を網羅しています。