Guys,
coba lihat program di bawah itu.
Ada pemakaian variabel hPrevInst tapi gak ada deklarasinya.
Kok bisa jalan ya?? Bingung nih ... ^^;
BTW, hasil EXE-nya cuma 7 Kb ya ... jauh sekali dibanding kalo pake TForm
(200++ Kb).
Salam,
Sintar.
==============
{*******************************************************}
{ Platform : 32Bit Windows }
{ Compiler : Delphi 2, 3, 4, 5, 6 }
{ }
{ Description : Generic Object Pascal Application }
{ Copyright : � 2002 Thomas Bigler }
{ }
{*******************************************************}
{$A+,B-,C-,D-,E-,F-,G+,H+,I-,J+,K-,L-,M-,N-,O-,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y-
,Z1}
{$MINSTACKSIZE $00004000}
{$MAXSTACKSIZE $00100000}
{$IMAGEBASE $00400000}
{$APPTYPE GUI}
{$HINTS ON}
{$WARNINGS ON}
PROGRAM Generic;
USES Windows,Messages;
{$r GenericX.res}
CONST
AppName='Delphi-Generic';
ClsName='DelphiGenericCls';
cm_New = 101;
cm_Open = 102;
cm_Save = 103;
cm_SaveAs = 104;
cm_About = 901;
cm_Close = 199;
FUNCTION DProc(D:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;
BEGIN
DProc:=1;
CASE MSG OF
wm_InitDialog :
BEGIN
SetClassLONG(D,GCL_HICON,LoadIcon(hInstance,'i'));
SetWindowText(d,'Input Dialog Example');
exit;
END;
wm_Command :
CASE LoWord(Wparam) OF
idOK,id_Cancel :BEGIN EndDialog(D,wparam);exit;END;
END;
END;DProc:=0;
END;
PROCEDURE Paint(w:hwnd);
VAR
DC: hDC;
ps: TPaintStruct;
r : TRect;
i : Integer;
s : ARRAY[0..4000] of char;
fh: HFont;
BEGIN
DC:=BeginPaint(w,ps);GetClientRect(w,r);
inc(r.left,8);inc(r.top,8);dec(r.bottom,8);dec(r.right,8);
framerect(dc,r,GetStockObject(Gray_BRUSH));
inc(r.left,4);inc(r.top,4);dec(r.bottom,4);dec(r.right,4);
SetBkMode(dc,transparent);SetTextColor(dc,$00ff0000);SetBkColor(dc,$00c0c0c0
);
lStrCpy(s,#0);
FOR i:=0 to 100 DO lStrCat(s,'Hello world, this is Delphi-Generic! ');
fh:=Createfont(-14,0,0,0,400,0,0,0,Ansi_Charset,Out_Default_Precis,
clip_Default_Precis,Draft_Quality,variable_Pitch OR ff_swiss,'Tahoma');
fh:=SelectObject(dc,fh);
DrawText(DC,s,-1,r,
DT_WordBreak or DT_EXPANDTABS or DT_NOPREFIX or DT_TABSTOP or
MakeWord(0,14));
DeleteObject(SelectObject(dc,fh));
EndPaint(W,ps);
END;
FUNCTION
WindowProc(W:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;
BEGIN
WindowProc:=0;
CASE Msg OF
WM_Paint: Paint(w);
WM_Keydown:
IF (GetKeyState(vk_Control)<0) THEN BEGIN // additional
accelerators...
CASE LoWord(wParam) OF
Ord('N') : SendMessage(w,wm_Command,cm_New,0);
Ord('O') : SendMessage(w,wm_Command,cm_Open,0);
Ord('S') : SendMessage(w,wm_Command,cm_Save,0);
END;
END ELSE BEGIN
CASE LoWord(wParam) OF
vk_F1 : SendMessage(w,wm_Command,cm_About,0);
END;
END;
WM_Command:
CASE LoWord(WParam) OF
cm_New : DialogBox(HInstance,'INPUT',w,@DProc);
cm_Open ,
cm_Save ,
cm_SaveAs : MessageBox(w,'Not implemented.',AppName,mb_Iconhand or
mb_OK);
cm_About : MessageBox(w,AppName,'Info',mb_IconInformation or
mb_OK);
cm_Close : SendMessage(w,wm_Close,0,0);
END;
WM_Destroy: PostQuitMessage(0); // important!
ELSE WindowProc:=DefWindowProc(W,Msg,wParam,lParam);
END;
END;
PROCEDURE WinMain;
CONST
WndClas: TWndClassEx=(
cbSize:0; style:0; lpfnWndProc:@WindowProc; cbClsExtra:0; cbWndExtra:0;
hInstance:0;
hIcon:0; hCursor:0; hbrBackground:0; lpszMenuName:AppName;
lpszClassName:ClsName; hIconsm:0);
VAR
Window:hwnd;
Msg: TMsg;
Accs:THandle;
BEGIN
IF hPrevInst=0 THEN BEGIN
WndClas.cbSize:=Sizeof(TWndClassEx);
WndClas.Style:=cs_HRedraw or cs_VRedraw;
WndClas.lpfnWndProc:[EMAIL PROTECTED];
WndClas.hInstance:=HInstance;
WndClas.hIcon:=LoadIcon(hinstance,'i');
WndClas.hCursor:=LoadCursor(0, IDC_Arrow);
WndClas.hbrBackground:=GetStockObject(white_brush);
WndClas.lpszMenuName:='MENU_1';
WndClas.lpszClassName:=clsName;
IF RegisterClassEx(WndClas)=0 THEN Halt(255);
END;
Window:=CreateWindowEx($200,clsName,AppName,ws_OverlappedWindow,
Integer(cw_Usedefault),Integer(cw_Usedefault),
Integer(cw_Usedefault),Integer(cw_Usedefault),
0,0,hinstance,NIL);
ShowWindow(Window, sw_Shownormal);UpdateWindow(Window);
Accs:=LoadAccelerators(hInstance,'MENU_1');
WHILE GetMessage(Msg,0,0,0) DO
IF TranslateAccelerator(Window,Accs,Msg)=0 THEN BEGIN
TranslateMessage(Msg);DispatchMessage(Msg);
END;
END;
BEGIN
WinMain;
END.
{$WARNINGS off} // so I can put the resource-file here:
// Save contents below the line as GenericX.rc
// Create a RES-file: BRCC32.EXE -r -v -w32 genericx.rc
//--------------------------------------------------------------------------
----------------------
MENU_1 MENU
{
POPUP "&File"
{
MENUITEM "&New\tCtrl+N", 101
MENUITEM "O&pen...\tCtrl+O", 102
MENUITEM "&Save\tCtrl+S", 103
MENUITEM "Save &as...", 104
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4", 199
}
MENUITEM "&?", 901
}
INPUT DIALOG 15, 21, 220, 60
STYLE DS_MODALFRAME | 0x1004L | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
FONT 8, "MS Sans Serif"
{
CONTROL "", 101, "EDIT", ES_LEFT | WS_CHILD | WS_VISIBLE | WS_BORDER |
WS_TABSTOP, 10, 15, 200, 12
CONTROL "OK", 1, "BUTTON", BS_DEFPUSHBUTTON | WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 50, 40, 50, 14
CONTROL "Cancel", 2, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 117, 40, 50, 14
}
MENU_1 ACCELERATORS
{
VK_F1, 901, VIRTKEY
"N", 101, VIRTKEY, CONTROL
"O", 102, VIRTKEY, CONTROL
"S", 103, VIRTKEY, CONTROL
}
I ICON
{
'00 00 01 00 03 00 20 20 10 00 00 00 00 00 E8 02'
'00 00 36 00 00 00 20 20 02 00 00 00 00 00 30 01'
'00 00 1E 03 00 00 10 10 10 00 00 00 00 00 28 01'
'00 00 4E 04 00 00 28 00 00 00 20 00 00 00 40 00'
'00 00 01 00 04 00 00 00 00 00 80 02 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 80 00 00 80 00 00 00 80 80 00 80 00'
'00 00 80 00 80 00 80 80 00 00 C0 C0 C0 00 80 80'
'80 00 00 00 FF 00 00 FF 00 00 00 FF FF 00 FF 00'
'00 00 FF 00 FF 00 FF FF 00 00 FF FF FF 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78'
'88 88 88 88 88 88 88 88 88 88 88 88 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'7F FF FF FF FF FF FF FF FF FF FF F7 80 00 00 7F'
'78 88 88 88 88 88 88 88 88 88 88 87 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'7C CC CC CC CC CC CC CC CC CC CC C7 80 00 00 7F'
'7C CC CC CC CC CC CC CC CC CC CC C7 80 00 00 7F'
'7C CC CC CC CC CC CC CC CC CC CC C7 80 00 00 7F'
'77 77 77 77 77 77 77 77 77 77 77 77 80 00 00 7F'
'FF FF FF FF FF FF FF FF FF FF FF FF 80 00 00 77'
'77 77 77 77 77 77 77 77 77 77 77 77 70 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 28 00'
'00 00 20 00 00 00 40 00 00 00 01 00 01 00 00 00'
'00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 FF FF FF 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 1F FF FF F8 10 00 00 08 17 FF FF E8 17 FF'
'FF E8 17 FF FF E8 17 FF FF E8 17 FF FF E8 17 FF'
'FF E8 17 FF FF E8 17 FF FF E8 17 FF FF E8 17 FF'
'FF E8 17 FF FF E8 17 FF FF E8 17 FF FF E8 10 00'
'00 08 17 FF FF E8 10 00 00 08 10 00 00 08 10 00'
'00 08 10 00 00 08 1F FF FF F8 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 C0 00'
'00 03 C0 00 00 03 C0 00 00 03 C0 00 00 03 FF FF'
'FF FF FF FF FF FF FF FF FF FF FF FF FF FF 28 00'
'00 00 10 00 00 00 20 00 00 00 01 00 04 00 00 00'
'00 00 C0 00 00 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 80 00 00 80'
'00 00 00 80 80 00 80 00 00 00 80 00 80 00 80 80'
'00 00 C0 C0 C0 00 80 80 80 00 00 00 FF 00 00 FF'
'00 00 00 FF FF 00 FF 00 00 00 FF 00 FF 00 FF FF'
'00 00 FF FF FF 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 88'
'88 88 88 88 88 00 07 F7 77 77 77 77 78 00 07 F7'
'77 77 77 77 78 00 07 F7 77 77 77 77 78 00 07 F7'
'88 88 88 88 78 00 07 F7 77 77 77 77 78 00 07 F7'
'CC CC CC CC 78 00 07 F7 CC CC CC CC 78 00 07 F7'
'77 77 77 77 78 00 07 FF FF FF FF FF F8 00 07 77'
'77 77 77 77 77 00 00 00 00 00 00 00 00 00 00 00'
'00 00 00 00 00 00 FF FF 00 00 FF FF 00 00 80 01'
'00 00 80 01 00 00 80 01 00 00 80 01 00 00 80 01'
'00 00 80 01 00 00 80 01 00 00 80 01 00 00 80 01'
'00 00 80 01 00 00 80 01 00 00 80 01 00 00 FF FF'
'00 00 FF FF 00 00'
}
1 VERSIONINFO
FILEVERSION 1, 0, 0, 0
PRODUCTVERSION 1, 0, 0, 0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
{
BLOCK "StringFileInfo"
{
BLOCK "080704E4"
{
VALUE "CompanyName", "http://home.tiscalinet.ch/t.bigler/\000\000"
VALUE "FileDescription", "Delphi-Generic � Freeware\000\000"
VALUE "FileVersion", "1.0.0.0\000\000"
VALUE "InternalName", "Generic\000\000"
VALUE "LegalCopyright", "Freeware, � 1995-2002 Thomas Bigler\000\000"
VALUE "OriginalFilename", "Generic.exe\000\000"
VALUE "ProductName", "Bigler's Utilities\000\000"
VALUE "ProductVersion", "1.0.0.0\000\000"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 2055, 1252
}
}
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Inkjet cartridges up to 80% off. HP, Epson, Lexmark--we have your brand.
Free shipping on every order to the U.S. and Canada! Excellent service.
http://www.c1tracking.com/l.asp?cid=5510
http://us.click.yahoo.com/QWB0QC/.eUGAA/ySSFAA/i7folB/TM
---------------------------------------------------------------------~->
Berlangganan: [EMAIL PROTECTED]
Stop Berlangganan: [EMAIL PROTECTED]
Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED]
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/