二月 19

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

继续浏览 »

七月 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;

【參考連結】

七月 11

Delphi 选单似乎一直都有字型会变回预设值 (8, 塔霍马) 的问题,国外有人提问,但没有解决方式。目前我能想到的暂时解法是设定一个功能键 (可设为热键),让 user 遇到字型变小时,自行重置字型大小。(测试过程可透过变更 Windows 显示大小百分比来让选单字型变回预设值)

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

【參考連結】

七月 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;

【參考連結】

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

【參考連結】

十一月 23

  前兩週公司網路架構大翻修,忙到不可開交,在修改打印服务器的IP时,有兩顆很機歪,弓弦不会割断我们的目标是一个开始,经过好来改后,变成只要闲置一段时间,他就会断线,一个整数天堂试了,最后被遗弃,就抓了個小程式,放在Server让程式每隔30秒就对print server来ping一下。

继续浏览 »