![]() |
Re: ClientRect begrenzen
Im Moment habe ich das Gefühl, dass der Schlüssel zur Lösung in diesem Zitat aus der OH für ClientHeight, wie schon weiter oben angeführt, liegt:
Zitat:
Zitat:
Klingelts da bei jemanden? (Bei mir nicht :cry: ) Gruß oki |
Re: ClientRect begrenzen
Tja, leider hab ich es über das Parent-Control noch nicht hin bekommen. :cry:
Aus diesem Grund hab ich es jetzt so gemacht, dass beim Verschieben des Controls geprüft wird, ob es sich im ClientRect des Parents befindet. Wenn nicht, dann wird die Position korriegiert. Gruß oki |
Re: ClientRect begrenzen
Zitat:
dein problem ist jetzt nur mehr, das du deine zeichenoperation auch in den NC Bereich verlegen mußt
Delphi-Quellcode:
Da du ja den ClientBeriech verkleinert hast, mußt du nun deine sachen (den Header und rahmen) in den NC Bereich verlegenprocedure WMNCPaint(var Msg: TWMNCPaint); message WM_NCPAINT; procedure TfrMDIChild.WMNCPaint(var Msg: TWMNCPaint); var DC : HDC; iCanvas : TCanvas; begin iCanvas := TCanvas.Create; DC := GetWindowDC(Handle) iCanvas.Handle := DC; FormNCPaint(iCanvas); <<< hier dann die zeichenroutine auf den Canvas ReleaseDC(Handle, DC); iCanvas.free; Msg.Result := 0; end; |
Re: ClientRect begrenzen
Hi Gruber_Hans_12345,
auch dir herzlichen Dank für deine Antworten. Nach dem zweiten Überlegen ist dein Codevorschlag wirklich interessant. Leider trifft er aber nicht den Kern meines aktuellen Problemes. Ich versuch es noch mal zu erklären. Mir geht es an dieser Stelle nicht darum, dass ich in meiner Compo in den definierten Clientbereich zeichne. Ich möchte, dass andere Kompos von mir zur Laufzeit nur im festgelegten Clientbereich platziert und verschoben werden können. Kann es sein, dass dein Codevorschlag ein Zeichnen zwischen WindowRect und ClientRect andeutet? Also sozusagen das Control per Hand zeichnen und den neuen Clientbereich auslassen. Somit würde das Zeichnen eventuell über den Rand geschobene Controls übermalen und somit den Eindruck erwecken, dass sie nur im ClientBereich sichtbar sind. Dann noch mal gefragt, was verstehst du unter NC-Bereich? Ich würde dann ja non-Client vermuten. Dank und Gruß oki |
Re: ClientRect begrenzen
ja, NC ist der Non Client Bereich
und ich habe diesen code dazu verwendet, um den Non-ClientBereich in meinem Formular zu vergrößern. das bedeutet, das jedes Panel, das bei 0,0 platziert wird, oder das mit Align = alClient verwendet wird, nun nur mehr in diesem ClientBereich platziert wird dh wird der NonClient Bereich vergrößert (der obige rand zb) dann rutschen alle controls nach unten, und können nicht in den NonClient Bereich verschoben werden. |
Re: ClientRect begrenzen
Klar, begriffen!
gruß oki |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr. |
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 by Thomas Breitkreuz