Transparent form

Za tiste, kateri uporabljajo FreePascal oz. Lazarus
Odgovori
M.C.
Prispevkov: 8
Pridružen: 21.12.2011 18:08:04

Transparent form

Odgovor Napisal/-a M.C. » 03.01.2012 14:24:48

V vb se da narest da je backrund forme prozoren, kontrole in stvari ki jih rišeš gor pa ne.

Stvar skušam narest v lazarusu.
1. lastnost forme alpahablend na true, s tem si ne morem pomagat ker so tudi kontrole ki jih dam gor alpablended
2. poskus pri vsakokratnem move/resize frome na ozadje prekopirat sliko iz DC 0

Koda: Izberi vse

procedure TForm1.FormPaint(Sender: TObject);
var
  MyBitmap: Graphics.TBitmap;
  ScreenDC: LCLType.HDC;
begin
  form1.Canvas.Clear;
  //form1.Canvas.Free;
  form1.Canvas.AutoRedraw:=true;

  MyBitmap := Graphics.TBitmap.Create;
  ScreenDC := LCLIntf.GetDC(0);
  MyBitmap.LoadFromDevice(ScreenDC);
  LCLIntf.ReleaseDC(0,ScreenDC);
  form1.Canvas.Draw(-100, -100, MyBitmap);

  MyBitmap.Free;
  beep;

end;         
ne dela ker se paint event ne dogodi ko form vlečem čez ekran , brez resize


Kakšna pametna misel ?

Silver_War
Prispevkov: 664
Pridružen: 01.06.2004 14:50:41

Re: Transparent form

Odgovor Napisal/-a Silver_War » 04.01.2012 16:55:54

Kolikor jaz vidim Lazarus ne podpira transparentnosti forme. V unitu Forms je celo vidno, da FPC enostavno prezre Transparent spremenljivko forme.

Fortuna
Prispevkov: 1097
Pridružen: 26.06.2004 09:59:52

Re: Transparent form

Odgovor Napisal/-a Fortuna » 07.01.2012 09:52:18

Form1.AlphaBlendValue := 100; // 0..255
Form1.AlphaBlend := True;

http://lazarus.freepascal.org/index.php?topic=8488.0


lazarus transparent form // pomaga če vtipkaš v googla

Odgovori