Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi runde Schaltflächen (https://www.delphipraxis.net/48729-runde-schaltflaechen.html)

DGL-luke 29. Jun 2005 20:27

Re: runde Schaltflächen
 
Bei Google suchenRBControls

sind ganz nett, ham nen style manager dabei, und sind kostenlos. weiss aber leider die inet-adr... clickediclick.... www.delphipages.de :-D

Marvel 29. Jun 2005 21:53

Re: runde Schaltflächen
 
äh... die beiden Seiten funzen nich so recht.... trotzdem danke

noch ne Frage zu der Sache, mit dem vergleichen der Pixelfarbe mit der Transparent-Farbe. da wird folgendes nie true:

Delphi-Quellcode:
 if Image1.Canvas.Pixels[x,y]=Image1.Picture.Bitmap.TransparentColor then ....
dagegen funktioniert das:

Delphi-Quellcode:
 if Image1.Canvas.Pixels[x,y]=clWhite then ....
sogar, wenn man die TransparentColor vorher auf clWhite setzt, passiert nix bei der ersten, aber bei der zweiten.
is das nich komisch? meine Meinung!

Wat denkt ihr darüber?

mael 29. Jun 2005 22:36

Re: runde Schaltflächen
 
Du kannst mit Regions arbeiten und dann die Win-API PtInRegion verwenden.
Regions lassen mit Hilfe der JCL sehr leicht aus Bitmaps erzeugen.
Schau mal in JclGraphics.pas, dort gibt es eine sehr nützliche Routine namens CreateRegionFromBitmap.

Somit solltest Du alles haben was Du brauchst, hoffe ich zumindest ;-)

r2c2 30. Jun 2005 08:45

Re: runde Schaltflächen
 
Zitat:

Zitat von Marvel
zu r2c2: mit Komponentenentwicklung kenn ich mich jetzt nich so aus... also das heißt.. ich hab keine Ahnung, wie ich das machen müsste.

Schau dir mal n paar Tutorials dazu an; sollte nicht ganz so schwer sein. Runde Buttons sind nicht so schwer zu zeichnen. Ansonsten kann man das auch mit Bitmaps machen und - wie schon gesagt wurde mit MouseUp/Down arbeiten.

mfg

Christian

Tonic1024 30. Jun 2005 09:07

Re: runde Schaltflächen
 
Hi...

Warum nicht so:

Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Image1.Picture.Bitmap.Canvas.Pixels[X,Y] <> Image1.Picture.Bitmap.Canvas.Pixels[0,0] then
    Showmessage('Hit me');
end;
Wenn du tranzparenz einschaltest geht das - soweit ich weiss - immer vom ersten Pixel aus. Habs mal eben getestet und geht ganz gut... Hab ein Donut-Button benutzt und konnte auch wirklich nur auf den Ring klicken.

regards

Toni

Zettuu 30. Jun 2005 12:06

Re: runde Schaltflächen
 
Du solltest die Transparenzfarbe immer im Original-Bitmap abfragen, da sie ja leider direkt auf dem Button-Canvas nicht mehr existiert (spricht transparent ist)

Tonic1024 30. Jun 2005 12:24

Re: runde Schaltflächen
 
Doch, geht. Probiers doch mal aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr.
Seite 2 von 2     12   

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