Läpinäkyvä pääikkuna

Minulla on pääikkunan taustakuvana kuva (TImage) joka on soikea ja kuvan ulkopuolella näkyy pääikkunan taustaväri (clBtnFace). Kuinka saan pääikkunan taustasta täysin läpinäkyvän sillein että taustana on pelkkä kuva? jos käytän TransparentColoria niin kuvan reunalle jää silti vähän taustaväriä.
4512
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

procedure TForm1.FormCreate(Sender: TObject) ;
var
FullRgn, ClientRgn, ButtonRgn: THandle;
Margin, X, Y: Integer;
begin
Margin := (Width - ClientWidth) div 2;
FullRgn := CreateRectRgn(0, 0, Width, Height) ;
X := Margin;
Y := Height - ClientHeight - Margin;
ClientRgn := CreateRectRgn
(X, Y, X ClientWidth, Y ClientHeight) ;
CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF) ;
X := X Button1.Left;
Y := Y Button1.Top;
ButtonRgn := CreateRectRgn
(X, Y, X Button1.Width, Y Button1.Height) ;
CombineRgn(FullRgn, FullRgn, ButtonRgn, RGN_OR) ;
SetWindowRgn(Handle, FullRgn, True) ;
end;

// löytyi tuolta http://delphi.about.com/cs/adptips1999/a/bltip0899_5.htm

Äänestä

Muistaakseni Transparent väri pitää määritellä erikseen vielä formin ominaisuuksissa.

Toinen vaihtoehto on Layered Window

Kannattaa käyttää myös png-kuvia, joissa voi määritellä läpinäkyvyysarvot.

http://www.swissdelphicenter.ch/torry/showcode.php?id=924

Äänestä
  • että tietääkseni delphi ei anna suoraa tukea .png kuville, mutta kirjastoja löytyy, muuten tuo menee ihan transparent color arvon mukaan, tosin en suosittele kyseistä tapaa ellei tiedä mitä tekee, perustelen sillä että monet pilaavat hyvän, kenties hyödykkäänkin ohjelman turhalla halulla tehdä siitä ns edistyneesti näyttävä, toivottavasti olen väärässä ja toivotan onnea mitä sitten teetkään :)

    Äänestä

  • dtoo kirjoitti:

    että tietääkseni delphi ei anna suoraa tukea .png kuville, mutta kirjastoja löytyy, muuten tuo menee ihan transparent color arvon mukaan, tosin en suosittele kyseistä tapaa ellei tiedä mitä tekee, perustelen sillä että monet pilaavat hyvän, kenties hyödykkäänkin ohjelman turhalla halulla tehdä siitä ns edistyneesti näyttävä, toivottavasti olen väärässä ja toivotan onnea mitä sitten teetkään :)

    Itse sovellus kannattaa pitää mielestäni normaalina, ehkä vähän liukuveräjä voi käyttää (nykyään muodikasta), mutta esim. "Splash screen" kuvan voi hyvin topteuttaa tuolla png-layered Windows systeemillä sovelluksen käynnistyksen yhteydessä.

    Äänestä

Kommentoi aloitusta


Uuppi kirjoitti:

Minulla on pääikkunan taustakuvana kuva (TImage) joka on soikea ja kuvan ulkopuolella näkyy pääikkunan taustaväri (clBtnFace). Kuinka saan pääikkunan taustasta täysin läpinäkyvän sillein että taustana on pelkkä kuva? jos käytän TransparentColoria niin kuvan reunalle jää silti vähän taustaväriä.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu