加载中…
个人资料
红鱼儿
红鱼儿
  • 博客等级:
  • 博客积分:0
  • 博客访问:997,705
  • 关注人气:230
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
评论
加载中…
留言
加载中…
访客
加载中…
好友
加载中…
博文
分类: kbmMW
实现kbmMW httpservice,在注册到服务器时,发现只能用kbmMWServer1.RegisterService,客户端才能访问到,如果用kbmMWServer1.RegisterServiceByName,客户端无法访问到。
查看代码并进一步测试,发现,对于继承TkbmMWCustomHTTPService实现的HttpService,只能用其类方法定义的名称来注册:
{$IFNDEF CPP}class{$ENDIF} function TWebService.GetPrefServiceName:string;
begin
     Result:='HTTPSERVICE';
end;

也就是说,一个继承TkbmMWCustomHTTPService实现的HttpService,不能通过kbmMWServer1.RegisterServiceByName注册为两个不同名称的服务。


阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

分类: Delphi10.2
FastReport本身支持二维码,实际应用中遇到这样的问题,用二维码来显示一个字段值,发现,二维码显示的大小会随着字段值长度而变化,从而影响二维码显示的位置。同一字段,在一页纸上显示的大小不同。

在6.1.1版本中找到一个临时解决办法,利用脚本在运行期设置二维码的Text属性,二维码的大小才固定下来:
这个脚本代码:
procedure Barcode2D1OnBeforePrint(Sender: TfrxComponent);
begin
  Barcode2D1.text:=<frxDBDataset1.'FID'>;
end;


阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

分类: kbmMW
在kbmMW Server中实现方法,供客户端调用来发送短信,象下面这样:

var
  args:array of Variant;
begin
  SetLength(args,4);
  args[0]:='阿里云短信测试专用';//签名名称
  args[1]:='13955556666';//向该电话发送短信
  args[2]:='审核费用报销单';//操作选择项
  args[3]:=Format('{'storeman':'%s','number':'%s'}',['王小二','13966668888']);
  kbmMWPooledSimpleClient1.Request('AlidayuService', '1.0', 'SendNotifySMS', args);//调用服务端SendNotifySMS方法
end;
上面的调用代码,实现向手机号13955556666发送一条通知短信:
王小二提交了新的费用报销单,联系方式:13966668888,请您及时审核。

客户端调用对于kbmMW用户来说,很简单了。那我们再看看服务端的实现,如何将客户端的调用转到阿里云调用:
先在数据库中建一张表,用来配置短信服务:
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

分类: Delphi10.2
感谢xalion,发布这个消息,官方今天发行了新的补丁,解决ios 11.3上存在的问题。支持:
Supported iOS SDK versions: iOS 10.3.x and iOS 11.x including iOS 11.3
Supported Xcode versions: Xcode 8.2.x, 8.3.2, 8.3.3 and 9.x including 9.3

注意,这个补丁必须基于10.2.3安装,遗憾点,需要手工替换文件。
需要的朋友请到QQ群209321818(delphi 多层开发交流)下载。

安装方法:
1.把ide-patch.zip的文件解压到 Delphi安装目录下的Bin,覆盖同名文件
2.在macOS上,进入终端控制台,执行下面的命令:
   . cd /Applications/PAServer-19.0.app/Contents/MacOS
   . sudo mv paserver    paserver.bak
   . sudo mv paserver.ja paserver.ja.bak
   . sudo mv paserver.fr paserver.fr.bak
   . sudo mv paserver.de paserver.de.bak
   . sudo mv burly.dylib burly.dylib.bak
把macOS-paserver-patch.tar.gz复制到下载目录,然后执行:
   . cd /Applications/PAS
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi10.2
FireDAC是一套独特的通用数据访问组件,用于为Delphi和C ++ Builder开发多设备数据库应用程序。凭借其强大的通用架构,FireDAC支持从Delphi到InterBase,SQLite,MySQL,SQL Server,Oracle,PostgreSQL,IBM DB2,SQL Anywhere,Access,Firebird,Informix等的本地高速直接访问。

基于10年为数据库后端编写本地驱动程序的经验,FireDAC被构建为一个强大的访问层,支持构建真实世界高负载应用程序所需的所有功能。 FireDAC为访问不同的数据库后端提供了一个通用的API,而不会放弃对特定数据库特定功能的访问,也不会影响性能。

