Autor Beitrag
HelgeLange
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Fr 02.02.07 19:23 
Ich habe mir auf Grund einer von mir gebauten Resourcen-Verwaltung eine Komponente von TPaintBox abgeleitet, die das Zeichnen selbst übernimmt. Das funktioniert soweit ganz gut, nur dass ich gerade vor dem Problem stehe, dass ich einen grauen Hintergrund hab, die Transparentfarbe allerdings weiss ist, das sieht natürlich doof aus. Mein Paint siet wie folgt aus :

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TResBitmap.Paint;
var MemDC     : HDC;
    OldBitmap : DWORD;
begin
  inherited;
  If FhBitmap > 0 Then begin // do we have a valid Handle ?
    MemDC := CreateCompatibleDC(0);
    OldBitmap := SelectObject(MemDC, FhBitmap);
    BitBlt(Canvas.Handle,
           0,
           0,
           Width,
           Height,
           MemDC,
           0,
           0,
           SRCCOPY);
    SelectObject(MemDC, OldBitmap);
    DeleteDC(MemDC);
  end;  //  --  If FhBitmap > 0 Then
end// Paint


Gibt's Ideen ?

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: So 04.02.07 15:02 
BitBlt kopiert nur stumpf ein Bitmap von A nach B. Die Methode die du suchst heißt Suche im MSDN TRANSPARENTBLT.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Mo 05.02.07 15:07 
Danke, das hat geholfen :)

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Mo 12.03.07 16:26 
Hi!

Könntest du deine jetzige Lösung evtl. posten? Würde mich sehr interessieren.
HelgeLange Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 735
Erhaltene Danke: 6

Windows 7
Delphi7 - Delphi XE
BeitragVerfasst: Mo 12.03.07 16:34 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
  If FhBitmap > 0 Then begin  // do we have a valid Handle ?
    MemDC := CreateCompatibleDC(0);
    OldBitmap := SelectObject(MemDC, FhBitmap);
    If FpTransparency.Transparent Then begin
      TransparentBlt(Canvas.Handle,
                     0,
                     0,
                     Width,
                     Height,
                     MemDC,
                     0,
                     0,
                     Width,
                     Height,
                     FpTransparency.TransparentColor);
    end else begin
      BitBlt(Canvas.Handle,
             0,
             0,
             Width,
             Height,
             MemDC,
             0,
             0,
             SRCCOPY);
    end;
    SelectObject(MemDC, OldBitmap);
    DeleteDC(MemDC);
  end;  //  --  If FhBitmap > 0 Then


Bitte schön

_________________
"Ich bin bekannt für meine Ironie. Aber auf den Gedanken, im Hafen von New York eine Freiheitsstatue zu errichten, wäre selbst ich nicht gekommen." - George Bernhard Shaw
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Mo 12.03.07 17:42 
Danke :-)