二月 12

我在 Delphi XE8 中曾发生过两次在切换 (F12) 到 Form/Unit 的图形界面时,Delphi 直接 Crash,Windows 记录会有以下两条:

来源: Application Error
失败的应用程序名称: bds.exe
失败的模块名称: Castalia220.bpl

来源: Windows 错误报告
事件名称: APPCRASH
问题签名:
P1: bds.exe
P4: Castalia220.bpl

继续浏览 »

十一月 12

  今天想測試 Delphi 連結 AD 的功能網路上教學說可以透過「Component → Import Compont」來匯入但實際操作時,却出现 “存取 OLE 登錄時發生錯誤。” 的错误信息。

继续浏览 »

二月 19

  Quick Report 在 1920*1080 解析度加上 125% 以上的显示设定环境时,会发生 '预览打印' 的比例不对(过大或过小),但实际打印出来是正常的情况,如果要修正,需要在编译环境修正 Quick Report 的 qrprntr.pas 文件,有两种修正方式。

继续浏览 »

Jul 11
unit unit1;

interface

uses
  Windows, Messages....

type
  TFormName = (Casefm1, Casefm2, Casefm3);

function xxx(): Boolean;
var
  StrFormName: String;
  CaseFormName: TFormName;
begin
  StrFormName := 'Case' + vFormName; 
  // 將 FormName(物件) 與 TFormName(值) 做區隔。
  // (vFormName為帶有各FormName的字串變數)
  CaseFormName := TFormName(GetEnumValue(TypeInfo(TFormName), StrFormName));

  case CaseFormName of
    Casefm1:
      begin
        ..............
      end;

    Casefm2:
      begin
        ..............
      end;

    Casefm3: 
      begin
       ...............
      end;

【参考链接】

Jul 11

The Delphi menu font seems to always revert to the default (8, Tahoma) Issue,Someone abroad asked about it,But there's no solution。For now, the temporary solution I can think of is to set up a function key (Can be set as a hotkey),So that when the user encounters the font becoming small,They can manually reset the font size。(During testing, changing the Windows display scaling percentage can make the menu font revert to the default)

procedure Tmainform.N93Click(Sender: TObject);
begin
  Screen.MenuFont.Size := 12;
  xxxxxx.BringToFront; // 改變畫面焦點,以刷新選單畫面。
end;

【参考链接】

Jul 11
procedure TfmQAB.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
begin
if (Msg.CharCode = 116)  and (HiWord(GetKeyState(VK_CONTROL)) = 1)  then 
  begin
    ......
  end
end;

【参考链接】

Jul 11
var
  vTime, vTime1, vTime2: double;
begin
  vTime1 := GetTickCount();
  vTime2 := GetTickCount();
  vTime := (vTime2 - vTime1) / 1000;
  Showmessage(floatToStr(vTime) + 's');
end;

【参考链接】

十一月 23

  前两周公司网络架构大翻修,忙得不可开交,在修改打印服务器的IP时,遇到两个很刁钻的问题,一开始先是不让我改,后来改好后,变成只要闲置一段时间,He will disconnect,Tried all day,Finally gave up,Just grabbed a small program,Put it on the server to ping the print server every 30 seconds。

继续浏览 »