• XE7


      这两天主要是摸索着使用了ListView和SQLite。郁闷过,也有收获。

      一、SQLite

      首先记录下SQLite自己碰到的几个小问题:

      1. SQLite中字符串连接符是‘||’, 换行符为 x'0A'。  

      select *, substr(BuyDate,6,2)||'月'||substr(BuyDate,9)||'号 '||x'0A'||'数量: '||BuyNum from TableA 

      2. 日期时间函数

      strftime

      其它的暂时没咋涉及到,用的时候可以参考下:http://www.cnblogs.com/stephen-liu74/archive/2012/01/13/2322027.html

      个人感觉跟Access差不多少。另外,SQLite客户端工具用的是Navicat for SQLite,网上大把的下载链接。之前用过Navicat for MySQL,所以也不陌生。

       二、ListView

      从昨天下午开始折腾,终于有个初步的结果:

      

      1. 控件说明:

      (1)截图中FDGUIxWaitCursor1控件一定要手动加上,否则编译后在手机上运行时会报错(反正在红米上试过,肯定会),提示啥啥啥没注册:

      

      (2)FDConnection1,FDQuery1也是手动拖放到窗体的,其余的BindSource1,BindSource2, BindingsList1都是在设置ListView的相关属性时自动生成的。暂时还没深入去搞明白具体是咋回事,先学会用再说吧。

      FDQuery目前我就当成ADOQuery用,暂时来看查、删、改还没发现有多大区别。主要用到的是SQL属性。

      FDConnection1个人理解就等同于ADOConnection的作用,也有个LoginPrompt属性。属性一大堆,目前用到的其它属性还有DriverName, Params.Database。可以手动去设置这些属性值,也可以双击FDConnection,在弹出的属性设置窗口中操作。

      

      (3)ListView 

      折腾的过程中在网上搜索到的介绍ListView的网页,都说这是最重要的控件之一。XE7有自带ListView的几个Demo,我的目录在: C:Program Files (x86)EmbarcaderoStudio15.0SamplesObject PascalMobile SamplesUser InterfaceListView用的时候也切身感受了一把,结合目前所用(有些狭隘),体会如下:

      只要能把ItemAppearence、ItemAppearenceObjects这两大属性搞定,基本就没啥问题。

      ItemAppearence中ItemAppearence决定ListItem的布局。默认的有几种,上边提到的XE7自带的ListView的Demo目录下有额外的俩Appearence:SampleListViewMultiDetailAppearancePackage.dpk, SampleListViewRatingsAppearancePackage.dpk,可以手动安装下。安装后,在ItemAppearence属性的下拉选择框中会列出,具体啥效果,折腾下就明白了。

      ItemAppearenceObjects又细分为FooterObjects、HeaderObjects、ItemEditObjects、ItemObjects四部分。这四部分中个人感觉尤以ItemObjects为重。(开始写这篇笔记前也曾想写的尽量详尽些,有些难,昨天在网上请教一些老大时,没几个人回,所以也只有自己多折腾几次,才能逐步掌握,文采不好,写不出想要的效果)。ItemObject中的Accessory、Detail、Image、

      

      接下来就是LiveBindings Designer了。可以直接在窗体上右键选择Bind visually菜单项,或者在IDE的菜单栏选择View - LiveBindings Designer。

      

      咋总结呢?我觉得还不如DevExpress那一套用的痛快,在DEV中,各个数据感知控件选择下数据源、字段基本就搞定了,这个LiveBindings Designer感觉不太好使,慢慢习惯吧。反正就目前来理解,道理都差不多,就是绑定数据源。倒也是,目前用到的都是皮毛,所以还没发现它的优点。过程中碰到的问题之一是BindSourceDB1中没有可以选择的内容,后来将FDQuery1开关一次就好了。这里之所以说不好使,也是有原因:

      碰到的另外一个问题是,处理ListItemOnClick事件时,不知道ListItem怎么记录主键的值,因为自己设计的SQLite表中字段的值存在重复的可能,无法定位。没办法了,就拐了个弯,用不显示Item.Detail,而专门用来记录主键的值。但是这样又导致ListView显示不了太多的东西。所以二次折中,将Item.Text换行显示,当然要先将ItemAppearenceObjects - ItemObjects - Text - WordWrap设为True,允许换行,效果截图已经在上边了。这也是本文开头记录SQLite换行字符的缘由。  

      procedure TAchivementForm.ListView1ItemClick(const Sender: TObject; const AItem: TListViewItem);
      begin
        FDQuery1.Locate('MID', AItem.Detail);
        if not Assigned(FAcivementDetail) then
          FAcivementDetail := TAchivementDetail.Create(nil);
        FAcivementDetail.AchivementDetailState := adsView;
        FAcivementDetail.Show;
      end;

      就写到这了,赶紧继续去折腾,晚上回去该学Android Studio了,落下2天了。

      

  • 相关阅读:
    skywalking源码改造
    skywalking包覆盖
    skywalking-拦截器实现(2)
    skywalking-拦截器实现(1)
    skywalking-过滤某些不需要被监控的接口
    扩展Spring-data-jpa导致注解@NamedEntityGraphs失效
    Skywalking日志收集功能使用:
    LRU缓存机制(基于LinkedHashMap)
    2020年总结
    Hbase简介
  • 原文地址:https://www.cnblogs.com/mozzie/p/4335276.html
Copyright © 2020-2023  润新知