Arsip: Buat Aplikasi tanpa form dan memakai timer
more 20 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 20 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 20 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 20 years ago
DeulleDo-X
thanks yanh atas bantuannya,...
KOL.. itu apaan sih, mungkin dapat membantu saya...........
more 20 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 5 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 5 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 5 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 6 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 13 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 13 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 13 years ago
Random Topic
- acces violation?
by benyy in Tip n Trik Pemrograman more 19 years ago - Web Service dan ADO....?
by johnizzy in Tip n Trik Pemrograman more 17 years ago - i bisa menekan tombol applikasi lain di luar delphi
by blackshield in Tip n Trik Pemrograman more 17 years ago - Validasi Huruf
by saysansay in Hal umum tentang Pascal Indonesia more 20 years ago - (ASK) Ngambil HTTP Response tanpa tunggu
by fcomputer in Network, Files, I/O & System more 14 years ago - hitung interval waktu penekanan tombol keyboard?
by imunk in MySQL more 20 years ago - Penjualan Vivo Livo
by noviana in Tip n Trik Pemrograman more 18 years ago - jaket - update biaya pengiriman
by yayaretina in Tutorial & Community Project more 16 years ago - Scaling Report (QuickReport)
by dianovh in Reporting more 17 years ago - serba-serbi unicode
by pebbie in Tip n Trik Pemrograman more 18 years ago