AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rahmen zeichnen

Ein Thema von Chris P · begonnen am 4. Sep 2006 · letzter Beitrag vom 7. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#1

Rahmen zeichnen

  Alt 4. Sep 2006, 08:50
Hi Leute,

gibt es eine nonVCL-Möglichkeit, mit FrameRect oder Rectangle eine Rahmen in einem DC zu zeichnen,
ohne das der Hintergrund überzeichnet wird. Es soll also nur ein Rahmen gezeichnet werden, ohne das das
Rechteck gefüllt wird. Gibt es so was wie einen transparenten Brush?
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Rahmen zeichnen

  Alt 4. Sep 2006, 09:40
Hi,

zur Not Lineto.

Gruß oki
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Rahmen zeichnen

  Alt 4. Sep 2006, 09:47
Hi,

es sollte mit CreateSolidBrush funktionieren.

[EDIT]
Ich glaube, das war Quatsch. Aber FrameRect füllt doch das Rechteck gar nicht, oder bin ich jetzt durcheinander?
[/EDIT]

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Rahmen zeichnen

  Alt 4. Sep 2006, 09:57
Rectangle(dc, 5, 5, 50, 50); Ein nicht gefülltes Rechteck.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Rahmen zeichnen

  Alt 4. Sep 2006, 10:34
Zitat von Luckie:
Rectangle(dc, 5, 5, 50, 50); Ein nicht gefülltes Rechteck.
Nein, Lucky, so geht es nicht.

Zitat:
The Rectangle function draws a rectangle. The rectangle is outlined by using the current pen and filled by using the current brush.
Aber FrameRect macht genau das, was gewünscht ist.

Zitat:
The FrameRect function draws a border around the specified rectangle by using the specified brush. The width and height of the border are always one logical unit.

int FrameRect(
HDC hDC, // handle to DC
CONST RECT *lprc, // rectangle
HBRUSH hbr // handle to brush
);
Parameters
hDC
[in] Handle to the device context in which the border is drawn.
lprc
[in] Pointer to a RECT structure that contains the logical coordinates of the upper-left and lower-right corners of the rectangle.
hbr
[in] Handle to the brush used to draw the border.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Rahmen zeichnen

  Alt 4. Sep 2006, 10:46
Eben und wenn es den aktuellen Pinsel benutzt, dann ist es nicht gefüllt, denn dann hast du nur einen Rahmen auf dem Fenster mit der Fensterfarbe drumrum und der Fensterfarbe innen drinne.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Rahmen zeichnen

  Alt 4. Sep 2006, 13:11
Zitat von Luckie:
Eben und wenn es den aktuellen Pinsel benutzt, dann ist es nicht gefüllt, denn dann hast du nur einen Rahmen auf dem Fenster mit der Fensterfarbe drumrum und der Fensterfarbe innen drinne.
Ja Lucky. selbstverständlich muß man 'nen entsprechenden Brush benutzen.
Für Chris P scheint es wichtig zu sein, daß der bestehende Hintergrund (der ja nicht nur einfach die Hintergrundfarbe sein muß sondern z.B. auch ein Bild sein kann) nicht überzeichnet wird.
Und deswegen ist Rectangle ungeeignet, dagegen FrameRect geeignet.

Zitat:
gibt es eine nonVCL-Möglichkeit, mit FrameRect oder Rectangle eine Rahmen in einem DC zu zeichnen,
ohne das der Hintergrund überzeichnet wird
. Es soll also nur ein Rahmen gezeichnet werden, ohne das das
Rechteck gefüllt wird.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Rahmen zeichnen

  Alt 4. Sep 2006, 13:24
@Amateurprofi: Genau das meinte ich.

Wie kann man nun die Dicke des Rahmens bestimmen? Mit CreatePen wäre das ja kein Problem.
Wie macht man das bei einem Brush?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#9

Re: Rahmen zeichnen

  Alt 4. Sep 2006, 13:29
Notfalls gingen ja noch 4 Rectangle's, welcher du mit dem entsprechendem Brush füllst
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Rahmen zeichnen

  Alt 4. Sep 2006, 13:34
Das ginge auch, aber gibt es da keine elegantere Methode die Rahmendicke zu ändern?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz