Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zeichnen auf MDI-Form... (https://www.delphipraxis.net/100859-zeichnen-auf-mdi-form.html)

Progman 5. Okt 2007 12:12

Re: Zeichnen auf MDI-Form...
 
vielleicht das ganze auch in Resize der TreeView ausführen, sofern die auch dieses Ereignis hat? Ich kann im Moment nicht nachschauen.

bingo72 5. Okt 2007 12:21

Re: Zeichnen auf MDI-Form...
 
Danke aber ändert nichts am Effekt...

shmia 5. Okt 2007 12:57

Re: Zeichnen auf MDI-Form...
 
Zitat:

Zitat von bingo72
Ich habe eine MDI-Form auf der links ein MenüTree ist, der in seiner Breite verschiebbar ist. Auf der verbleibenden Fläche der Applikation, soll ein Hintergrundlogo mittig zentriert plaziert werden und die Fläche selbst eine Hintergrundfarbe bekommen.
Die Applikation selbst ist in seiner Größe ebenfalls veränderbar.

Du brauchst die Komponente MDIWallPaper.
Ansonsten hast du zu viel Stress und dein MDI Hauptformular wird mit Low-Level Code zugemüllt.
http://www.fortunecity.com/skyscrape...86/downdir.htm

bingo72 5. Okt 2007 13:56

Re: Zeichnen auf MDI-Form...
 
Hallo!!

Ich hab mir die Komponente angesehen, aber nichts gefunden, was ich nicht ohnedies jetzt schon mache. Mir geht es momentan nicht darum, einen möglichst schlanken Code zu erzeugen, sondern eher mal das Problem zu lösen....trozdem danke!!

LG
Thomas

bingo72 8. Okt 2007 06:43

Re: Zeichnen auf MDI-Form...
 
Ich habs dann so gelöst, daß ich auf meiner Form im OnPaint und OnResize die DrawBackground-Methode auslöse und die MainClientWndProc hab ich folgendermaßen abgeändert:
Delphi-Quellcode:
case Msg of WM_ERASEBKGND:
      begin
        lDC := TWMEraseBkGnd(Message).DC;
        lBrushOld := SelectObject(lDC, fBkBrush);
        FillRect(lDC, ClientRect, fBkBrush);
        SelectObject(lDC, lBrushOld);
        Result := 1;
        DrawBackground;
      end;
      WM_SIZE:
        begin
          lDC := TWMSize(Message).Msg;
          lBrushOld := SelectObject(lDC, fBkBrush);
          FillRect(lDC, ClientRect, fBkBrush);
          SelectObject(lDC, lBrushOld);
          Result := 1;
        end;
      WM_PAINT:
        begin
          lDC := TWMPaint(Message).DC;
          lBrushOld := SelectObject(lDC, fBkBrush);
          FillRect(lDC, ClientRect, fBkBrush);
          SelectObject(lDC, lBrushOld);
          Result := 1;
        end else begin
        Result := CallWindowProc (fPrevClientProc, ClientHandle, Msg, wParam, lParam);
      end;
    end;
Damit sieht es sehr gut aus... :thumb:

Sidorion 8. Okt 2007 14:09

Re: Zeichnen auf MDI-Form...
 
Mal ganz blöd gefragt: Warum setzt Du die TImage-Komponente nicht auf alClient, stretch=false und lädst Dein Bild da rein? Da muss prinzipiell keine Zeile extra Code geschrieben werden und du löst ganz nebenbei auch dein MDI-Child-Zeichenproblem.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz