AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

"Polygon" Komponente

Ein Thema von wjjw · begonnen am 14. Okt 2011 · letzter Beitrag vom 14. Okt 2011
Antwort Antwort
wjjw
(Gast)

n/a Beiträge
 
#1

"Polygon" Komponente

  Alt 14. Okt 2011, 12:35
Hallo Zusammen!

Ich suche eine "Polygon" Komponente. Sollte Eigenschaften wie z.B. ein Panel haben, jedoch die Form sollte wie ein Polygon aussehen (also z.B. Stern, Rechteck, Kreis, Polygon, ...).

Habe folgende Anforderungen an eine solche "Komponente":
  • gute Performance (brauche ca. 100 Komponenten auf einem Panel)
  • Eigenschaft: Form (Punktliste oder vordefinierte Styles [Stern, Rechteck, Kreis, ...])
  • Weitere Eigenschaften: Farbe, Text (Caption)
  • Transparent (in keinem sichtbaren "Rechteck" Objekt)
  • Aktionen: wie Buttons oder Panels (OnClick, ...)
Es muss ja nicht unbedingt eine Komponente sein, vielleicht gibt es einen anderen Lösungsansatz..
Möchte nur grafische Objekte auf einem Canvas haben und diese individuell ansprechen können.

Danke für eure Hilfe...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: "Polygon" Komponente

  Alt 14. Okt 2011, 12:45
In den Demos zu GDIPlus waren Beispiele dabei, die Paths und Clipping verwendet haben. Damit dürfte sich Dein Vorhaben realisieren lassen. Ich finde gerade keinen exklusiven Link zu den Sourcen, die ich bei meinem runden Button verwendet habe, aber wenn Du da das größere Archiv herunterlädst, müssten sie samt der Demos IIRC enthalten sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
wjjw
(Gast)

n/a Beiträge
 
#3

AW: "Polygon" Komponente

  Alt 14. Okt 2011, 13:04
Danke Detlef! Schau ich mir gleich an.
Ich glaub mit FireMonkey wär das einfacher - kann es aber bei meinem derzeitigen Projekt nicht nutzen...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: "Polygon" Komponente

  Alt 14. Okt 2011, 13:08
Mir fällt gerade ein: wäre das hier nichts für Dich?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: "Polygon" Komponente

  Alt 14. Okt 2011, 13:20
Mir fällt gerade ein: wäre das hier nichts für Dich?
..ein eiiigener Button! ♪♫

(Konnts mir nicht verkneifen )
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: "Polygon" Komponente

  Alt 14. Okt 2011, 13:23
Wenn das ein Gag war, habe ich ihn nicht verstanden
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: "Polygon" Komponente

  Alt 14. Okt 2011, 13:31
Sollte eine Anspielung auf das Lied "Junge" von den Ärzten sein:

Zitat:
Es ist noch nicht zu spät, dich an der Uni einzuschreiben
Du hast dich doch früher so für Tiere interessiert, wäre das nichts für dich, eine eigene Praxis?
War jetzt auch nicht soo lustig
Aber das kam mir direkt in den Kopf als ich deinen Post gelesen hab
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: "Polygon" Komponente

  Alt 14. Okt 2011, 13:32
ganz schnell, einfach und billig wenn Du eine Komponente bastelst der Du ein gegf. zur laufzeit erstelltest Bitmap zuweist: (im Beispiel wird ein vorhandenes genommen)
Delphi-Quellcode:
function CreateBMPRegion(Bmp: TBitmap): THandle;
Type
  RGBArray=Array [0..1000000] of TRGBTriple;
  pRGBArray=^RGBArray;
var
  X, Y, Beginn:Integer;
  Line: PRGBArray;
  Transp: TRGBTriple;
  Exclude: THandle;
begin
  Bmp.PixelFormat := pf24Bit;
  Result := CreateRectRGN(0, 0, Bmp.Width, Bmp.Height);
  for Y := 0 to Bmp.Height - 1 do
  begin
    Line := Bmp.Scanline[Y];
    if Y = 0 then Transp := Line[0];
    Beginn := -1;
    for X := 0 to Bmp.Width do
    begin
        if (X <> Bmp.Width)
           and (Line[X].rgbtBlue = Transp.rgbtBlue)
           and (Line[X].rgbtGreen = Transp.rgbtGreen)
           and (Line[X].rgbtRed = Transp.rgbtRed)
           then
          begin
            if Beginn = -1 then Beginn := X;
          end
        else
          begin
            if Beginn > -1 then
            begin
              Exclude := CreateRectRGN(Beginn, Y, X, Y + 1);
              try
                CombineRGN(Result, Result, Exclude, RGN_DIFF);
                Beginn := -1;
              finally
                DeleteObject(Exclude);
              end;
            end;
          end;
    end;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  rg:Hrgn;
begin
  rg := CreateBMPRegion(Image1.Picture.Bitmap);
  SetWindowRGN(Panel1.Handle,rg,true);
  DeleteObject(rg);
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: "Polygon" Komponente

  Alt 14. Okt 2011, 13:32
Achsoooo
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
670 Beiträge
 
#10

AW: "Polygon" Komponente

  Alt 14. Okt 2011, 15:14
Meinst Du sowas!? http://angusj.com/delphi/gr32_lines.php
Das 2.Demo "DrawObjects"
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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