{ I 've seen a lot of question here arround, how to display a bitmap befor starting a program in Windows. Well, this program shows a bitmap without opening a window. I 'll send you this program for borland pascal. (Those who use TPW will have to change the USES declaration) ************************************************************** * Bitmap befor starting the program without opening a window * ************************************************************** } PROGRAM Sample; USES Wintypes, Winprocs, WinCrt, Objects, OWindows, ODialogs; {$R BITMAP.RES } TYPE PClipWin = ^TClipWin; TClipWin = OBJECT (TWindow) Constructor Init (AParent : PWindowsObject; ATitle : PChar; AMenu : HMenu); Procedure GetWindowClass (VAR AWndClass : TWndClass); VIRTUAL; Function GetClassName : PChar; VIRTUAL; Procedure SetupWindow; VIRTUAL; END; TClipApp = OBJECT (TApplication) Procedure InitMainWindow; VIRTUAL; END; { *** TClipWin *** } Constructor TClipWin.Init (AParent : PWindowsObject; ATitle : PChar; AMenu : HMenu); { ** The main window in this example is a fixed window which cannot be resized or moved ** } BEGIN Inherited Init (AParent, ATitle); { ** The sample main window will be open over the whole screen ** } Attr.X := -1; Attr.Y := -1; Attr.W := GetSystemMetrics (sm_CxScreen) + 3; Attr.H := GetSystemMetrics (sm_CyScreen) + 3; Attr.Style := WS_SYSMENU OR WS_MINIMIZEBOX OR WS_MAXIMIZE; { ** The menu must be defined in the resource ** } Attr.Menu := AMenu; END; Procedure TClipWin.GetWindowClass (VAR AWndClass : TWndClass); BEGIN Inherited GetWindowClass (AWndClass); { ** Also the icon of the program must be defined in the resource ** } AWndClass.HIcon := LoadIcon (HInstance, 'MAINICON'); { ** This gray background is a standard which is not heavy colored ** } AWndClass.HBrBackGround := CreateSolidBrush (RGB (128, 128, 128)); END; Function TClipWin.GetClassName : PChar; BEGIN GetClassName := 'Bitmap Sample'; END; Procedure TClipWin.SetupWindow; BEGIN Inherited SetupWindow; { ** DeleteMenu kills the menu point 'MOVE / RESIZE'. The windows can now not be resized or moved. It is fixed ** } DeleteMenu (GetSystemMenu(HWindow, FALSE), 1, MF_BYPOSITION); END; { *** TClipApp *** } Procedure TClipApp.InitMainWindow; BEGIN CmdShow := SW_SHOWMAXIMIZED; MainWindow := New(PClipWin, Init(NIL, 'Bitmap Sample Window', LoadMenu (HInstance, 'MAINMENU'))); END; VAR ClipApp : TClipApp; DC, MemDC : hDC; Bitmap, OldBitmap : HBitmap; BM : TBitmap; Rect : TRect; H, W : Integer; Ticks : LongInt; BEGIN { ** !! DISPLAY THe BITMAP BEFOR APPLICATION.INIT !! ** } { ** Create the display context ** } DC := CreateDC('DISPLAY',nil,nil,nil); { ** Load the bitmap stored in the resource ** } Bitmap := LoadBitmap(HInstance, MakeIntResource('STARTBITMAP')); { ** Memory context compatibel to the display context ** } MemDC := CreateCompatibleDC(DC); { ** Save the actual context ** } OldBitmap := SelectObject(MemDC, Bitmap); { ** Get the bitmap ** } GetObject (Bitmap, SizeOf(BM),@BM); { ** Get height and width of the screen ** } H := GetSystemMetrics (sm_CyScreen); W := GetSystemMetrics (sm_CxScreen); { ** Copy the resource bitmap into the memory context and move it exactly in the middle of the screen !! ** } BitBlt (DC,W DIV 2-(BM.bmWidth DIV 2), H DIV 2-(BM.bmHeight DIV 2), BM.bmWidth, BM.bmHeight, MemDC, 0, 0, SRCCopy); { ** Holds the system for 5 seconds, to study the bitmap. 5000 = milliseconds ** } Ticks := GetTickCount; Repeat Until ABS (Ticks - GetTickCount) > 5000; { ** Remove all bitmaps and contexts ** } DeleteObject (SelectObject (MemDC, OldBitmap)); DeleteDC (MemDC); DeleteDC (DC); { ** Now start the main window ** } ClipApp.Init('Bitmap Sample Window'); ClipApp.Run; ClipApp.Done; END. ----------------------- CUT IT -- CUT IT ----------------------------- This example will show the resource bitmap befor the main window, without opening an other window. I made this program as easy as possible. The palette is not included, but a 256 colored palette will be added (selectpalette - realizepalette) without difficulties. Ofcourse a normal bitmap (HDD) could also be used instead of the resource bitmap