AGB  ·  Datenschutz  ·  Impressum  







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

Region vom Bitmap erstellen...

Ein Thema von turboPASCAL · begonnen am 5. Sep 2009 · letzter Beitrag vom 3. Aug 2011
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Region vom Bitmap erstellen...

  Alt 3. Aug 2011, 17:32
Es will einfach nicht.
Ich ersetze jetzt die Farbe mit

Delphi-Quellcode:
            if SkinEngine.GetProperty(Winhandle, PROP_REGION) = 1 then
            begin
              if GdipCreateImageAttributes(ImgAtt) = 0 then
              begin
                TransColor := SkinEngine.ColorARGB(255, RGB(255, 0, 255));
                if GdipSetImageAttributesColorKeys(ImgAtt, ColorAdjustTypeDefault, True, 0, TransColor) = 0 then
                begin
                  GdipDrawImageRectRectI(Graphics, Img,
                    x, y, ImgW, ImgH,
                    ImgW * cardinal(UseState) - ImgW, 0, ImgW, ImgH, 2,
                    ImgAtt, False, nil)
                end;
              end;
            end else
            GdipDrawImageRectRectI(Graphics, Img,
              x, y, ImgW, ImgH,
              ImgW * cardinal(UseState) - ImgW, 0, ImgW, ImgH, 2,
              nil, False, nil);
aber das Resultat ist das gleiche als wenn ich den bereich direkt Transparent mache im Bitmap selbst.
Warum läßt sich das Bitmap nicht ausschneiden?
geht doch beim Button auch.. hmmm

Oder ist es möglich das nach dem down status des Button die Region von diesen wieder auf default gesetzt wird?
Sehen kann ich das nicht.
Seltsamerweise Wenn ich noch keinen Button geklickt habe lassen sich keine zwei Button gleichzeitig drücken.

gruss

Geändert von EWeiss ( 3. Aug 2011 um 17:40 Uhr)
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#2

AW: Region vom Bitmap erstellen...

  Alt 3. Aug 2011, 18:34
Warum heißt SetWindowRgn wohl SetWindowRgn?

Richtig, weil es für Fenster, sprich TWinControls funktioniert.
Ein TBitmap.Handle hat nichts damit zu tun, ist nur "leider" zuweisungskompatibel da es halt auch eine einfache "Hausnummer" ist(LongWord).

Nimm ein TWinControl (z.B. TPanel), packt das Image drauf und wende SetWindowRgn auf Panel.Handle an.

Grüsse, Dirk
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Region vom Bitmap erstellen...

  Alt 3. Aug 2011, 19:16
Warum heißt SetWindowRgn wohl SetWindowRgn?

Richtig, weil es für Fenster, sprich TWinControls funktioniert.
Ein TBitmap.Handle hat nichts damit zu tun, ist nur "leider" zuweisungskompatibel da es halt auch eine einfache "Hausnummer" ist(LongWord).

Nimm ein TWinControl (z.B. TPanel), packt das Image drauf und wende SetWindowRgn auf Panel.Handle an.

Grüsse, Dirk
Vergess es! (Auch wenn du recht hast mit dem SetWindowRgn)
Zeig mal wie du in einer Nonvcl Anwendung ein TPanel oder was auch immer deiner meinung nach dafür passt einbinden willst.

Mein Problem mit dem Bitmap hab ich schon gelößt wie im vorherigen Beitrag mitgeteilt.
GdipSetImageAttributesColorKeys

Zitat:
Ich denke das mein Problem daran liegt das nach dem Down status des button der alte(original) zustand wieder hergestellt wird.
Der Button scheint dann nicht mehr ausgeschnitten zu sein.
Die frage wäre dann wie kann ich die einmal erstellte region erhalten auch nach dem klick auf den Button.
bzw.. dem Up Status zuweisen.

Der ja von WinControls abgeleitet ist
Seltsamer weise funktioniert das ja beim Beispiel von turboPASCAL
Quatsch liegt immer noch am Bitmap.
Auch wenn es jetzt wieder transparent ist wird ein Klickevent auf dem Transparenten bereich ausgeführt.
Hat mit dem Ausgeschnittenen Button nix zu tun das funktioniert nach nochmaligen testen.


PS:
Ach so das Panel auf einen Button knallen würde ja auch nicht gehn.
So einfach ist es also nicht.

gruss

Geändert von EWeiss ( 3. Aug 2011 um 19:46 Uhr)
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#4

AW: Region vom Bitmap erstellen...

  Alt 3. Aug 2011, 22:16
Vergess es!...Quatsch...
Hmmm.. Respekt? Netiquette? Weniger ist hier mehr!

Technisch und inhaltlich ist jecoh nichts einzuwenden.
Das Bild hängt schief.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Region vom Bitmap erstellen...

  Alt 3. Aug 2011, 22:25
Vergess es!...Quatsch...
Hmmm.. Respekt? Netiquette? Weniger ist hier mehr!

Technisch und inhaltlich ist jecoh nichts einzuwenden.
Ja.. Hast recht.
Er konnte ja nicht wissen das ich in Nonvcl arbeite.

Obwohl es nicht böse gemeint war.

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