AGB  ·  Datenschutz  ·  Impressum  







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

CreatePolygonRgn und abgerundete Ecken

Ein Thema von runningsoft · begonnen am 17. Mai 2021 · letzter Beitrag vom 17. Mai 2021
Antwort Antwort
Benutzerbild von runningsoft
runningsoft

Registriert seit: 8. Okt 2004
Ort: Bernau
108 Beiträge
 
Delphi 10.4 Sydney
 
#1

CreatePolygonRgn und abgerundete Ecken

  Alt 17. Mai 2021, 16:35
Hallo zusammen,

ich bin gerade dabei, eine Komponente zu erstellen (abgeleitet von TPanel) mit der in Anhang 1 dargestellten Form. Das funktioniert über CreatePolygonRgn soweit ganz gut.

Schön wäre es, wenn ich das ganze jetzt noch mit abgerundeten Ecken, so wie in Anhang 2 zu sehen, hinbekommen würde. Über CreateRoundRectRgn kann man sich ja recht einfach ein rechteckiges Panel mit abgerundeten Ecken erstellen. Gibt es eine Möglichkeit, auch ein Polygon mit abgerundeten Ecken zu erstellen? Hab bisher nichts gefunden.

Vielen Dank schon mal für eure Hinweise und Ideen.
Miniaturansicht angehängter Grafiken
tippanel.jpg   tippanelrounded.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: CreatePolygonRgn und abgerundete Ecken

  Alt 17. Mai 2021, 16:45
Du könntest erst einen Path zusammenbauen und den dann in eine Region umwandeln.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: CreatePolygonRgn und abgerundete Ecken

  Alt 17. Mai 2021, 17:13
Oder die runde Region erstellen (CreateRoundRectRgn)
und dann noch die Region für den Pfeil addieren.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von runningsoft
runningsoft

Registriert seit: 8. Okt 2004
Ort: Bernau
108 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: CreatePolygonRgn und abgerundete Ecken

  Alt 17. Mai 2021, 20:10
Vielen Dank für die Hinweise. Ich habs dann wie von Himitsu vorgeschlagen gemacht.

CombineRgn hieß das Zauberwort, um zwei Regions miteinander zu verbinden. Rgn1 wird dadurch um Rgn2 erweitert und ergibt die gewünschte Form.

Falls mal jemand das gleiche Problem hat, hier mein Code:
Delphi-Quellcode:
procedure TTipPanel.RecreateHRGN;
const radius = 20;
var
  Rgn1, Rgn2: hRgn;
  pList : array of TPoint;
begin
  //zuerst die Grundform mit gerundeten Ecken
  Rgn1 := CreateRoundRectRgn(0,30,200,100,radius,radius);

  //danach den Pfeil auf die obere Kante
  SetLength(pList,3);
  pList[0] := Point(30,30);
  pList[1] := Point(30,0);
  pList[2] := Point(60,30);
  Rgn2 := CreatePolygonRgn(plist[0],High(pList)+1,Winding);

  CombineRgn(Rgn1,Rgn1,Rgn2,RGN_OR);
  SetWindowRgn(Handle, Rgn1, True);
end;
Vielen Dank für die Hilfe.
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:19 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