它使开发人员能够专注于开发应用程序,而不是关注数据库交互的复杂性。它提供了一组现代功能丰富的组件来解决所有主要的RDBMS环境。它使用一组组件来解决所有支持的RDBMS类型。它通过提供以下方面来降低总体拥有成本:

  •     与单独的昂贵库相比,初始成本更低。
  •     学习和熟悉独特的强大图书馆所需的时间更少。
  •     针对不同数据库时的直接应用设计和开发。



阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

分类: Delphi10.2
最新的Delphi 10.2.3来说,是最稳定、质量最好的Delphi版本,尤其在跨平台方面,更加成熟。但近几日被人发现几个严重的bug,现记录在这里:
https://quality.embarcadero.com/browse/RSP-20389
type
  TMySubdata = record
    Value: SmallInt;
  end;
 
  TMyData = record
    Subvalue1: TMySubdata;
    Subvalue2: TMySubdata;
  end;
 
function GetValue: TMyData;
begin
  Result.Subvalue1.Value := 1;
  Result.Subvalue2.Value := 2;
end;
 
var
  sv: TMySubdata;
begin
  sv := GetValue.Subvalue2;
  if sv.Value = 2 then
    Writeln('PASS')
  else
    Writeln('FAIL');
end.
//win32 显示 FAIL  win64正常

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

delphi

kbmmw

分类: kbmMW
kbmMW提供一个强大的配置信息管理对象,前期译过这个对象的介绍,在使用过程中,发现一个问题,就是TkbmMWCustomConfigurationStorage.BackupMaxCount属性,当设置为0时,也会生成配置信息的备份文件,在最新的kbmMW 5.05.11版本中,每运行一次就生成一个配置文件,对此,修正了代码。

打开单元文件 kbmMWGlobal,找到下面这个方法:

function kbmMWBackupFile,
....
     if not FileExists(AFile) then
     begin
          Result:=AFile;
          exit;
     end;
     if AMaxBackups<=0 then//判断AMaxbackups来决定是否生成备份文件:
     begin
          Result:=AFile;
          exit;
     end;
...

如果你还不知
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2018-04-08 23:00)
标签:

delphi

分类: Delphi10.2
今天遇到怪问题,原来在当前程序中执行一个外部EXE文件,这样写是可以的:
i:=WinExec(PAnsiChar(AnsiString(FInstallFileName)),SW_NORMAL);
现在不可以,查看返回值,为0,说明执行错误。

按竹子的提法,改用ShellExecut来执行,调用成功:
ShellExecute(0, 'open', PWideChar(String(FInstallFileName)),'',nil,SW_SHOWNORMAL);

FInstallFileName是执行文件的路径。

参考:Delphi调用外部程序函数:WinExec() 和ShellExecute详解
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi10.2
利用Delphi做拍照程序,不想每次拍照都在像册中产生图片。试用下面的方法,无解。

procedure TForm95.Button1Click(Sender: TObject);
var
  Service: IFMXCameraService;
  Params: TParamsPhotoQuery;
 begin
      if TPlatformServices.Current.SupportsPlatformService(IFMXCameraService, Service) then
      begin
        Params.Editable := False; // 拍完照是否允许编辑
        // Specifies whether to save a picture to device Photo Library
        Params.NeedSaveToAlbum := False; // 是否保存到系统相册
        Params.RequiredResolution := TSize.Create(2000, 2000); // 拍照大小,每张照片有固定宽高比例,系统会自动处理,给它一个想要的大约值就行。
        Params.OnDidFinishTaking := CameraAction
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi10.2
有Q朋问我,想把拍照的BMP转JPG,按下面的代码即可。

var
    surf:TBitmapSurface;
    astream:TmemoryStream;
begin
    surf:=TbitmapSurface.Create;
    astream:=TmemoryStream.Create;
    try
       Surf.Asssign(Image1.Bitmap);
       TBitmapCodeManager.SaveToStream(astream,Sufr,'.jpg');
    finally
        surf.Disposof;   
    end;   
end;  

其中,将.jpg换成.png就存成png格式的。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 不良信息反馈 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有