+62 812-1171-5379 Fast Respond

Tips dan Trik Delphi - Tool

Menggunakan Microsoft Speech API / Tool / Windows / Delphi 7 - XE
uses Comobj;

procedure TForm1.Button1Click(Sender: TObject);
var
  voice: OLEVariant;
begin
  voice := CreateOLEObject('SAPI.SpVoice');
  voice.Speak('Hello World!', 0);
end;

Menggunakan string pada case / Tool / Windows / Delphi 7 - XE
function CaseOfString(s: string; a: array of string): Integer;
begin
    Result := 0;
    while (Result < Length(a)) and (a[Result] <> s) do
      Inc(Result);
    if a[Result] <> s then
      Result := -1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
    case CaseOfString(Edit1.Text, ['1', '2', '3', '4']) of
        0: Label1.Caption := 'Anda pilih 1';
        1: Label1.Caption := 'Anda pilih 2';
        2: Label1.Caption := 'Anda pilih 3';
        3: Label1.Caption := 'Anda pilih 4';
      else
        Label1.Caption := '?';
    end;
end;

Menampilkan semua hint pada statusbar / Tool / Windows / Delphi 7 - XE
procedure TForm1.FormCreate(Sender: TObject);
begin
    Application.OnHint := MyHint;
    ShowHint := True;
    Button1.Hint := 'Untuk menyimpan data';
    Button2.Hint := 'Koreksi data dan klik Simpan';
    Button3.Hint := 'Cetak pada printer';
    Edit1.Hint := 'Kode barang';
end;

procedure TForm1.MyHint(Sender: TObject);
begin
     StatusBar1.SimpleText := Application.Hint;
end;

Membuat password acak / Tool / Windows Android / Delphi 7 - XE
function RandomPassword(PLen: Integer): string;
var
  str: string;
begin
    Randomize;
    str    := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    Result := '';
    repeat
      Result := Result + str[Random(Length(str)) + 1];
    until (Length(Result) = PLen)
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
     edit1.text := RandomPassword(10);
end;

Menguji kebenaran angka atau nilai / Tool / Windows / Delphi 7 - XE
function IsStrANumber(const S: string): Boolean;
var
  P: PChar;
begin
  P      := PChar(S);
  Result := False;
  while P^ <> #0 do
  begin
    if not (P^ in ['0'..'9']) then Exit;
    Inc(P);
  end;
  Result := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    if IsStrANumber('1234567890A')= true Then
       ShowMessage('Benar') else
       ShowMessage('Salah');
end;


Menguji numlock capsslock scroll lock aktif / Tool / Windows / Delphi 7 - XE
function GetExtendedKeys(shift:TShiftState):string;
var Ctlkeys:string;
begin
      Ctlkeys:=' ';
      if ssShift in shift then
      begin
          if getkeystate(VK_LShift) < 0 then
             ctlkeys := 'Shift{Left}+'
          else if getkeystate(VK_RShift) < 0 then
             ctlkeys := 'Shift{Right}+';
      end;
      if ssAlt in shift then
      begin
          if getkeystate(VK_LMenu) < 0 then
             ctlkeys := ctlkeys+'Alt{Left}+'
          else if getkeystate(VK_RMenu) < 0 then
             ctlkeys := ctlkeys+'Alt{Right}+';
      end;
      if ssCtrl in shift then
      begin
          if getkeystate(VK_LControl) < 0 then
             ctlkeys := ctlkeys+'Ctrl{Left}+'
          else if getkeystate(VK_RControl) < 0 then
             ctlkeys := ctlkeys+'Ctrl{Right}+';
      end;
      delete(ctlkeys,length(ctlkeys),1);
      result := ctlkeys;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var
   msg : string;
   keyname, ctlkeys : string;
begin
    msg:='';
    ctlkeys := GetExtendedKeys(Shift);

    if key = vk_capital then
    begin
        if 1 and getkeystate(key)>0 then
           capslock.caption:='ON'
        else
           capslock.caption:='OFF';
    end;

    if key=vk_Numlock then
    begin
        if 1 and getkeystate(key)>0 then
           numlock.caption:='ON'
        else
           numlock.caption:='OFF';
    end;

    if key=vk_Scroll then
    begin
        if 1 and getkeystate(key)>0 then
            ScrollLock.caption:='ON'
        else ScrollLock.caption:='OFF';
    end;

    key:=0;
