unigui在linux下运行的一些情况

1、delphi的strtodate 不能给TUnimDatePicker.Date赋值,需要通过UniDateStringToDate(formatstr,datestr)(uniDateUtils.dcu/pas)来执行,反过来formatdatetime可以将TUnimDatePicker.Date转为string。

              js:=JSONObj.GetValue('日期').Value;
              eRegdate.Date:= UniDateStringToDate('yyyyMMdd',js);
 //eRegDate.Date:=strtodate(copy(js,1,4)+'-'+copy(js,5,2)+'-'+copy(js,7,2));

2、TUnimImage,通过loadfromstream出错(windows中正常),可以将stream保存为文件(png,jpg,两种保存时扩展名无所谓(必须要有扩展名),其它格式没试过)。

      {$ifdef Linux64}
      fn2:='./o.jpg';
      fn1:='./d.jpg';
      tblobfield(tt.FieldByName('o')).SaveToFile('./o.jpg');
      try
        o.Picture.LoadFromFile('./o.jpg');
      except
        putlog('o nil');
      end;

      tblobfield(tt.FieldByName('d')).SaveToFile('./d.jpg');
      try
        d.Picture.LoadFromFile('./d.jpg');
      except
        putlog('d nil');
      end;
      {$else}
      st:=tt.createBlobStream(tblobfield(tt.FieldByName('o')), bmRead);
      st.Position:=0;
      o.Picture.LoadFromStream(st);
      st:=tt.createBlobStream(tblobfield(tt.FieldByName('d')), bmRead);
      st.Position:=0;
      d.Picture.LoadFromStream(st);
      {$endif}

3、TUnimImage.picture.savetostream,保存的stream无法被dataset.params.loadfromstream使用,先保存为文件(扩展名无所谓),然后dataset用loadfromfile(stream,ftBlob)。

tq.ParamByName('Doc').LoadFromFile(fn2,ftBlob);
//tq.ParamByName('Doc').LoadFromStream(st,ftBlob)

4、Linux中,createdir,createfile,有路径的不能用\,要用/。windows都行。

  {$ifdef Linux64}
  if not DirectoryExists('Upload/') then
    CreateDir('Upload/');
  p:='Upload/'+formatdatetime('yyyymmdd',now)+'/';
  {$else}
  if not DirectoryExists('Upload\') then
    CreateDir('Upload\');
  p:='Upload\'+formatdatetime('yyyymmdd',now)+'\';
  {$endif}

5、datasnap在linux下如果需要用到路径也要保存/\的区别,不然会出错。

6、Linux下获取路径,不能用Application.exename,只能用ExtractFilePath(ParamStr(0)),但这有个问题,程序在执行时如果命令行直接输入./comname,则返回.,需要输入全路径,得出路径才是正常的。/home/temp/comname,结果就是/home/temp,

  {$ifdef Linux64}
    SetCurrentDir(ExtractFilePath(ParamStr(0)));
  {$else}
    SetCurrentDir(ExtractFilePath(Application.exename));
  {$endif}

==================

unigui需要的4个文件夹,里面的文件都不能少,有时候复制不完整会导致页面破碎,执行报错。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nongen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值