Evo linka za skinove
http://rapidshare.de/files/2210627/skins.rar.html
Izbacio sam .jpg primere da bih smanjio velicinu.
Nadam se da je to sta si trazio.
Delphi i skinovi?
Zaključano
Zakačeno
evo downloadujem, javicu ti da li je to to... inace, imas pm
Potpis
Šta sa ovim SKN fajlovima?
Skonto sam!
ej meni se ne pravi za svaki program po jedan skin, zato mislim da je bolje da sve skinove zamenimo pomerajuci onaj x offset na ... 2000 :) i onda da u onpaint event forme ubacimo
sve je ovo ok, osim sto mi se kreira beli pravougaonik oko teksta... da li neko zna kako napraviti tu "sliku" transparentnom?
Code:
var acanvas: TCanvas;
aDC: HDC;
begin
//uzimanje canvas-a desktopa
acanvas := TCanvas.Create;
aDC := GetDC(0);
acanvas.Handle := aDC;
//crtanje po desktopu
//mozete koristiti acanvas.Font property za podesavanje font-a
acanvas.textout(form1.left+17,form1.top+7,form1.caption);
end;
var acanvas: TCanvas;
aDC: HDC;
begin
//uzimanje canvas-a desktopa
acanvas := TCanvas.Create;
aDC := GetDC(0);
acanvas.Handle := aDC;
//crtanje po desktopu
//mozete koristiti acanvas.Font property za podesavanje font-a
acanvas.textout(form1.left+17,form1.top+7,form1.caption);
end;
sve je ovo ok, osim sto mi se kreira beli pravougaonik oko teksta... da li neko zna kako napraviti tu "sliku" transparentnom?
Potpis
TextMode ti stoji na Opaque, a dreba da bude Transparent. Ne secam se tacno koja se funkcija koristi za menjanje pa ako niko ne pomogne dok sam na poslu pogledacu pa cu napisati.
Potpis
provalio sam
ovo je bila kljuchna linija:
evo gotovog koda, a imate i projekat APLODOVAN :)
x i y offset su koordinate za pozicioniranje teksta u odnosu na gornju i levu ivicu porozora, a sFont je property kojim podesavate izgled fonta u titlebar-u
napokon mozemo i caption da menjamo u runtime-u :)
edit: samo ne znam da li na kraju koda treba staviti sFont.Free; ili sFont.Destroy;
radi sa obe instrukcije, a radi i bez njih (samo koliko ce raditi? :P)
ja stavljam free, ako vas bash zanima
ovo je bila kljuchna linija:
Code:
acanvas.Brush.Style:=bsClear;
acanvas.Brush.Style:=bsClear;
evo gotovog koda, a imate i projekat APLODOVAN :)
x i y offset su koordinate za pozicioniranje teksta u odnosu na gornju i levu ivicu porozora, a sFont je property kojim podesavate izgled fonta u titlebar-u
Code:
procedure TForm1.FormPaint(Sender: TObject);
var acanvas: TCanvas;
aDC: HDC;
x_offset,y_offset:integer;
sFont:TFont;
begin
sFont:=TFont.Create;
//podesavanja
x_offset:=30;
y_offset:=5;
sFont.Style:=[fsBold];
sFont.Size:=10;
////ne dirati ispod
acanvas := TCanvas.Create;
aDC := GetDC(0);
acanvas.Handle := aDC;
acanvas.Brush.Style:=bsClear;
acanvas.Font:=sFont;
acanvas.textout(form1.left+x_offset,form1.top+y_offset,form1.caption);
end;
procedure TForm1.FormPaint(Sender: TObject);
var acanvas: TCanvas;
aDC: HDC;
x_offset,y_offset:integer;
sFont:TFont;
begin
sFont:=TFont.Create;
//podesavanja
x_offset:=30;
y_offset:=5;
sFont.Style:=[fsBold];
sFont.Size:=10;
////ne dirati ispod
acanvas := TCanvas.Create;
aDC := GetDC(0);
acanvas.Handle := aDC;
acanvas.Brush.Style:=bsClear;
acanvas.Font:=sFont;
acanvas.textout(form1.left+x_offset,form1.top+y_offset,form1.caption);
end;
napokon mozemo i caption da menjamo u runtime-u :)
edit: samo ne znam da li na kraju koda treba staviti sFont.Free; ili sFont.Destroy;
radi sa obe instrukcije, a radi i bez njih (samo koliko ce raditi? :P)
ja stavljam free, ako vas bash zanima
Potpis
Code:
procedure TForm1.FormPaint(Sender: TObject);
var acanvas: TCanvas;
aDC: HDC;
x_offset,y_offset:integer;
sFont:TFont;
begin
sFont:=TFont.Create;
//podesavanja
x_offset:=30;
y_offset:=5;
sFont.Style:=[fsBold];
sFont.Size:=10;
////ne dirati ispod
acanvas := TCanvas.Create;
aDC := GetDC(0);
acanvas.Handle := aDC;
acanvas.Brush.Style:=bsClear;
acanvas.Font:=sFont;
acanvas.textout(form1.left+x_offset,form1.top+y_offset,form1.caption);
sFont.Free;
acanvas.Free;
end;
procedure TForm1.FormPaint(Sender: TObject);
var acanvas: TCanvas;
aDC: HDC;
x_offset,y_offset:integer;
sFont:TFont;
begin
sFont:=TFont.Create;
//podesavanja
x_offset:=30;
y_offset:=5;
sFont.Style:=[fsBold];
sFont.Size:=10;
////ne dirati ispod
acanvas := TCanvas.Create;
aDC := GetDC(0);
acanvas.Handle := aDC;
acanvas.Brush.Style:=bsClear;
acanvas.Font:=sFont;
acanvas.textout(form1.left+x_offset,form1.top+y_offset,form1.caption);
sFont.Free;
acanvas.Free;
end;
Mislim da canvas sam oslobodi font, ali nece mu nicta skoditi ako ga mi samo oslobodimo.
Potpis
Evo kako sam ja resio problem skinova malko drugacije:
Ubacio sam TWebBrowser, skinove pravim u .html formatu, a sve sljaka tako sto kada se klikne na neki link, aktivira se OnEndNavigate procedura koja radi handling. Naravno delphi komponente koje idu preko html-a se iscrtavaju tako sto se u <title> </title> deo .html koda u sustini nalaze podaci o njima, pa imam jedan poprilicno prost loader za to.
Mnogo jednostavno, zar ne?
Ubacio sam TWebBrowser, skinove pravim u .html formatu, a sve sljaka tako sto kada se klikne na neki link, aktivira se OnEndNavigate procedura koja radi handling. Naravno delphi komponente koje idu preko html-a se iscrtavaju tako sto se u <title> </title> deo .html koda u sustini nalaze podaci o njima, pa imam jedan poprilicno prost loader za to.
Mnogo jednostavno, zar ne?
@ntojzan:
Da li imaš neki primer programa urađen tako? Nešto što bi mogao postaviti ovde (ili mi poslati na mail), da pogledamo kako stvar šljaka u praksi.
ss.
Da li imaš neki primer programa urađen tako? Nešto što bi mogao postaviti ovde (ili mi poslati na mail), da pogledamo kako stvar šljaka u praksi.
ss.
Potpis
When something is hard to do, then it's not worth doing.
Hvala Srki!!!
@ntojzan: da, mogao bi neki demo da okachish ovde negde
@ntojzan: da, mogao bi neki demo da okachish ovde negde
Potpis
kako bi isti kod radio na svim formama, malo menjamo moj kod:
Code:
procedure TForm1.FormPaint(Sender: TObject);
var acanvas: TCanvas;
aDC: HDC;
x_offset,y_offset:integer;
sFont:TFont;
begin
sFont:=TFont.Create;
//podesavanja
x_offset:=30;
y_offset:=5;
sFont.Style:=[fsBold];
sFont.Size:=10;
//ne dirati ispod
acanvas := TCanvas.Create;
aDC := GetDC(0);
acanvas.Handle := aDC;
acanvas.Brush.Style:=bsClear;
acanvas.Font:=sFont;
acanvas.textout((Sender as TForm).left+x_offset,(Sender as TForm).top+y_offset,(Sender as TForm).caption);
sFont.Free;
acanvas.free;
end;
procedure TForm1.FormPaint(Sender: TObject);
var acanvas: TCanvas;
aDC: HDC;
x_offset,y_offset:integer;
sFont:TFont;
begin
sFont:=TFont.Create;
//podesavanja
x_offset:=30;
y_offset:=5;
sFont.Style:=[fsBold];
sFont.Size:=10;
//ne dirati ispod
acanvas := TCanvas.Create;
aDC := GetDC(0);
acanvas.Handle := aDC;
acanvas.Brush.Style:=bsClear;
acanvas.Font:=sFont;
acanvas.textout((Sender as TForm).left+x_offset,(Sender as TForm).top+y_offset,(Sender as TForm).caption);
sFont.Free;
acanvas.free;
end;
Potpis
Upravo radim na jednom programu, nije bas gotov, ali skin je ok, spakovano je oko 1MB, pa ako nekog zanima nek mi posalje mail, pa cu da posaljem mailom...
Evo, stavio sam arhivu online, link je: http://www.aweart.com/aweart_v0.78.rar
Svaka čast, super si uradio ovo sa htmlom, ideja je za svaku pohvalu.
ss.
ss.
Potpis
When something is hard to do, then it's not worth doing.
Pa dobro, podeli source sa nama.
sta bi s' ovim? i sto ti link ne radi vishe?
daj sorrrrrssssssss :))
daj sorrrrrssssssss :))
Potpis
Zašto onaj gore navedeni kod ne radi kada Forma iba atribut AlphaBledn postavljen na True. Caption mi stavlja na prozor ispod.
moj kod? pa ne znam, iskreno, nikad nisam pokusavao sa alphablend-om da postavim skin
@Srki_82: kako napreduju komponente?
@Srki_82: kako napreduju komponente?
Potpis
Komponente nisam odavno ni pipnuo. Strog i ja radimo na nekoj igri. Polako je privodimo kraju... danas sam zavrsio AutoUpdate komponentu tako da ce sve nase sledece igre imati ovu mogucnost :)
Verovatno te komponente necu ni zavrsiti... zaista se nema vremena.
Verovatno te komponente necu ni zavrsiti... zaista se nema vremena.