1{$MainForm customdrawnwsforms.pp} 2 3{ TCDWSCustomForm } 4 5// For non-mobile forms, so no implementation in LCL-CustomDrawn-Android 6class function TCDWSCustomForm.DoCreateHandle(const AWinControl: TWinControl; 7 const AParams: TCreateParams): TLCLIntfHandle; 8begin 9end; 10 11class procedure TCDWSCustomForm.DoShowHide(const AWinControl: TWinControl); 12begin 13end; 14 15{------------------------------------------------------------------------------ 16 Method: TCDWSCustomForm.CreateHandle 17 Params: None 18 Returns: Nothing 19 20 Creates a Windows CE Form, initializes it according to it´s properties and shows it 21 ------------------------------------------------------------------------------} 22class function TCDWSCustomForm.CreateHandle(const AWinControl: TWinControl; 23 const AParams: TCreateParams): TLCLIntfHandle; 24var 25 AForm: TCustomForm absolute AWinControl; 26begin 27 {$ifdef VerboseCDForms} 28 DebugLn(Format(':>[TCDWSCustomForm.CreateHandle] AWinControl=%x Name=%s: %s', 29 [PtrInt(AWinControl), AWinControl.Name, AWinControl.ClassName])); 30 {$endif} 31 32 Result := TLCLIntfhandle(AddNewForm(TCustomForm(AWinControl))); 33 34 {$ifdef VerboseCDForms} 35 DebugLn(Format(':<[TCDWSCustomForm.CreateHandle] Result=%x', 36 [Result])); 37 {$endif} 38end; 39 40class procedure TCDWSCustomForm.DestroyHandle(const AWinControl: TWinControl); 41begin 42 43end; 44 45class procedure TCDWSCustomForm.SetBorderIcons(const AForm: TCustomForm; 46 const ABorderIcons: TBorderIcons); 47begin 48end; 49 50class procedure TCDWSCustomForm.SetFormBorderStyle(const AForm: TCustomForm; 51 const AFormBorderStyle: TFormBorderStyle); 52begin 53 RecreateWnd(AForm); 54end; 55 56class procedure TCDWSCustomForm.SetBounds(const AWinControl: TWinControl; 57 const ALeft, ATop, AWidth, AHeight: Integer); 58begin 59 {$ifdef VerboseCDForms} 60 DebugLn(Format('[TCDWSCustomForm.SetBounds] AWinControl=%x ALeft=%d ATop=%d AWidth=%d AHeight=%d', 61 [PtrInt(AWinControl), ALeft, ATop, AWidth, AHeight])); 62 {$endif} 63end; 64 65class procedure TCDWSCustomForm.SetIcon(const AForm: TCustomForm; const Small, Big: HICON); 66begin 67end; 68 69class procedure TCDWSCustomForm.SetShowInTaskbar(const AForm: TCustomForm; 70 const AValue: TShowInTaskbar); 71begin 72end; 73 74class procedure TCDWSCustomForm.ShowModal(const ACustomForm: TCustomForm); 75begin 76end; 77 78class procedure TCDWSCustomForm.ShowHide(const AWinControl: TWinControl); 79var 80 lForm: TCDNonNativeForm; 81begin 82 {$ifdef VerboseCDForms} 83 DebugLn(Format(':>[TCDWSCustomForm.ShowHide] AWinControl=%x Handle=%x', 84 [PtrInt(AWinControl), PtrInt(AWinControl.Handle)])); 85 {$endif} 86 lForm := TCDNonNativeForm(AWinControl.Handle); 87 if AWinControl.Visible then 88 begin 89 {$ifdef VerboseCDForms} 90 DebugLn(':<[TCDWSCustomForm.ShowHide] Showed'); 91 {$endif} 92 ShowForm(lForm); 93 94 // if this is the first time we are showing the form adjust its layout 95 if not lForm.LayoutAutoAdjusted then 96 begin 97 DebugLn(Format('[TCDWSCustomForm.ShowHide] First form layout adjustment ' 98 + 'lOldDPI=%d lNewDPI=%d lOldFormWidth=%d lNewFormWidth=%d', 99 [lForm.LCLForm.DesignTimePPI, Screen.PixelsPerInch, lForm.LCLForm.Width, Screen.Width])); 100 lForm.LayoutAutoAdjusted := True; 101 lForm.LCLForm.AutoAdjustLayout(lapAutoAdjustWithoutHorizontalScrolling, 102 lForm.LCLForm.DesignTimePPI, 103 Screen.PixelsPerInch, lForm.LCLForm.Width, Screen.Width); 104 LCLIntf.InvalidateRect(HWND(lForm), nil, False); 105 // if necessary adjust the form coordinates 106 if not (lForm.LCLForm.BorderStyle in [bsDialog, bsNone]) then 107 begin 108 lForm.LCLForm.Left := 0; 109 lForm.LCLForm.Top := 0; 110 end; 111 end; 112 end 113 else 114 begin 115 HideForm(lForm); 116 {$ifdef VerboseCDForms} 117 DebugLn(':<[TCDWSCustomForm.ShowHide] Hided'); 118 {$endif} 119 end; 120end; 121 122class function TCDWSCustomForm.GetText(const AWinControl: TWinControl; var AText: String): Boolean; 123begin 124 AText := ''; 125end; 126 127class function TCDWSCustomForm.GetTextLen(const AWinControl: TWinControl; var ALength: Integer): Boolean; 128var 129 lText: string; 130begin 131 Result := GetText(AWinControl, lText); 132 ALength := Length(lText); 133end; 134 135class procedure TCDWSCustomForm.SetText(const AWinControl: TWinControl; const AText: String); 136//var 137// javamethod: jmethodID; 138begin 139{ javamethod := CurEnv->GetMethodID(clazz, "callFromCPP", "()V"); 140 if (javamethod == 0) { 141 LOGI("GetMethodID error"); 142 return; 143 } 144 env->CallVoidMethod(obj, javamethod); } 145end; 146 147class function TCDWSCustomForm.GetClientBounds(const AWincontrol: TWinControl; var ARect: TRect): Boolean; 148begin 149end; 150 151class function TCDWSCustomForm.GetClientRect(const AWincontrol: TWinControl; var ARect: TRect): Boolean; 152begin 153end; 154 155 156