Delphi-PRAXiS
Seite 2 von 3     12 3      

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 Design (oder fast) Komponenten zeichnen - Aber wie? (https://www.delphipraxis.net/8776-design-oder-fast-komponenten-zeichnen-aber-wie.html)

Stanlay Hanks 12. Sep 2003 14:33

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:

phlux 12. Sep 2003 14:38

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 ;)

Stanlay Hanks 12. Sep 2003 14:41

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:

Stanlay Hanks 12. Sep 2003 15:08

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:
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;
Das ergibt dann, wenn ich die Komponente installiere und auf Form ziehe, so etwas, wie im Anhang.

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]

phlux 12. Sep 2003 15:41

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...

phlux 12. Sep 2003 15:43

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.

Stanlay Hanks 12. Sep 2003 15:45

Re: Design (oder fast) Komponenten zeichnen - Aber wie?
 
achso...heißt clnone dann praktisch, dass der hintergrund druchscheint, oder?

phlux 12. Sep 2003 15:47

Re: Design (oder fast) Komponenten zeichnen - Aber wie?
 
Ja, du gibst ja keine Farbe an cl None (= Keine, nichts)

Stanlay Hanks 12. Sep 2003 15:50

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:

Niko 12. Sep 2003 16:30

Re: Design (oder fast) Komponenten zeichnen - Aber wie?
 
Zitat:

Zitat von phlux
cl None (= Keine, nichts)

Das ist richtig, heißt in dem Fall aber, dass das Panel ein durchsichtiges Rechteck auf sein Canvas zeichnet. Der wurde von Windows bereits weiß gefüllt, was zu einem weißen Rechteck führt, das ein Rechteck mit abgerundeten Ecken enthält.
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 hier für ein Fenster beschrieben ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:05 Uhr.
Seite 2 von 3     12 3      

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