Arsip: Buat Aplikasi tanpa form dan memakai timer

more 19 years ago
DeulleDo-X
He All ... Langsung aja
Aku ada masalah sedikit.. aku sedang buat program tanpa menggunakan form selanjutnya aku membutuhkan komponen timer, gimana yah solusinya..
nb : aku usahakan ukuran file applikasi saya dibawah 50 kb

more 19 years ago
kaka-delphi
Emang mo buat aplikasi apaan ?
form nya di hide aja atuh ! ataw bikin console application wakakakakakkakakkkkkaaakaka.....
Atau sedikit kerja keras pake window API, dijamin ukuran filenya di bawah 50 kb

more 19 years ago
deLogic
Bisa sekale...
1. jika Anda ingin memulai baru, create new project, jika sudha ad, langsung aja ke langkah 2..
2. terus remove semua unit yang mengandung form dari menu Project->Remove from project, defaultnya adalah Unit1 (Form1).
lalu bagaimana dengan TTimer...?? bisa juga, berikut snippetnya...
program Project1;
uses
Forms,
ExtCtrls,
Dialogs,
Classes;
type
TClassHelper = class
FExecuted : Integer;
FTimer : TTimer;
private
procedure ActionTimer(Sender: TObject);
public
constructor Create;
destructor Destroy;
end;
var
ClassHelper : TClassHelper;
IsRunning : Boolean;
{$R *.res}
{ TClassHelper }
procedure TClassHelper.ActionTimer(Sender: TObject);
begin
if FExecuted = 10 then // 10x pemanggilan
begin
FTimer.Enabled := False;
ShowMessage('Terminated');
IsRunning := False;
end
else
Inc(FExecuted);
end;
constructor TClassHelper.Create;
begin
FExecuted := 0;
FTimer := TTimer.Create(nil);
FTimer.OnTimer := ActionTimer;
FTimer.Interval := 1000; // eksekusi tiap 1 detik
FTImer.Enabled := True;
end;
destructor TClassHelper.Destroy;
begin
FTimer.Free;
end;
begin
Application.Initialize;
Application.Run;
IsRunning := True;
ClassHelper := TClassHelper.Create;
while IsRunning do
Application.ProcessMessages;
ClassHelper.Free;
Application.Terminate;
end.
saya create pake Delphi2006, file exe nya sekitar 410KB karena adanya uses Forms yang hasil kompilasinya cukup besar. jika Anda menghilangkan uses Dialogs dan ShowMessage, maka ukurannya menjadi sekitar 383KB. Nah untuk memperkecil file size, Anda bisa menggunakan UPX.
Memang ukuran akhir masih lebih dari 50KB, tapi masih tetap kecil. Jika Anda ingin lebih kecil lagi.. pilihan Anda adalah WindowsAPI.. atau.. ada yang mau mencoba KOL...??
Atau Anda buat aplikasi tipe console, tapi dengan sedikit perubahan pada kode karena console tidak mengenal obyek Application.
NB: kode diatas belum lulus tes MemoryLeak, optimalisasi dsb karena memang belum dilakukan.. hanya snippet aja, tapi run kok... :)
more 19 years ago
DeulleDo-X
thanks yanh atas bantuannya,...
KOL.. itu apaan sih, mungkin dapat membantu saya...........

more 19 years ago
deLogic
KOL = Key Objects Library, itu VCL versi Lite.. kayaknya udah pernah dibahas sekilas mengenai kompatibilitasnya belum lama ini deh, sayang saya lupa nama thread nya..

more 19 years ago
mat_koder
kode berikut bikin exe yang 9,5kb , so masih ada 40kb lagi utk kode laen.
program NoForm;
{$R *.RES}
uses
windows,messages;
const
TIMERINTERVAL = 1000; // 1000 milidetik
var
MyWindowClass : TWndClass;
MyWindowHandle : HWND;
msg : tagMSG;
TimerCount : integer;
procedure DoTimer;
begin
Inc(TimerCount);
if (TimerCount>5) then // lima kali aja....
PostQuitMessage(0); // quit program
MessageBox(MyWindowHandle,'Timer minta di-service!','Oooops',MB_OK);
end;
function MyWindowProc( // custom WndProc saya
ahWnd : HWND;
auMsg : Integer;
awParam : WPARAM;
alParam : LPARAM): Integer; stdcall;
begin
case auMSG of
WM_TIMER : DoTimer;
WM_DESTROY : PostQuitMessage(0);
end;
Result := DefWindowProc(ahWnd, auMsg, awParam, alParam);
end;
// nih dia procedure utamanya.........
begin
with MyWindowClass do
begin
style := 0;
lpfnWndProc := @MyWindowProc; // alamat custom WndProc saya
cbClsExtra := 0;
cbWndExtra := SizeOf(Pointer);
hInstance := 0;
hIcon := 0;
hCursor := 0;
hbrBackground := 0;
lpszMenuName := nil;
lpszClassName := 'Bla-bla-bla';
end;
if windows.RegisterClass(MyWindowClass)=0 then
Exit;
MyWindowHandle := CreateWindowEx(WS_EX_TOOLWINDOW,
MyWindowClass.lpszClassName,
'', { Window name }
WS_POPUP, { Window Style }
0, 0, { X, Y }
0, 0, { Width, Height }
0, { hWndParent }
0, { hMenu }
HInstance, { hInstance }
nil); { CreateParam }
if MyWindowHandle<>0 then begin
TimerCount:=0;
SetTimer(MyWindowHandle,0,TIMERINTERVAL,nil);
while GetMessage(msg,0,0,0) do
DispatchMessage(msg);
MessageBox(0,'Timer sdh 5 kali minta di-service , cukup sudah !','Selesai',MB_OK);
end;
end.
more ...
- Pages:
- 1
reply |
Report Obsolete
AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now:
https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 4 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 4 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 5 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 12 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 12 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 12 years ago
Random Topic
- dbnavigator,adoquery or storedprocedure
by alfian in Enginering more 19 years ago - tebak-tebakan
by _aa_ in OOT more 17 years ago - [Error] WARNING. Duplicate resource(s):
by Kecret in Hal umum tentang Pascal Indonesia more 17 years ago - Siapa yang mau???????????
by n3o_cybertech in Tutorial & Community Project more 17 years ago - form nutup sendiri kayak screen saver
by mbahdien in Tip n Trik Pemrograman more 17 years ago - cara membuat install package software sendiri
by m3llo in Tip n Trik Pemrograman more 17 years ago - Gimana caranya menampilkan listbox pad Tmemo
by RedsGrands in Bedah Kasus more 17 years ago - Code delphi untuk interface ke led display
by sp1d3r_n3tz in Enginering more 17 years ago - Bagaimana cara menyimpan username dan password di aplication
by purnomo2007 in Hal umum tentang Pascal Indonesia more 15 years ago - gmn cara buat printout nota
by artan in Hal umum tentang Pascal Indonesia more 18 years ago