Delphi D10.1 移动开发中APP界面基本布局

跨平台调用WEB显示指定网页


#1、跨平台调用WEB显示指定网页
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
procedure TfMain_Form.ImageTapShow(UrlStr: string);
//调用系统WEB显示网页
{ KaTeX parse error: Expected 'EOF', got '}' at position 20: …EFINED(ANDROID)}̲ var intent…ELSEIF DEFINED(MSWINDOWS)}
begin
//Win
ShellExecute(0, nil, PChar(UrlStr), nil, nil, SW_SHOWNORMAL);
{ KaTeX parse error: Expected 'EOF', got '}' at position 5: ELSE}̲ begin {IFDEF IOS}
SharedApplication.OpenUrl(StrToNSUrl(UrlStr));
{ KaTeX parse error: Expected 'EOF', got '}' at position 5: ELSE}̲ _system(Ma…ENDIF}
{$ENDIF}
end;

#2、使用TGridPanelLayout显示布局
// 处理显示主要过程
// Grid: 需要显示的Grid控件; idtag:该控件的特定标志,用于区别其他Grid;
// num:生成图标个数 index 从第几个图标开始生成
// 这里生成图标都来自于ilMainImage,所有图标需要先载入到ilMainImage。
procedure TfMain_Form.ShowGrid(Grid: TGridPanelLayout; idtag: string;
num, index: Integer);
var
i: Integer;
Image: TImage;
s: TSizeF;
Layout: TLayout;
lbl: TLabel;
TS: TMemoryStream;
begin
Grid.BeginUpdate;
try
// android下需要调用,自己清理上次建的对象.Win32则不用自己清理,
// Win32下,Grid.ControlCollection.Clear自动清理了自己建的对象.
{KaTeX parse error: Expected 'EOF', got '}' at position 14: IFDEF ANDROID}̲ while …ENDIF}
Grid.Height := 0;
for i := index to num + index - 1 do
begin
// 动态生成 Layout
Layout := TLayout.Create(Self);
Layout.Name := ‘Lay’ + idtag + i.ToString;
Layout.Align := TAlignLayout.Client;
Layout.Padding.Left := 10;
Layout.Padding.Bottom := 10;
Layout.Padding.Top := 10;
Layout.Padding.Right := 10;
Layout.Parent := Grid; // Layout父级指向Grid。

        /// 动态生成 Image
        Image := TImage.Create(Layout);
        Image.Name := 'Image' + idtag + i.ToString;
        Image.Width := 48;
        Image.Height := 48;
        Image.Align := TAlignLayout.Center;
        Image.Margins.Bottom := 10;
        Image.HitTest := True;
        Image.Touch.InteractiveGestures := [TInteractiveGesture.LongTap];
        Image.TagString := 'Image' + idtag + i.ToString; // 这里用于区分不同点击内容
        Image.Tag := i;
        s.cx := 64;
        s.cy := 64;
        Image.Bitmap.Clear(TAlphaColorRec.White);
        // 创建流,用流来转换图片,实际应用时可直接将图片处理成流来应用
        TS := TMemoryStream.Create;
        ilMainImage.Bitmap(s, i).SaveToStream(TS); // 生成流数据
        TS.Position := 0;
        Image.Bitmap.LoadFromStream(TS); // 流数据载入  Image
        TS.Free;

{KaTeX parse error: Expected 'EOF', got '}' at position 16: IFDEF MSWINDOWS}̲ Im…ELSE}
Image.OnTap := ImageTak; // 点击事件指向
{$ENDIF}
Image.Parent := Layout; // 父级的控件指向Layout

        // 创建文本标题
        lbl := TLabel.Create(Layout);
        lbl.Parent := Layout;
        lbl.Name := 'lbl' + idtag + i.ToString;
        lbl.Text := '测试功能'; // 标题显示内容
        lbl.Align := TAlignLayout.Bottom;
        lbl.Margins.Bottom := 10;
        lbl.TextAlign := TTextalign.Center;
        lbl.StyledSettings := [];

    end;

    // 计算  Grid与Rectangle整体高度
    Grid.Height := Grid.RowCollection.Count * 100;
    (Grid.Parent as TRectangle).Height := Grid.Height + 30;
    // 计算每行的高度.
    for i := 0 to Grid.RowCollection.Count - 1 do
    begin
        Grid.RowCollection.Items[i].SizeStyle :=
            TGridPanelLayout.TSizeStyle.Percent;
        Grid.RowCollection.Items[i].Value := 100 / Grid.RowCollection.Count;
    end;

finally
    Grid.EndUpdate;
end;

end;

转截https://blog.csdn.net/guohengsheng3882/article/details/79233333

你可能感兴趣的:(delphi,10)