| Autor | Správa |
poma
 Užívateľ
 Založený: 05.04.2008 Príspevky: 15 Bydlisko: Žilina
 | Zaslal: So 05.04.08 13:55 |   |
aHoj. Pouzivam Borland Delphi 7 Enterprise (zatial trial verziu) a potrebujem spriehladnit pozadie formulara na 30%. Da sa to?
Na inom fore mi poradili nastavit AlhaBlend a AlphaBlendValue, ale to nechcem, pretoze mi spriehladnia cely formular vratane vrchnej listy a vsetkych objektov na nom (tie chcem mat normalne, nepriehladne). Taktiez som skusala Transparent a TransparentColor, ale to tiez nie je ono, pretoze spriehladnia danu farbu na formulari na 100%..
Za kazdy napad budem vdacna. |
| |
  |
 |
stopa27
 Užívateľ
 Založený: 19.09.2006 Príspevky: 729 Bydlisko: Ružomberok<->Bratislava (21)
 |
Možno vytvoriť druhý form, ktorý by bol priesvitný, pričom prvý by bol navizaný na akcie druhého - presun a zmena veľkosti.
Prvý by používal alphablend.
nejako takto
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TForm1 = class(TForm)
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.FormShow(Sender: TObject);
begin
form2.show;
end;
end.
------------------------------------------------------------------------------------------
a form2:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TForm2 = class(TForm)
TrackBar1: TTrackBar;
procedure TrackBar1Change(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.TrackBar1Change(Sender: TObject);
begin
form1.alphablend:=true;
form1.alphablendvalue:=form2.trackbar1.Position;
end;
procedure TForm2.FormResize(Sender: TObject);
begin
form1.top:=form2.Top;
form1.left:=form2.left;
form1.Height:=form2.Height;
form1.Width:=form2.Width;
form1.update;
end;
procedure TForm2.FormCanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
form1.top:=form2.Top;
form1.left:=form2.left;
form1.Height:=form2.Height;
form1.Width:=form2.Width;
form1.update;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
form2.Color:=clred;
form2.FormStyle:=fsstayontop;
form2.transparentcolor:=true;
form2.TransparentColorValue:=clred;
form1.enabled:=false;
trackbar1.min:=0;
trackbar1.max:=255;
end;
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
application.Terminate;
end;
//Problem pri minimalizovani okna2 - okno1 sa neminimalizuje
//if form2.windowstate=wsminimized then form1.windowstate:=wsminimized;
//if form2.WindowState=wsnormal then form1.WindowState:=wsnormal;
//len kde to umiestnit,aby sa to minimalizovalo a maximalizovalo subezne???
//procedura onminimize asi neni
end.
Pri pohybe to vyzerá zvláštne - za form2 sa pohybuje form1 s oneskorenim. |
| |
       |
 |
poma
 Užívateľ
 Založený: 05.04.2008 Príspevky: 15 Bydlisko: Žilina
 | Zaslal: Št 10.04.08 18:39 |   |
dik za snahu, ale neviem co sa tym da dosiahnut
Spustia sa oba formy, posuniem trackbar na tom druhom => prvy form sa uplne spriehladni a koniec... lenze ako nastavim tu 30%tnu priesvitnost? mozno som len nechapava alebo nieco robim zle
///edit///
potrebujem bud 30%tne priehladne pozadie a vsetko ostatne normalne nepriehladne alebo uplne priehladne pozadie a vsetko ostatne 30%tne priehladne... |
| |
  |
 |
stopa27
 Užívateľ
 Založený: 19.09.2006 Príspevky: 729 Bydlisko: Ružomberok<->Bratislava (21)
 |
procedure Tform2.formcreate(Sender: TObject);
begin
form1.alphablend:=true;
form1.alphablendvalue:=trunc(255*0.3);
end;
trackbar bol len ilustracny . - treba ho vyhodit aj s jeho procedurou.
Vsetky objekty treba davat do form2 |
| |
       |
 |
poma
 Užívateľ
 Založený: 05.04.2008 Príspevky: 15 Bydlisko: Žilina
 | Zaslal: Pi 11.04.08 19:19 |   |
stopa27: wow, si dobry, velka vdaka, mas to u mna! ani by ma nenapadlo, ze sa to da riesit takto. fakt diky!  |
| |
  |
 |
eragon124
 Užívateľ
 Založený: 11.11.2008 Príspevky: 23
 | Zaslal: Ne 11.01.09 15:55 |   |
prosim ako to mam urobit teeraz som s tim zacal a som uplna lama
vitvorim novu aplikaciu cize form1 a potom este dalsi form cize form2
2x kliknem na form 1 a napisem tam
form1.alphablend:=true;
form1.alphablendvalue:=trunc(255*0.3);
potom vlozim napr nejaky button do form2 aby ten button nebol priesvitny
ale ked to spustim tak sa spusti iba priesvitni form1 a nic viac |
| |
  |
 |
stopa27
 Užívateľ
 Založený: 19.09.2006 Príspevky: 729 Bydlisko: Ružomberok<->Bratislava (21)
 | Zaslal: Ne 11.01.09 16:07 |   |
v form1 ma byt iba 1 procedura a to
procedure TForm1.FormShow(Sender: TObject);
begin
form2.show;
end;
a vsetko ostatne pises do form2 |
_________________ Quick memory editor 5.5 (RAW 0xFC58C) : Hi crackers, please don't crack me. Thank you! | |
       |
 |
eragon124
 Užívateľ
 Založený: 11.11.2008 Príspevky: 23
 | Zaslal: Ne 11.01.09 16:31 |   |
zas mi to robi to iste form2 mi nechce spustit ani zasvet spiti iba priesvitne form1
iste ja robim nieco zle ane neviem co |
| |
  |
 |
stopa27
 Užívateľ
 Založený: 19.09.2006 Príspevky: 729 Bydlisko: Ružomberok<->Bratislava (21)
 | Zaslal: Ne 11.01.09 17:04 |   |
skus len 2x kliknut na form 1 a vsetko odtial vymazat a nakopirovat tam kod pre form1 a to iste s form2 a malo by to ist. tazko sa mi hada co mas zle, lebo toto fungovalo. ak ti to nepojde skus sem dat to co ti nefunguje. |
| |
       |
 |
|