Text na pruhlednem form – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Text na pruhlednem form – Delphi – Fórum – Programujte.comText na pruhlednem form – Delphi – Fórum – Programujte.com

 

Borisek0
Stálý člen
22. 6. 2012   #1
-
0
-

Dobry den.

Jak zpruhlednit form je na netu spousta zdrojaku.

Ja bych však potřeboval do něj nacpat text aby to vypadalo že je text na tapetě plochy.

Pokud je form pruhledny tak Form1.Canvas.TextOut(200, 100, 'ahoj'); nefunguje.

Poradite.

Nahlásit jako SPAM
IP: 213.195.237.–
liborb
~ Redaktor
+18
Guru
22. 6. 2012   #2
-
0
-

A co na tom nefunguje? Jak to vypadá? Jaká má být barva textu a jakou si zvolil jako průhlednou? Máš nastavený TRANSPARENT jako background mode (BkMode) u Canvasu?

Nahlásit jako SPAM
IP: 78.80.52.–
Borisek0
Stálý člen
22. 6. 2012   #3
-
0
-

Pokud v Create zakažu proceduru NewWindowRgn tak to vykresli.

constructor TForm1.Create(AOwner: TComponent);
begin
  inherited;
  NewWindowRgn;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
Form1.canvas.Font.Size:=18;
Form1.Canvas.Font.Style := [fsBold, fsUnderline];
Form1.Canvas.Font.Name:= 'Times New Roman';
Form1.Canvas.TextOut(200, 100, 'ahoj');
end;

procedure TForm1.NewWindowRgn;
var
  i, CoordX, CoordY: Integer;
  FormRgn, NewRgn: THandle;
begin
  CoordX:=(Width-ClientWidth) div 2;
  CoordY:=Height-ClientHeight-4;

  FormRgn:=CreateRectRgn(0, 0, Width, Height);

  NewRgn:= CreateRectRgn(
    CoordX,
    CoordY,
    CoordX+ClientWidth,
    CoordY+ClientHeight);
  CombineRgn(FormRgn, FormRgn, NewRgn, RGN_DIFF);

  for i:= 0 to ControlCount -1 do
    with Controls[i] do
    begin
      NewRgn:= CreateRectRgn(
        CoordX + Left,
        CoordY + Top,
        CoordX + Left + Width,
        CoordY + Top + Height);
      CombineRgn(FormRgn, FormRgn, NewRgn, RGN_OR);
    end;

  SetWindowRgn(Handle, FormRgn, True);
end;

procedure TForm1.Resize;
begin
  inherited;
  NewWindowRgn;
end;

Nahlásit jako SPAM
IP: 213.195.237.–
liborb
~ Redaktor
+18
Guru
22. 6. 2012   #4
-
0
-

Moc jsem nepochopil, co má přesně dělat ta procedura NewWindowRgn, ale vypadá to, že vyřízne klientskou část aplikace a vyjme ji z regionu. To pak do ní nemůžeš kreslit, protože ti nepatří.

A co to zkusit takto:
- vyhoď NewWindowRgn
- vyber nějakou hezkou jinde nepoužívanou barvu formuláři
- nastav mu property TransparentColor na true
- stejnou barvu jako si nastavil jako barvu formuláře nastav i do property TransparentColorValue

Nyní by si ten text měl vidět.

Nahlásit jako SPAM
IP: 78.80.52.–
Borisek0
Stálý člen
22. 6. 2012   #5
-
0
-

Tak jsem vyzkoušel.

Fungovat to funguje ale neni to ono.

Text neni te barvy co nastavim font.color ale trochu je tam odstin te barvy form.

Pokud mam bily text a světle pozadi plochy jde kolem pisma vidět stin v darvě form.

To same pokud mam text černy a tmave pozadi.

Udělal jsem to tak jak jste napsal.

Ale nechal NewWindowRgn

A text dal do komponenty label.

Je to užasne 

Dik za nakopnutí.

Nahlásit jako SPAM
IP: 81.30.255.–
Fala0
Duch
7. 7. 2012   #6
-
0
-

#1 dyžon
Zkus Firemonkey, je tam přímo vlastnost Opacity

Nahlásit jako SPAM
IP: 89.102.173.–
Jan Fiala MG-Ware s.r.o.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

Podobná vlákna

Form help — založil Borisek

HTTPS form — založil stanke

Form property — založil Joudak

Čekání na form — založil mamut

Form vs php — založil Paja2

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý