AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Einzelne Komponenten semitransparent zeichnen
Thema durchsuchen
Ansicht
Themen-Optionen

Einzelne Komponenten semitransparent zeichnen

Ein Thema von eisblock · begonnen am 7. Feb 2006 · letzter Beitrag vom 7. Feb 2006
Antwort Antwort
Seite 1 von 2  1 2      
eisblock

Registriert seit: 11. Dez 2005
Ort: Linderbach
127 Beiträge
 
Turbo Delphi für Win32
 
#1

Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 17:51
Hallo!
Ich habe auf einem Image ein Panel. Dieses ist weiß und soll halbtransparent gemacht werden (wie man ganze Forms mit Alpha transparent machen kann), aber eben nur dieses Panel.
Weis jemand, wie ich das machen kann?
MfG eisblock
  Mit Zitat antworten Zitat
eisblock

Registriert seit: 11. Dez 2005
Ort: Linderbach
127 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 18:19
Falls es weiterhilft: es würde mir auch schon reichen, einen rechteckigen Bereich meines Hintergrund-Bitmaps mit einer höheren Helligkeit einzufärben, aber wenn das Panel dann wieder unsichtbar werden soll, müsste ich bei dieser Methode statt dessen die Helligkeit wieder normalisieren.
(Beispiel siehe angehängtes Bild)
Miniaturansicht angehängter Grafiken
semitransparenz_153.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#3

Re: Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 18:23
Ohne eigene oder Fremdkomponenten wird das nicht funktionieren.
Allerdings finde ich deinen Weg, das Bitmap direkt zu manipulieren, um Einiges besser als ein darübergelegtes Panel.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
eisblock

Registriert seit: 11. Dez 2005
Ort: Linderbach
127 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 18:37
also so wie auf http://www.dsdt.info/tipps/?id=653 beschrieben.
Aber wie binde ich die Prozedur dann ein?
  Mit Zitat antworten Zitat
eisblock

Registriert seit: 11. Dez 2005
Ort: Linderbach
127 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 19:26
Habe die Prozedur jetzt mal so umgeschrieben, dass man sie für Rechteckige Bereiche nutzen kann.
(kann man sicher noch optimieren)

Delphi-Quellcode:
procedure Helligkeit(C:TCanvas; Faktor:Real; x,y,x2,y2: integer);
var Color: LongInt;
  tmp1, tmp2, R, G, B: Integer;
begin
  with C do
    for tmp1:= ClipRect.Left to x2 do
      for tmp2:= ClipRect.Top to y2 do
      begin
       Color:=ColorToRGB(Pixels[tmp1+x,tmp2+Y]);
       R := Round(GetRValue(Color)*Faktor);
       G := Round(GetGValue(Color)*Faktor);
       B := Round(GetBValue(Color)*Faktor);
       if R>255 then R:=255;
       if G>255 then G:=255;
       if B>255 then B:=255;
       Pixels[tmp1+x,tmp2+Y]:=RGB(R,G,B);
     end;
end;
Beispiel für Einbindung:
Helligkeit(canvas,1.2,50,50,150,150); 1.2 steht für den Helligkeitsfaktor (größer als 1: heller, kleiner als 1: dunkler)
50,50 stehen für die Werte x und y, bei denen das hellere oder dunklere Rechteck beginnt,
150,150 stehen für die Endwerte x und y, bei denen das Rechteck aufhört.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#6

Re: Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 19:35
@eisblock: Das funktioniert nicht. Man muss ein TImage nehmen und es über das TImage zeichnen. Ist aber kompliziert ... .
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 19:37
ein TImage mit Alphatransparenz hatte ich ja schonmal gepostet.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
eisblock

Registriert seit: 11. Dez 2005
Ort: Linderbach
127 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 19:41
also bei mir funktionierts, auch wenn ich es direkt aufs Form anwende. Aber es ist halt nur Canvas, also wenn ich ein anderes Form davor schiebe, ist es wieder weg.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 19:41
Zitat von Nils_13:
@eisblock: Das funktioniert nicht. Man muss ein TImage nehmen und es über das TImage zeichnen. Ist aber kompliziert ... .
Ich verstehe kein Wort, kannst du das bitte erläutern ?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#10

Re: Einzelne Komponenten semitransparent zeichnen

  Alt 7. Feb 2006, 19:43
@Khabarakh: quatsch geschrieben...

@eisblock: Dafür gibt es das OnPaint Ereigniss der Form.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:49 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