Bild im MDI-Client Bereich anzeigen |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
Zuerst musst Du ein Image auf das Formular schmeißen und mit einem Bitmap füllen. Jetzt ändere die Eigenschaft FormStyle auf fsMDIForm. Schreibe in die Private-Deklaration folgendes:
FClientInstance : TFarProc;
FPrevClientProc : TFarProc;
procedure ClientWndProc(var message: TMessage);
{ Private-Deklarationen }
In den Implementation-Teil kommt folgende Procedure, die wir gerade deklariert haben:
var
Dc : hDC;
Row : Integer;
Col : Integer;
begin
with message do
case Msg of
WM_ERASEBKGND:
begin
Dc := TWMEraseBkGnd(message).Dc;
for Row := 0 to ClientHeight div
Image1.Picture.Height do
for Col := 0 to ClientWidth div
Image1.Picture.Width do
BitBlt(Dc,
Col * Image1.Picture.Width,
Row * Image1.Picture.Height,
Image1.Picture.Width,
Image1.Picture.Height,
Image1.Picture.Bitmap.Canvas.Handle,
0,
0,
SRCCOPY);
Result := 1;
end;
else
Result := CallWindowProc(FPrevClientProc,
ClientHandle,
Msg,
wParam,
lParam);
end;
end;
Wenn Du jetzt noch ins OnCreate-Ereignis von Form1 das reinschreibst:
FPrevClientProc := Pointer(GetWindowLong(ClientHandle,
GWL_WNDPROC));
SetWindowLong(ClientHandle,
GWL_WNDPROC,
LongInt(FClientInstance));
und ein zweites Formular erstellst, dessen FormStyle-Eigenschaft auf fsMDIChild steht, dann hast Du eine MDI-Anwendung mit Wallpaper.
- Textbildschirme fürs Debuggen nutzen
- Bildschirmschoner programmieren
- Fenster unter anderen Bildschirmauflösungen und Schriftgröße
- Ein Bild drucken
- Formular als Bitmap in die Zwischenablage kopieren
- Komponenten vom Formular entfernen
- Formulare manuell zentrieren
- Alternative Formularformen
- Anwendung im Vollbild anzeigen lassen
- Formular wie ein Balloon anzeigen