Sunday, February 04, 2007

Díra ve formuláři

Následující příklad patří ke klasickým a oblíbeným tipům na různých diskusních fórech. Osobně mě moc nenapadá na vyloženě praktické využití, ale ne všechno musí mít nějaký konkrétní účel. Díra ve formuláři může někdy působit zajímavě, takže si tento tip můžete přidat k dalším grafickým hračkám, které jsme si už v seriálu ukazovali. Pro ty, kteří naprosto netuší, o čem je zde řeč, snad jen krátké vysvětlení. Díra ve formuláři je prostě díra, neboli místo na formuláři, které je průhledné, a proto je vidět to, co je pod formulářem (pracovní plocha, okna jiných aplikací apod.).

Tvar a umístění díry si můžete vymyslet dle vlastního uvážení. V naší ukázce je to kruhová díra v levém horním rohu formuláře, která se objeví po kliknutí na příslušné tlačítko:

procedure TForm1.Button1Click(Sender: TObject);
var
region1, region2: hrgn;
begin
region1 := CreateRectRgn(0, 0, Width, Height);
region2 := CreateEllipticRgn(30, 30, 200, 200);
CombineRgn(region1, region1, region2, RGN_DIFF);
SetWindowRgn(Handle, region1, True);
end;