end;

Mengetahui frekuensi layar Monitor / Tool / Windows / Delphi 7 - XE
procedure TForm1.Button2Click(Sender: TObject);
var ov: TOSVersionInfo;
    vr: Integer;
begin
      ov.dwOSVersionInfoSize := SizeOf(ov);
      GetVersionEx(ov);
      if OV.dwPlatformID = VER_PLATFORM_WIN32_NT then
      begin
          vr := GetDeviceCaps(Form1.Canvas.Handle,VREFRESH);
          Label1.Caption := 'Frequence: '+ IntToStr(vr) + ' Hz';
      end;
End;

Menggambar garis padadekstop / Tool / Windows / Delphi 7 - XE
procedure TForm1.Button1Click(Sender: TObject);
var
   dc : hdc;
begin
    dc := GetDc(0);
    MoveToEx(Dc, 0, 0, nil);
    LineTo(Dc, 300, 300);
    ReleaseDc(0, Dc);
end;

Hotkey dengan dua tombol / Tool / Windows / Delphi 7 - XE
  private
    { Private declarations }
  public
    { Public declarations }
    procedure hotykey(var msg:TMessage); message WM_HOTKEY;
  end;

var
  Form1: TForm1;
  id, id2 : Integer;
implementation

{$R *.dfm}

procedure TForm1.hotykey(var msg:TMessage);
begin
     if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=81) then
     begin
          ShowMessage('Ctrl + Q ya beb !');
     end;
     if (msg.LParamLo=MOD_CONTROL) and (msg.LParamHi=82) then
     begin
          ShowMessage('Ctrl + R ya beb !');
     end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
     id := GlobalAddAtom('hotkey');
     RegisterHotKey(handle,id, mod_control, 81);
     id2 := GlobalAddAtom('hotkey2');
     RegisterHotKey(handle,id2, mod_control, 82);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
     UnRegisterHotKey(handle,id);
     UnRegisterHotKey(handle,id2);
end;

Macam macam tombol key down / Tool / Windows / Delphi 7 - XE
vk_LButton = $01;
vk_RButton= $02;
vk_Cancel= $03;
vk_MButton = $04;
vk_Back = $08;
vk_Tab= $09;
vk_Clear = $0C;
vk_Return = $0D;
vk_Shift = $10;
vk_Control = $11;
vk_Menu = $12;
vk_Pause = $13;
vk_Capital = $14;
vk_Escape = $1B;
vk_Space = $20;
vk_Prior= $21;
vk_Next= $22;
vk_End = $23;
vk_Home = $24;
vk_Left = $25;
vk_Up= $26;
vk_Right= $27;
vk_Down = $28;
vk_Select = $29;
vk_Print= $2A;
vk_Execute= $2B;
vk_SnapShot = $2C;
vk_Copy= $2C
vk_Insert = $2D;
vk_Delete = $2E;
vk_Help = $2F;
vk_NumPad0 = $60;
vk_NumPad1 = $61;
vk_NumPad2 = $62;
vk_NumPad3 = $63;
vk_NumPad4 = $64;
vk_NumPad5 = $65;
vk_NumPad6 = $66;
vk_NumPad7 = $67;
vk_NumPad8 = $68;
vk_NumPad9 = $69;
vk_Multiply = $6A;
vk_Add = $6B;
vk_Separator = $6C;
vk_Subtract= $6D;
vk_Decimal = $6E;
vk_Divide = $6F;
vk_F1 = $70;
vk_F2 = $71;
vk_F3 = $72;
vk_F4 = $73;
vk_F5 = $74;
vk_F6 = $75;134
vk_F7 = $76;
vk_F8 = $77;
vk_F9 = $78;
vk_F10 = $79;
vk_F11 = $7A;
vk_F12 = $7B;
vk_F13 = $7C;
vk_F14 = $7D;
vk_F15 = $7E;
vk_F16 = $7F;
vk_F17 = $80;
vk_F18 = $81;
vk_F19 = $82;
vk_F20 = $83;
vk_F21 = $84;
vk_F22 = $85;
vk_F23 = $86;
vk_F24 = $87;
vk_NumLock = $90;
vk_Scroll = $91;