VCL.form / FMX.formの違い
なぞのエラーの原因がこれポイ。
Appplication.handler
Application.icon
のメンバーではないとかあったから。
私たちが取り組んでいるメインのプログラムは、完全にVCLで設計されており、非常に大きく、一部は約20年前のものです。次のバージョンでは、UWPガイドラインとタッチコントロールを考慮した、よりモダンなUIになる予定です。
VCL は FireMonkey と互換性がない
注意: FireMonkey(FMX)とビジュアル コンポーネント ライブラリ(VCL)は互換性がないため、同じモジュール内で一緒に使用してはなりません。 つまり、FireMonkey か VCL のどちらか一方だけのモジュールでなければなりません。 この非互換性は、FireMonkey(FMX)と VCL とのフレームワークの違いに起因するものです。
ただし、以下のことは可能です。
- FireMonkey ライブラリを VCL アプリケーションで使用したり、VCL ライブラリを FireMonkey アプリケーションで使用すること(「OS X の共有ライブラリ」参照)。
- VCL アプリケーションを FireMonkey アプリケーションに変換するための一般的なガイドラインを「VCL から FireMonkey への変換」で参照すること
- VCL アプリケーションを FireMonkey アプリケーションに移行するための一般的な手順を「VCL アプリケーションから FireMonkey への移行」で参照すること
- VCL から FireMonkey への変換プログラムを、http://midaconverter.com/ から取得する
Delphiのfunctionは返り値voidできなくね?
vcl / fmx の互換性を担保できん。
Delphi Basics : これの邦訳とか・需要なさそうwww
procedure TApplication.CreateMainForm;
var
I: Integer;
begin
if not Assigned(FMainForm) then
begin
if FFormRegistry.Keys.Count = 1 then
begin
for I := 0 to High(FCreateForms) do
if (not FCreateForms[I].InstanceClass.InheritsFrom(TDataModule)) then
begin
FMainForm := TCommonCustomForm(FCreateForms[I].Reference^);
break;
end
end
else
FMainForm := GetDeviceForm(FMainFormFamily);
TMessageManager.DefaultManager.SendMessage(FMainForm, TMainCaptionChangedMessage.Create(FMainForm));
end;
if Assigned(FMainForm) then
FMainForm.Visible := True;
end;
FMX.forms.CreateMainForm直後に落ちるなぁ。
https://www.blackcat.xyz/article.php/ProgramingFAQ_del0045
今回はそんなときに使える 「タスクバーにタスク表示させない」 方法です。
この方法は、アプリケーションのウィンドウ設定を変更します。
アプリケーションのウィンドウを非表示に(元々見えていません)する。
アプリケーションウィンドウの拡張設定の WS_EX_TOOLWINDOW というフラグをたてる。
この方法はプロジェクトのソースに対し修正を行います。
デルファイの開発環境でプロジェクトマネージャを表示します。
次にプロジェクトを選択、右クリックポップアップメニューを表示します。
ソースの表示をクリックすると表示されます。
実際のコードは以下のようになります。(斜体部分のみ入力します。)
->消えたは消えた。けど別のエラー
access violation at addressが発生。メモリ系??
ふぁ?