Avatar billede robertmp Nybegynder
02. november 2006 - 10:32 Der er 2 kommentarer

TImage transparency på transparent form

Hej udviklere

Jeg sidder og roder med TImage og skal have en bestemt farve i mit image til at være gennemsigtig.
Jeg har fundet frem til følgende kode hvor jeg selv får mulighed for at definere farven:

Image1.Picture.Bitmap.TransparentColor:=Image1.Picture.Bitmap.Canvas.Pixels[600,50];   
Image1.Picture.Bitmap.TransparentMode:=tmFixed;
Image1.Transparent:=true;

Det virker som det skal.

Næste opgave er så en transparent form. Dette er lavet med følgende kode:

procedure TFormProducts.FormCreate(Sender: TObject);
var
  hRgn: Cardinal;
  i: Integer;
begin
//Transparentform
  with FormProducts do
  begin
    BorderStyle := bsNone;
    hRgn := CreateRectRgn(0, 0, 0, 0);
    for i := 0 to ControlCount - 1 do
      with Controls[i].BoundsRect do
        CombineRgn(hRgn, hRgn, CreateRectRgn(Left, Top, Right, Bottom), RGN_OR);
    SetWindowRgn(handle, hRgn, True);
  end;
end;

Dette virker også som det skal.

Men kombineres disse 2 bliver TImage ikke transparent. Den viser farven fra den usynlige form. Hvordan kommer jeg rundt om dette problem?
Avatar billede psycosoft-funware Nybegynder
03. november 2006 - 16:26 #1
i stedet for at bruge den kode til at gøre formen transparent, kan du nøjes med at sætte formen til Transperant := true; så skulle du løse dit problem :)
Avatar billede ysubhi Nybegynder
11. november 2006 - 18:49 #2
jeg støtter psycosoft-funwares kommentar, men jeg mener ikke at der er noget der hedder transperant := true;, men derimod:

with formproducts do
transparentcolor := true;
transparentcolorvalue := en farve på formen som skal være gennemsigtig;
end;

den valgte farve er kun gennemsigtig hos de enkelte komponenter, og ikke på selve formen. Hvis du gerne vil have, at hele formen bliver gennemsigtig, kan du bare tage en TPanel og sætte Align := alClient;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester