home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
PROG_PAS
/
CTRL3D.ZIP
/
DEMO3D.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1994-01-02
|
3KB
|
135 lines
program DEMO3D;
uses
Strings,Wintypes,Winprocs,
Objects, OWindows, ODialogs, OStdDlgs,Bwcc,
Ctrl3D;
{$R demo3d.Res}
{$I demo3d.inc}
type
P3DApplication=^T3DApplication;
T3DApplication=
object(TApplication)
procedure InitMainWindow; virtual;
end;
P3DWindow=^T3DWindow;
T3DWindow=
object(TDialog)
constructor Init;
procedure SetupWindow; virtual;
procedure wmCtlColor(var Msg:TMessage); virtual wm_First+wm_CtlColor;
end;
PMainWindow=^TMainWindow;
TMainWindow=
object(TWindow)
constructor Init;
procedure miShowDialog(var Msg:TMessage); virtual cm_First+mi_ShowDialog;
procedure miExit(var Msg:TMessage); virtual cm_First+mi_Exit;
end;
var
App:T3DApplication;
procedure CenterWindow(hWindow: HWnd);
var
R: TRect;
StartX,
StartY : Integer;
Frame,
Caption: Integer;
begin
Frame := GetSystemMetrics(sm_CxFrame) * 2;
Caption := GetSystemMetrics(sm_CyCaption);
GetClientRect(HWindow, R);
StartX := ((GetSystemMetrics(sm_CxScreen) - (R.Right - R.Left)) div 2);
StartY := ((GetSystemMetrics(sm_CyScreen) - (R.Bottom - R.Top)) div 2);
MoveWindow(HWindow, StartX, StartY - ((Caption + Frame) div 2),
R.Right + Frame, R.Bottom + Frame + Caption, False);
end;
procedure T3DApplication.InitMainWindow;
begin
MainWindow:=New(PMainWindow,Init);
end;
constructor T3DWindow.Init;
var
CP:PControl;
begin
inherited Init(App.MainWindow,PChar(dlg_3DTest));
CP := New(PEdit3D, InitResource(@Self, id_3DTest1,25));
CP:=New(PComboBox3D,InitResource(@Self,cb_3DTest2,25));
CP:=New(PListBox3D,InitResource(@Self,lst_3DTest3));
end;
procedure T3DWindow.SetupWindow;
var
DC:HDC;
begin
inherited SetupWindow;
CenterWindow(hWindow);
end;
procedure T3DWindow.wmCtlColor(var Msg:TMessage);
begin
case Msg.lParamHi of
ctlcolor_ListBox:
begin
SetTextColor(Msg.wParam,RGB(0,0,0));
SetBkColor(Msg.wParam,RGB(255,255,255));
Msg.Result:=GetStockObject(WHITE_BRUSH);
end;
else
DefWndProc(Msg);
end;
end;
constructor TMainWindow.Init;
var
width,height:integer;
begin
inherited Init(nil,'3D Demo');
width:=GetSystemMetrics(sm_cxScreen);
height:=GetSystemMetrics(sm_cyScreen);
with Attr do
begin
X:=width div 10;
Y:=(height div 5);
H:=(height div 5)*3;
W:=(width div 5)*4;
Style:=ws_SizeBox+ws_SysMenu+ws_MinimizeBox+ws_MaximizeBox;
Menu:=LoadMenu(hInstance,MakeIntResource(mnu_MainMenu));
end;
end;
procedure TMainWindow.miShowDialog(var Msg:TMessage);
begin
App.ExecDialog(New(P3DWindow,Init));
end;
procedure TMainWindow.miExit(var Msg:TMessage);
begin
CloseWindow;
end;
begin
App.Init('3D Test');
App.Run;
App.Done;
end.