加载中…
新浪微博
个人资料
Delphi软件工程师
Delphi软件工程师
  • 博客等级:
  • 博客积分:0
  • 博客访问:79,907
  • 关注人气:10
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
评论
加载中…
友情链接
访客
加载中…
好友
加载中…
博文
置顶: (2013-05-23 21:48)
标签:

it

分类: Delphi编程
06年毕业后一直效命于现在的这个公司,几年前为公司的硬度检测系统做一个平面图像扫描的程序,用的算法相对比较简单。程序虽能正常运行,由于较少考虑内存的限制,所以在大面积扫描时常常会出现“内存不足”的错误提示,影响程序的正常使用。总想给做个改进,但是种种原因,这个想法一直搁浅至现在。
 
当时采用的思路就是沿着一个矩形区域从上到下依次读取每个视域的图像及其坐标,然后在其坐标位置下给显示出来。就这么简单,可能所有的人都会想到这个方法。的确,如果扫描的结果只有几百幅图(760 x 570)的话绝对没有什么问题的。可以说程序跑地飞快,缩放、拖拽、动态显示都不是问题,如果图像达到成千上万幅的话真的会让程序崩溃的!
 
其实扫描的算法可以从以下几个角度考虑去改进,这里仅提出一些设想,复杂度和可行性并没有去考量:
 
  1. 扫描的每一幅图最好直接就存盘,
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi编程

有时候我们需要列举FTP服务器上当前目录中的文件和子目录,但是Indy.Sockets version 10.1.1 在Delphi2007下列举目录时显示为乱码。经过尝试,发现中文名是通过UTF8编码的,于是便想到了下面的方法解决。

 

function ListFile: Boolean;
var
  i : Integer;
  sFileName,dstFileName: string;
begin
  Result := False;
  for I := 0 to IdFTP.DirectoryListing.Count - 1 do
  begin
    dstFileName := IdFTP.DirectoryListing.Items[i].FileName;
    if SameText(dstFileName,sFileName) or SameText(UTF8Decode(dstFileName), sFileName) then
    begin
      Result := True;
      exit;
    end;
  end;
end;

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi编程
 联想笔记本G490,最近系统如果锁屏后重新打开(比如午饭后1小时左右),系统经常会比较卡。但CPU利用率、硬盘读写指标都比较正常,于是手贱点了联想的驱动管理程序,想通过驱动升级改善这个问题。扫描到一些需要更新的驱动,包括摄像头驱动。结果一升级,摄像头驱动提示没有合适的驱动,当时也没在意,后来在用硬件测试程序时发现打开摄像头时就提示以下错误:

打开摄像头失败!错误:(图像预览失败!错误:(未找到可用于建立连接的介质筛选器组合。 ($80040217).))

图片
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
1. 打开控制面板,找到Windows防火墙配置。
 

2. 点击“允许程序或功能通过Widows防火墙”,入下图

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
在初次配置外点操作端程序时,经常会遇到写卡区段无法显示的问题。其原因是,外点写卡区段需要在网站管理端设置。每个外点可以单独配置该外点常用的写卡区段,避免由于区段过多用户写卡时不好查找的问题。设置方式如下:

1. 打开外点管理页面;

2. 找到需要修改的外点,点击其中的【更多】链接,打开外驻点管理页面;

3. 找到并打开【写卡区段设置】标签,结果如下图所示。勾选需要的写卡区段名称,点击保存即可。


图片
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
乘务员出勤写卡是在自助操作端进行的,每个机务段的要求不一样,但大体上遵从以下几点:

1. 打开数据同步程序,打开【系统】-【选项】窗口,点击左侧“写卡设置”:如下下图所示。首先选择相应的写卡软件类型,然后指定写卡软件主程序的安装存放位置,以及使用地点(不同地方的写卡软件版本不一样,因此需要区分处理)。
图片

2. 写卡流程的配置(需要通过专用的功能配置工具进行配置,如下图所示)

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi编程

近日在使用SQL2008编写和调试SQL脚本时,发现无法调试,报如下错误:


---------------------------
Microsoft SQL Server Management Studio
---------------------------
无法启动 T-SQL 调试。未能连接到计算机“.”。请求的名称有效,但是找不到请求的类型的数据。 
---------------------------
确定   
---------------------------

经过多方查找,发现,原来是在编辑器建立连接时没有输入完整的IP或主机名造成的。 

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi编程
WPS Office的二次开发接口体系和微软Office的二次开发接口体系基本保持一致。包括:对象树,即对象的组织构成、各对象代表的含义和微软Office对象均保持一致;接口函数,即各对象的方法属性的名称和含义均与微软Office保持一致。

不同之处主要表现在两个方面:模块程序的对象名称和枚举常量的名称。
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 

交付揭示

交付给机车乘务员携带的运行揭示,简称交付揭示。要按机车交路别分区段编辑,并标明有效时段。各区段运行揭示应按照列车运行方向由近至远顺序排列。乘务员上车后,需要在司机手册车站站名处及交付揭示上予以标注,在列车运行中,经过一处划掉一处,逐个销号。

 

名词来源——《机务行车安全管理规则2009》第33条

 

公布揭示

派班室按区段分设的,用来存放和公布运行揭示的窗格,供乘务员出勤时查看和核对使用的。运行揭示栏出示的运行揭示一般按上下行别、站序、公里数顺序排列。

 

名词来源——《机务行车安全管理规则2009》第34条

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi编程

//------------------------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  MyFile:TextFile;
  Str : string;
begin
  Memo1.Clear;
  Assignfile(MyFile, 'd:\xx.log');
  try
    Reset(MyFile);
    while not Eof(MyFile) do
    begin
      Readln(MyFile,Str);
      Memo1.Lines.Add(Str);
    end;
  finally
    CloseFile(MyFile);
  end;
end;

//------------------------------------------------------------------------------

procedure TForm1.Button2Click(Sender: TObject);
var
  MyFile:TextFile;
  Str : string;
begin
  AssignF

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Delphi编程


  {
     用户创建的服务对象都直接或间接继承自TService, 并由delphi在工程单元中自动编码,如下:
     Application.CreateForm(TService1, Service1);
     Application.CreateForm(TService2, Service2);
     由此创建和注册一个新的服务对象。

     严格的说,此时的服务还不能叫服务,因为它还不能运行,它需要在接下来的Application.Run语句中
     向操作系统注册,由操作系统回调启动。回调函数会调用服务对象的DoStart()方法,Delphi在此
     方法中创建了与此服务相关的线程对象,并激活该线程。在服务线程的Execute方法中,Delphi又
     调用了服务对象的OnStart和OnExecute事件,所以用户可以在服务对象的OnExecute事件中
     编写自己的服务代码。如果在OnExecute事件中使用了循环,还需要周期性的调用
   &nbs

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

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

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

新浪公司 版权所有