Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Image zeigen ohne Form darzustellen (https://www.delphipraxis.net/23720-image-zeigen-ohne-form-darzustellen.html)

MisterNiceGuy 8. Jun 2004 16:41


Image zeigen ohne Form darzustellen
 
Hi, wie kann ich ein Image zeigen, ohne, dass die Form zu sehen ist. Geht das nur mit bestimmten Koponenten?

Ich hab z.B. einen Hut und will nur, dass seine Umrisse zu sehen sind, alles andere dahinter ist wie sonst auch.
Wer den AcrobatReader hat weiß was ich meine, das ist das selbe wie desser Startbidschirm :)

SirThornberry 8. Jun 2004 16:43

Re: Image zeigen ohne Form darzustellen
 
Du musst bei dem Formular eine Transparenzfarbe definieren und dem form dann diese Farbe geben. Diese farbe darf auch nirgends in deinem bild vorkommen (clPurple sollte da in den meisten fällen funktionieren). Wenn du dann die transparenz auf true setzt so wird alles auf dem formular was purple ist transparent

MisterNiceGuy 8. Jun 2004 16:46

Re: Image zeigen ohne Form darzustellen
 
Wird das bei allen Windowsversionen funktionieren?

Und wo definiere ich so eine Farbe? Im OI?

Gandalfus 8. Jun 2004 17:17

Re: Image zeigen ohne Form darzustellen
 
nein
benutze Regions.
http://www.delphi-source.de/tipps/oberflaeche/?id=242

MisterNiceGuy 8. Jun 2004 17:28

Re: Image zeigen ohne Form darzustellen
 
Hmm und wie kann ich damit eine beliebige Form darstellen, nicht nur eine Ellypse?

Gandalfus 8. Jun 2004 18:20

Re: Image zeigen ohne Form darzustellen
 
Hab ich mal schnell hingetippt ka obs fehlerfrei ist:
Delphi-Quellcode:
procedure erstelleregion(Bitmap: TBitmap);
var
  HR: HRgn;
  ZwischenspeicherR: HRgn;
begin
  HR := CreateRectRgn(0,0,0,0)
  for x:=0 to bitmap.width do
  begin
    for y:=0 to bitmap.height do
    begin
      IF bitmap.canvas.pixels[x,y] <> transparentfarbe then
      begin
       ZwischenspeicherR := CreateRectRgn(x,y,1+x,1+y);
       CombineRgn(HR, HR, ZwischenspeicherR, RGN_OR );
       DeleteObject(ZwischenspeicherR);
      end;
    end;
  end;

  SetWindowRgn(handle, HR, True);
  DeleteObject(hr);
end;

Mirilin 8. Jun 2004 18:27

Re: Image zeigen ohne Form darzustellen
 
:hi:

Form tranpsarent...

mfg Tobias

Gandalfus 8. Jun 2004 21:13

Re: Image zeigen ohne Form darzustellen
 
Zitat:

Zitat von Mirilin
:hi:

Form tranpsarent...

mfg Tobias

und was hat das mit dem Thema zu tun?


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:38 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