![]() |
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
Ja, da hast du wohl recht. Ich fang erstmal ganz unten an...Das wird mit der Zeit schon werden, hoffe ich.
Aber ich hätte zum Zeichnen noch eine Frage (Das gehört zu diesem Thema, deswegen mache ich keinen neuens Thread auf). Wenn ich sagen wir mal, das Panel mit abgerundeten Ecken dargestellt hab möchte, wie kann ich das machen. Da reicht ja zeichnen nicht mehr, oder? Man liest sich, Stanlay :hi: |
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
hmm du musst dann einfach nur den Canvas des Panels einmal löschen und dann mit RoundRect (bin mir nicht sicher ob die Fkt. so hieß, such einfach mal nach Rect in der OH) ein abgerundetes Rechteckt anstelle der normalen Form zeichnen, aber wenn du nen abgerundetes Panel zeichnen willst rate ich dir doch vom Typ TCustomControl abzuleiten, da musst dann dann zwar auch Text usw. per Hand ausgeben ist aber leichter finde ich ;)
|
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
Danke schon mal für den Tip mit dem RoundRect. Ich werde mir das gleich mal anschauen. Aber das mit dem Text verstehe ich nicht. ich muss doch den Text sowieso manuell über TextOut(...) ausgeben. Oder meinst du was anderes? :oops:
Man liest sich, Stanlay :hi: |
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
Liste der Anhänge anzeigen (Anzahl: 1)
:( Hallo. Ich hab das jetzt ausprobiert mit dem RoundRect. Das Problem ist nur: wenn ich diese Komponente dann verwende, bekomme ich nichts anderes, als ein Rechteck, in dem ein abgerundetes Rechteck gezeichnet ist...was ich aber irgendwie auch nicht anders erwartet habe, weil ich sicher war, dass ich wieder mal was falsch verstanden und gemacht hab. :oops:
Ich hab da folgende Paint Prozedur:
Delphi-Quellcode:
Das ergibt dann, wenn ich die Komponente installiere und auf Form ziehe, so etwas, wie im Anhang.
procedure TTestRoundPanel.Paint;
begin inherited; Canvas.Brush.Color := Self.Color; Canvas.Pen.Color := Self.BorderColor; Canvas.RoundRect(0,0,Self.Width,Self.Height,34,34); end; Ich möchte aber nun, dass der Bereich außerhalb des abgerundeten Vierecks erst gar nicht angezeigt wird. Denn wenn ich zum Beispiel ein Bild als Hintergrund nehme, sieht man ja immer, dass mein Panel gar nicht abgerundet, sondern eigentlich viereckig ist. Kann ich das irgendwie machen, oder muss ich da eine ganz neue Komponente ableiten? [Edit]:wall: Hab vergessen, das bild anzuhängen :wall:[/Edit] |
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
hmm hast du den Anhang vergessen??
Also ich denke für das was du versuchst muss man wohl ne eigene Kompo erstellen, bin mir aber im Moment nicht sicher was du meinst... |
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
hmm entweder versuchst du die Farbe des Panels zuerst auf clNone zu setzen und zeichnest dann das Rechteckt und füllst es mit Farbe oder du machst ne Zusatzproperty wo du dann die Hintergrundfarbe angibst.
|
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
achso...heißt clnone dann praktisch, dass der hintergrund druchscheint, oder?
|
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
Ja, du gibst ja keine Farbe an cl None (= Keine, nichts)
|
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
Danke für die Erklährung. Eigentlich is der Name ja selbsterklährend...aber ich frag lieber nochmal nach. :oops:
Danke schon mal. :hello: Ich bin sicher, das war nicht meine letzte Frage zu diesem Thema :( Man liest sich, Stanlay :hi: |
Re: Design (oder fast) Komponenten zeichnen - Aber wie?
Zitat:
Um das Weiß-Füllen zu verhindern, müsste man aus der Eigenschaft ControlStyle des Panels den Wert csOpaque entfernen. Das funktioniert bei einem Panel (im Gegensatz zu einem Label) aber leider nicht. (Warum würde mich auch interessieren.) Eventuell lässt sich ein Panel mit abgerundeten Ecken genauso erstellen, wie es ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:05 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-2025 by Thomas Breitkreuz