Posalji mi PM pa cu ti pomoci
Delphi i skinovi?
Zaključano
Zakačeno
Evo jedna fina skin komponenta ako zelite da vasa aplikacije poprimi izlged opere,.... :
http://www.saarixx.info/sxskincomponents/en/downloads.php
Pozzz
http://www.saarixx.info/sxskincomponents/en/downloads.php
Pozzz
Potpis
SERVIA NOSTRUM REGNUM!
Pozdrav svima!
Jel zna neko možda kako da se ovaj workaround modifikuje kako bi se caption održao i kada forma izgubi fokus?
Jel zna neko možda kako da se ovaj workaround modifikuje kako bi se caption održao i kada forma izgubi fokus?
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;
Pretpostavljam da ti je to alternativa za VCLSkins
I ja sam pokusavao tako nesto, ali nisam dobio zadovoljavajuce rezultate, pa sam se odlucio za AlphaSkins komponente...
Bio sam na njihovom sajtu http://www.alphaskins.com i mogu ti reći da ovi skinovi deluju prilično dobro.
Ono što nisam uspeo da provalim je, kolike su mi mogućnosti ako koristim ovu verziju koja može da se downloaduje, odnosno jel ovo freeeetool ili ne ?
Kakva su tvoja iskustva?
Hvala ...
Ono što nisam uspeo da provalim je, kolike su mi mogućnosti ako koristim ovu verziju koja može da se downloaduje, odnosno jel ovo freeeetool ili ne ?
Kakva su tvoja iskustva?
Hvala ...
Nemogucnost otvaranja skina.
Kad hocu da otvorim skin u builderu javlja mi:
This is Older Skin File
Please update to new version
Jasno mi je sta znaci poruka, ali ne znam kako da nadjem novije skinove.
Pomoc?
Kad hocu da otvorim skin u builderu javlja mi:
This is Older Skin File
Please update to new version
Jasno mi je sta znaci poruka, ali ne znam kako da nadjem novije skinove.
Pomoc?
Pa probaj na zvanicnom sajtu...
http://www.link-rank.com/
http://www.link-rank.com/
Evo da bi se odrzao 'Caption', bilo je potrebno
malo znati i WinApi
Pozdrav.
p.s.
Prilozen je i primer.
malo znati i WinApi
Code:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, WinSkinData;
type
TForm1 = class(TForm)
SkinData1: TSkinData;
procedure FormPaint(Sender: TObject);
private
{ private declarations }
FCaption: TCaption;
procedure CMFontChanged(var Msg: TMessage);
message CM_FONTCHANGED;
procedure WMWinIniChange(var Msg: TWMWinIniChange);
message WM_WININICHANGE;
procedure WMNCPaint(var Msg: TWMNCPaint);
message WM_NCPAINT;
procedure WMNCActivate(var Msg: TWMNCActivate);
message WM_NCACTIVATE;
procedure WMActivate(var Msg: TWMNCActivate);
message WM_ACTIVATE;
procedure WMSetText(var Msg: TWMSetText);
message WM_SETTEXT;
procedure WMSysCommand(var Msg: TWMSysCommand);
message WM_SYSCOMMAND;
procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
message WM_GETMINMAXINFO;
procedure DrawCaption(AActive: Boolean);
procedure SetCaption(const Value: TCaption);
protected
{ protected declarations }
public
{ public declarations }
published
{ published declarations }
property Caption: TCaption read FCaption write SetCaption;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DrawCaption(AActive: Boolean);
var
iNCM: TNonClientMetrics;
iRect: TRect;
iCanvas: TCanvas;
iFlags: Integer;
Natpis: string;
begin
Natpis := 'Milan';
if (BorderStyle <> bsNone) then
begin
iRect.Left := 30;
iRect.Top := 9;
iRect.Bottom := 25;
iRect.Right := 200;
iCanvas := TCanvas.Create;
iCanvas.Handle := GetWindowDC(Handle);
with iCanvas do
try
Font := Self.Font;
iNCM.cbSize := SizeOf(iNCM);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(iNCM), @iNCM,
0);
if (BorderStyle in [bsToolWindow, bsSizeToolWin]) then
Font.Height := ((iNCM.lfCaptionFont.lfHeight * 7) div 8)
else
Font.Height := iNCM.lfCaptionFont.lfHeight;
if (iNCM.lfCaptionFont.lfWeight < 700) then
Font.Style := []
else
Font.Style := [fsBold];
Font.Size := 12;
Brush.Style := bsClear;
iFlags := DT_EXPANDTABS or DT_LEFT or DT_VCENTER or
DT_SINGLELINE or DT_END_ELLIPSIS;
iFlags := DrawTextBiDiModeFlags(iFlags);
if (AActive) then
begin
Font.Color := GetSysColor(COLOR_BACKGROUND);
OffsetRect(iRect, + 1, + 1);
DrawText(Handle, PChar(Natpis), - 1, iRect, iFlags);
OffsetRect(iRect, - 1, - 1);
Font.Color := GetSysColor(COLOR_CAPTIONTEXT)
end
else
Font.Color := GetSysColor(COLOR_GRAYTEXT);
DrawText(Handle, PChar(Natpis), - 1, iRect, iFlags)
finally
ReleaseDC(Self.Handle, Handle);
iCanvas.Free
end;
end;
end;
procedure TForm1.WMNCActivate(var Msg: TWMNCActivate);
begin
inherited;
DrawCaption(Msg.Active)
end;
procedure TForm1.WMActivate(var Msg: TWMNCActivate);
begin
inherited;
DrawCaption(Msg.Active)
end;
procedure TForm1.WMNCPaint(var Msg: TWMNCPaint);
begin
inherited;
DrawCaption(Active)
end;
procedure TForm1.WMSetText(var Msg: TWMSetText);
begin
inherited;
DrawCaption(Active)
end;
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
inherited;
DrawCaption(Active)
end;
procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
begin { TForm1.WMGetMinMaxInfo }
inherited;
DrawCaption(Active)
end;
procedure TForm1.SetCaption(const Value: TCaption);
begin
if (FCaption <> Value) then
begin
FCaption := Value;
Perform(WM_NCPAINT, 0, 0)
end;
end;
procedure TForm1.CMFontChanged(var Msg: TMessage);
begin
inherited;
Perform(WM_NCPAINT, 0, 0)
end;
procedure TForm1.WMWinIniChange(var Msg: TWMWinIniChange);
begin
inherited;
Perform(WM_NCPAINT, 0, 0)
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
inherited;
DrawCaption(Active)
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, WinSkinData;
type
TForm1 = class(TForm)
SkinData1: TSkinData;
procedure FormPaint(Sender: TObject);
private
{ private declarations }
FCaption: TCaption;
procedure CMFontChanged(var Msg: TMessage);
message CM_FONTCHANGED;
procedure WMWinIniChange(var Msg: TWMWinIniChange);
message WM_WININICHANGE;
procedure WMNCPaint(var Msg: TWMNCPaint);
message WM_NCPAINT;
procedure WMNCActivate(var Msg: TWMNCActivate);
message WM_NCACTIVATE;
procedure WMActivate(var Msg: TWMNCActivate);
message WM_ACTIVATE;
procedure WMSetText(var Msg: TWMSetText);
message WM_SETTEXT;
procedure WMSysCommand(var Msg: TWMSysCommand);
message WM_SYSCOMMAND;
procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
message WM_GETMINMAXINFO;
procedure DrawCaption(AActive: Boolean);
procedure SetCaption(const Value: TCaption);
protected
{ protected declarations }
public
{ public declarations }
published
{ published declarations }
property Caption: TCaption read FCaption write SetCaption;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DrawCaption(AActive: Boolean);
var
iNCM: TNonClientMetrics;
iRect: TRect;
iCanvas: TCanvas;
iFlags: Integer;
Natpis: string;
begin
Natpis := 'Milan';
if (BorderStyle <> bsNone) then
begin
iRect.Left := 30;
iRect.Top := 9;
iRect.Bottom := 25;
iRect.Right := 200;
iCanvas := TCanvas.Create;
iCanvas.Handle := GetWindowDC(Handle);
with iCanvas do
try
Font := Self.Font;
iNCM.cbSize := SizeOf(iNCM);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(iNCM), @iNCM,
0);
if (BorderStyle in [bsToolWindow, bsSizeToolWin]) then
Font.Height := ((iNCM.lfCaptionFont.lfHeight * 7) div 8)
else
Font.Height := iNCM.lfCaptionFont.lfHeight;
if (iNCM.lfCaptionFont.lfWeight < 700) then
Font.Style := []
else
Font.Style := [fsBold];
Font.Size := 12;
Brush.Style := bsClear;
iFlags := DT_EXPANDTABS or DT_LEFT or DT_VCENTER or
DT_SINGLELINE or DT_END_ELLIPSIS;
iFlags := DrawTextBiDiModeFlags(iFlags);
if (AActive) then
begin
Font.Color := GetSysColor(COLOR_BACKGROUND);
OffsetRect(iRect, + 1, + 1);
DrawText(Handle, PChar(Natpis), - 1, iRect, iFlags);
OffsetRect(iRect, - 1, - 1);
Font.Color := GetSysColor(COLOR_CAPTIONTEXT)
end
else
Font.Color := GetSysColor(COLOR_GRAYTEXT);
DrawText(Handle, PChar(Natpis), - 1, iRect, iFlags)
finally
ReleaseDC(Self.Handle, Handle);
iCanvas.Free
end;
end;
end;
procedure TForm1.WMNCActivate(var Msg: TWMNCActivate);
begin
inherited;
DrawCaption(Msg.Active)
end;
procedure TForm1.WMActivate(var Msg: TWMNCActivate);
begin
inherited;
DrawCaption(Msg.Active)
end;
procedure TForm1.WMNCPaint(var Msg: TWMNCPaint);
begin
inherited;
DrawCaption(Active)
end;
procedure TForm1.WMSetText(var Msg: TWMSetText);
begin
inherited;
DrawCaption(Active)
end;
procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
begin
inherited;
DrawCaption(Active)
end;
procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
begin { TForm1.WMGetMinMaxInfo }
inherited;
DrawCaption(Active)
end;
procedure TForm1.SetCaption(const Value: TCaption);
begin
if (FCaption <> Value) then
begin
FCaption := Value;
Perform(WM_NCPAINT, 0, 0)
end;
end;
procedure TForm1.CMFontChanged(var Msg: TMessage);
begin
inherited;
Perform(WM_NCPAINT, 0, 0)
end;
procedure TForm1.WMWinIniChange(var Msg: TWMWinIniChange);
begin
inherited;
Perform(WM_NCPAINT, 0, 0)
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
inherited;
DrawCaption(Active)
end;
end.
Pozdrav.
p.s.
Prilozen je i primer.
To mi reci! Svaka čast majstore!
Potpis
Delphi i skinovi bi trebalo na TOP
Meni je za seminarski trebala skin komponenta (seminarski asm trebao da pokrenem na win2000, a ja sam hteo da aplikacija izgleda fancy), i trazio sam ih na netu, downloadovao sve i svasta! Sve komponente su bile SW, izbacivae su neke errore, warninge, menjale caption i sl.
Na kraju sam skinuo komponentu DynamicSkinForm sa sajta http://www.almdev.com/
Skinuo sam i primere aplikacija sa source-om! Medjutim i ova komponenta je bila SW i aplikacija mi je izbacivala poruku da koristim neregistrovanu verziju pri pokretanju! Medjutim, jednom sam slucajno editovao njihov maindemo i pokrenuo ga i nije mi izbacivao nikakve poruke! Zatim sam ceo kod moje aplikacije prekopirao u njihov demo (prvo ga ispraznio) i komponenta je "mislila" da je registrovana! Program sam zavrsio i dodao skinove i sve normalno radi bez ikakvim SW upozorenja! Tako da ako neko josh ne moze da nadje pravo resenje za skinove, nek skine gore navedenu komponentu i svoj projekat pocne da gradi iz njihovog demo-a!
Pozdrav
Na kraju sam skinuo komponentu DynamicSkinForm sa sajta http://www.almdev.com/
Skinuo sam i primere aplikacija sa source-om! Medjutim i ova komponenta je bila SW i aplikacija mi je izbacivala poruku da koristim neregistrovanu verziju pri pokretanju! Medjutim, jednom sam slucajno editovao njihov maindemo i pokrenuo ga i nije mi izbacivao nikakve poruke! Zatim sam ceo kod moje aplikacije prekopirao u njihov demo (prvo ga ispraznio) i komponenta je "mislila" da je registrovana! Program sam zavrsio i dodao skinove i sve normalno radi bez ikakvim SW upozorenja! Tako da ako neko josh ne moze da nadje pravo resenje za skinove, nek skine gore navedenu komponentu i svoj projekat pocne da gradi iz njihovog demo-a!
Pozdrav
Zao mi je sto budim ovu temu iz mrtvih ali to vam je :)
Malopre sam downloadovao novu verziju VclSkina i cini se da onaj 'fix' vise ne radi. Zna li neko kako da resim ovaj problem? Pokusavao sam svasta al ne ide...
Malopre sam downloadovao novu verziju VclSkina i cini se da onaj 'fix' vise ne radi. Zna li neko kako da resim ovaj problem? Pokusavao sam svasta al ne ide...
A meni se cini da ne rade dobro AlphaSkins komponente sad nesto (Nova verzija, mislim da je do skinova nesto)
Meni rade super, samo sto ova 'lite' verzija nema sve komponente, nego tek neke osnovne... Zna li neko kako do full verzije doci? :P
Ako neko uspe da pokupi sve to na jedno mesto, a ne bude mu problem da to sve uploada neka napise linkove za download!
VCLSkin + c i ostale ali koje rade!
Hvala unapred!
VCLSkin + c i ostale ali koje rade!
Hvala unapred!
Potpis
izmenjeno 2 puta, poslednji put blackholemix 16.11.2008. u 14:54
Izmene poruke
- blackholemix16.11.2008. u 14:54zapis iz teksta poruke
- blackholemix16.11.2008. u 14:54zapis iz teksta poruke
ovo sto je prilozio milance_kg radi, super je..samo sto nije izmenio tamo u bilderu skin, da pomeri onaj caption..pa napise jedan preko drugog u ovom njegovom...a u vezi Nemanje Avramović, moze ovako, ali kada se pomeri forma ili minimizira onda ne radi, zato samo isti ovaj cod kopirati i u dogadjaj OnRiseze i radi uvek..
Poštovanje
Nov sam u svetu delphija te me interesuju neke stvari.
Preuzeo sam RAD studio XE i sad me intereisra kad odem u Project options application advans i imam ponuđene teme, kako tamo ubacim temu preuzetu s net-a, i kako ju zaista postavim kao difult temu, Jer kad ju odaberem u tom istom prozoru i stavim kao difult klinkenm ok nis se ne promjeni.
Googl-oa sam dosta nasao sam mnogo toga, ali vecinom o kreiranju novog skina.
Ukoliko u panelu mi se nudi skin koji ja zelim koristit...kako da to ucinim
Nov sam u svetu delphija te me interesuju neke stvari.
Preuzeo sam RAD studio XE i sad me intereisra kad odem u Project options application advans i imam ponuđene teme, kako tamo ubacim temu preuzetu s net-a, i kako ju zaista postavim kao difult temu, Jer kad ju odaberem u tom istom prozoru i stavim kao difult klinkenm ok nis se ne promjeni.
Googl-oa sam dosta nasao sam mnogo toga, ali vecinom o kreiranju novog skina.
Ukoliko u panelu mi se nudi skin koji ja zelim koristit...kako da to ucinim