AGB  ·  Datenschutz  ·  Impressum  







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

Eigenes Shape anklickbar machen

Ein Thema von Kostas · begonnen am 26. Jan 2007 · letzter Beitrag vom 28. Jan 2007
 
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Eigenes Shape anklickbar machen

  Alt 27. Jan 2007, 22:50
Hallo Kostas,

wenn du in die Abgründe des Windows-API hinabsteigen möchtest, kannst du dein Problem vielleicht lösen. Ein Tortenstück läßt sich mit dem Befehl Delphi-Referenz durchsuchenTCanvas.Pie zeichnen, der wiederum die Windows-API-Routine Pie() aufruft. Wenn man den Aufruf dieser Routine mit MSDN-Library durchsuchenBeginPath und MSDN-Library durchsuchenEndPath klammert, dann werden die Zeichenoperationen intern nur gespeichert und nicht auf dem Ausgabegerät ausgegeben. Mit MSDN-Library durchsuchenPathToRegion kann man sie abrufen und in eine Region umwandeln:

Delphi-Quellcode:
var
  Region : HRGN;
begin
  BeginPath(Canvas.Handle);
  Pie(Canvas.Handle, X1, Y1, X2, Y2, X3, Y3, X4, Y4);
  EndPath(Canvas.Handle);
  Region := PathToRegion(Canvas.Handle);
end;
Für das Zeichnen der Tortenstücke hast du nun mehrere Möglichkeiten. Du kannst sie ganz normal mit den TCanvas-Methoden zeichnen oder mit MSDN-Library durchsuchenFillRegion die soeben ermittelte Region füllen. Die Abfrage, ob ein gegebener Punkt in der Region liegt, läßt sich mit MSDN-Library durchsuchenPtInRegion durchführen:

Delphi-Quellcode:
if PtInRegion(Region, X, Y) then
  // Punkt ist innerhalb des Tortenstücks
else
  // Punkt ist außerhalb
Zum Schluß solltest du nicht vergessen, die Region mit MSDN-Library durchsuchenDeleteObject wieder freizugeben.

Gruß Hawkeye
  Mit Zitat antworten Zitat
 


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 05:59 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