Ditulis oleh arifw di/pada Kamis, 24 April 2008
var
Form1: TForm1;
Canv: TCanvas;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Canv := TCanvas.Create;
Canv.Handle := GetWindowDC(0);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Canv.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Canv.pen.Color := clred;
Canv.pen.Width := 20;
Canv.moveto(Screen.Width, 2);
Canv.lineto(2, 2);
Canv.lineto(2, Screen.Height);
Canv.lineto(Screen.Width, Screen.Height);
Canv.lineto(Screen.Width, 2);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Canv.Font.Name := ‘Arial’;
Canv.Font.Size := 55;
Canv.Font.Color := clgreen;
Canv.Brush.Style := bsclear;
Canv.textout(240, Screen.Height div 2 – 30, ‘Hello to Screen !’);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
myBitmap: TBitmap;
begin
myBitmap := TBitmap.Create;
try
myBitmap.LoadFromFile(‘MyImage.bmp’);
Canv.draw(100, 100, myBitmap);
finally
myBitmap.Free;
end;
Ditulis dalam Delphi, Graphic, Programming | Bertanda: Delphi, Graphic | Leave a Comment »
Ditulis oleh arifw di/pada Kamis, 24 April 2008
const
SERVICE_KERNEL_DRIVER = $00000001;
SERVICE_FILE_SYSTEM_DRIVER = $00000002;
SERVICE_ADAPTER = $00000004;
SERVICE_RECOGNIZER_DRIVER = $00000008;
SERVICE_DRIVER =
(SERVICE_KERNEL_DRIVER or
SERVICE_FILE_SYSTEM_DRIVER or
SERVICE_RECOGNIZER_DRIVER);
SERVICE_WIN32_OWN_PROCESS = $00000010;
SERVICE_WIN32_SHARE_PROCESS = $00000020;
SERVICE_WIN32 =
(SERVICE_WIN32_OWN_PROCESS or
SERVICE_WIN32_SHARE_PROCESS);
SERVICE_INTERACTIVE_PROCESS = $00000100;
SERVICE_TYPE_ALL =
(SERVICE_WIN32 or
SERVICE_ADAPTER or
SERVICE_DRIVER or
SERVICE_INTERACTIVE_PROCESS);
uses WinSvc;
function ServiceGetList(
sMachine : string;
dwServiceType,
dwServiceState : DWord;
slServicesList : TStrings )
: boolean;
const
cnMaxServices = 4096;
type
TSvcA = array[0..cnMaxServices]
of TEnumServiceStatus;
PSvcA = ^TSvcA;
var
j : integer;
schm : SC_Handle;
nBytesNeeded,
nServices,
nResumeHandle : DWord;
ssa : PSvcA;
begin
Result := false;
schm := OpenSCManager(
PChar(sMachine),
Nil,
SC_MANAGER_ALL_ACCESS);
if(schm > 0)then
begin
nResumeHandle := 0;
New(ssa);
EnumServicesStatus(
schm,
dwServiceType,
dwServiceState,
ssa^[0],
SizeOf(ssa^),
nBytesNeeded,
nServices,
nResumeHandle );
for j := 0 to nServices-1 do
begin
slServicesList.
Add( StrPas(
ssa^[j].lpDisplayName ) );
end;
Result := true;
Dispose(ssa);
// close service control
// manager handle
CloseServiceHandle(schm);
end;
end;
ServiceGetList( ”,
SERVICE_WIN32,
SERVICE_STATE_ALL,
ListBox1.Items )
Author: Alexander Savchev
Ditulis dalam Delphi, Programming, System Information | Bertanda: Delphi, System Information | Leave a Comment »
Ditulis oleh arifw di/pada Selasa, 22 April 2008
Jika Anda sedang tersambung pada Internet, Domain Name Server (DNS) biasanya diminta untuk diganti ke alamat numerik IP addresses — perpindahan www.chami.com ke 1.2.3.4 contohnya.
Jika Anda butuh untuk mengganti secara dinamis DNS server anda melalui program, anda bisa melakukannya dengan menggunakan fungsi “SetTCPIPDNSAddresses()” dengan daftar alamat IP DNS dengan pemisah satu spasi.
Menggunakan Registry;
procedure
SaveStringToRegistry_LOCAL_MACHINE(
sKey, sItem, sVal : string );
var
reg : TRegIniFile;
begin
reg := TRegIniFile.Create( ” );
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.WriteString(
sKey, sItem, sVal + #0 );
reg.Free;
end;
Listing #1 : Delphi code. Download
registry (0.3 KB).
procedure
SetTCPIPDNSAddresses(
sIPs : string );
begin
//
// if using Windows NT
//
SaveStringToRegistry_LOCAL_MACHINE(
‘SYSTEMCurrentControlSet’ +
‘ServicesTcpipParameters’,
‘NameServer’,
sIPs );
//
// Pada Windows 95
//
SaveStringToRegistry_LOCAL_MACHINE(
‘SYSTEMCurrentControlSet’ +
‘ServicesVxDMSTCP’,
‘NameServer’,
sIPs );
end;
Listing #2 : Delphi code. Download
setdns (0.33 KB).
Contohnya, Jika Anda ingin merubah 2 alamat DNS server — 1.2.3.4 dan 5.6.7.8 maka fungsi yang bisa dipanggil function :
SetTCPIPDNSAddresses(
‘1.2.3.4 5.6.7.8′ );
Listing #3 : Delphi code. Download
sample (0.17 KB).
Ditulis dalam Delphi, Programming | Bertanda: Delphi, Delphi 2.x, Delphi 3.x, Win32, Functions, Networking, Windows NT, Windows NT 3.x, Windows NT 4.x, Windows, Windows 95 | Leave a Comment »
Ditulis oleh arifw di/pada Selasa, 22 April 2008
Ingin tahu apakah fitur auto hide pada Windows taskbar sedang enabled? Dibawah ini fungsi sederhana untuk memeriksanya, ditulis pada bahasa C / C++ dan Delphi.
Delphi CODE
uses ShellAPI;
(*
Hasil TRUE jika auto hide taskbar adalah on.
if(IsTaskBarautoHideOn)then
begin
// auto hide ON
end;
*)
function IsTaskbarAutoHideOn : boolean;
var
ABData : TAppBarData;
begin
ABData.cbSize := sizeof(ABData);
Result :=
(SHAppBarMessage(ABM_GETSTATE, ABData)
and ABS_AUTOHIDE) > 0;
end;
Listing #1 : Delphi code. Download tbah.pas (0.36 KB).
Kode C / C++
//
// Hasil >0 jika auto hide taskbar on.
//
int IsTaskbarAutoHideOn()
{
APPBARDATA ABData;
ABData.cbSize = sizeof(ABData);
return
SHAppBarMessage(ABM_GETSTATE, &ABData)
& ABS_AUTOHIDE;
}
Listing #2 : C/C++ code. Download tbah.cpp (0.31 KB).
Ditulis dalam C / C++, Delphi, Programming | Bertanda: Delphi, C Language, C++, C++Builder, Delphi 2.x, Delphi 3.x, Delphi 4.x, Win32 | Leave a Comment »
Ditulis oleh arifw di/pada Jumat, 1 Februari 2008
Dewasa ini perkembangan dunia animasi begitu hebat dengan hadirnya Macromedia Flash… Bagaimana memadukan program Delphi dengan memainkan file flash (*.swf). Untuk mengoptimalkan program yang kita buat, akan sangat bagus jika program kita dilengkapi dengan animasi hidup ala flash. Bagaimana cara membuat program untuk menjalankan file flash?… Baca entri selengkapnya »
Ditulis dalam Programming | Bertanda: ActiveX, Delphi, flash, form, IDE, ocx, pallet, Plug-in, swf, swflash | 3 Komentar »