• 使用 IntraWeb (10)



    IW 会把大多数的视觉属性转换为 CSS; 我们主动使用 CSS 要分两步:

    第一步:
    {通过窗体的 StyleSheet 属性指定要链接的 CSS 文件}
    procedure TIWForm1.IWAppFormCreate(Sender: TObject);
    begin
      StyleSheet.Filename := 'MyCss1.css'; //CSS 文件须放在 wwwroot 下
    //  StyleSheet.URL := 'http://...';    //外链
    end;
    
    {假如站点级的 CSS ... TIWServerController.OnCreate}
    procedure TIWServerController.IWServerControllerBaseCreate(Sender: TObject);
    begin
      StyleSheet.Filename := 'MyCss1.css'; //CSS 文件须放在 wwwroot 下
    //  StyleSheet.URL := 'http://...';    //外链
    end;
    


    第二步:
    {为要使用样式的控件指定 Css 属性}
    procedure TIWForm1.IWAppFormCreate(Sender: TObject);
    begin
      StyleSheet.Filename := 'MyCss1.css';
      IWMemo1.Css := 'Class1'; //假如 MyCss1.css 中有个 Class1 的类, 如: .Class {font-size: 32px; }
    
      IWMemo1.StyleRenderOptions.RenderFont := False; //一般情况下, 还需要同时调整下 StyleRenderOptions 属性
    end;
    
    {------------------------------------------------------------------
    关于 StyleRenderOptions 属性: 
    
    如果我们给控件使用了 CSS, 就有可能和控件本身的属性发生冲突, 用哪一个呢? 这需要控件的 StyleRenderOptions 属性来决定!
    
    它也是个类(IWTypes.TIWStyleRenderOptions < TPersistent < TObject), 该类只有几个布尔属性:
    property RenderSize: Boolean       //
    property RenderPosition: Boolean   //
    property RenderFont: Boolean       //
    property RenderZIndex: Boolean     //
    property RenderVisibility: Boolean //
    property RenderStatus: Boolean     //Enabled
    property RenderPadding: Boolean    //
    property RenderBorder: Boolean     //
    property RenderAbsolute: Boolean   //
    property UseDisplay: Boolean       //
    
    当对应值为 False 时才可以使用相应的 CSS.
    -------------------------------------------------------------------}
    


    CSS 的诸多操作类似与 JavaScript, 譬如:
    procedure TIWForm1.IWAppFormCreate(Sender: TObject);
    begin
      IWServerController.HTMLHeaders('<link type="text/css" rel="stylesheet" href="MyCss1.css"/>');
      Self.PreHeader.Add('<link type="text/css" rel="stylesheet" href="MyCss2.css"/>');
      Self.ExtraHeader.Add('<link type="text/css" rel="stylesheet" href="MyCss3.css"/>');
    
      IWServerController.ContentFiles.Add('MyCss4.css');
      Self.ContentFiles.Add('MyCss5.css');
    end;
    


    有没有可能直接在代码中写入 CSS 呢?
    {使用 ExtraTagParams 属性}
    IWLabel1.ExtraTagParams.Add('style = color: #f00; font-size:22px;');
    
    {使用 OnHTMLTag 事件, 需要 uses IWHTMLTag}
    procedure TIWForm1.IWLabel1HTMLTag(ASender: TObject; ATag: TIWHTMLTag);
    begin
      ATag.AddStringParam('style', 'color: #f00; font-size:22px;');
    end;
    

  • 相关阅读:
    linux下网络排错与查看
    linux下判断网络是否连接
    Linux 下操作gpio(两种方法,驱动和mmap)
    Kernel 中的 GPIO 定义和控制
    springboot jpa 解决延迟加载问题
    Hibernate @OneToOne懒加载实现解决方案
    Hibernate缓存和懒加载的坑你知道多少?这5个简单问题回答不上来就不敢说会用hibernate
    Spring Boot JPA 懒加载
    Spring Boot中使用Spring-data-jpa让数据访问更简单、更优雅
    Spring Data Jpa 详解 (配置篇)
  • 原文地址:https://www.cnblogs.com/del/p/3778833.html
Copyright © 2020-2023  润新知