از قابلیتهای Delphi XE2 پوسته میباشد یعنی شما بدون نصب کامپوننتهای skin مثل vcl skin , alpha control , busines skin و ... به راحتی میتونین به برنامتون skin بدین برای این امر به ادرس در منو بروید Project/oprion و در پنجره جدید Application/Appearance را انتخاب کنید. حالا لیستی از skin پیش فرض که به همراه دلفی نصب میشود داریم برای اعمال skin مورد نظر کافی است تیک skin مورد نظر را زده تا در کمبوباکس پایین Default Style اسکین مورد نظر شما اضافه شود سپس کمبو باکس را روی skin مورد نظر خود قرار دهید و روی دکمه ok کلیک کنید حالا با اجرا برنامه skin شما اعمال خواهد شد . به همین راحتی .
شما میتوانید استایلهای دیگری را نیز از اینترنت دانلود و استفاده کنید
برای این کار بعد از دانلود فایلهای .vsf را در ادرس پوشه Style به ادرس
زیر کپی کنید
C:\Users\Public\Documents\RAD Studio\9.0\Styles
تا به لیست استایلها اضافه شود
شما میتوانید استایلها را به سلیقه خود تغییر و مورد استفاده قرار دهید به
همراه مجموعه دلفی یک Vcl Style Designer نصب میشود که از منو
Tools/Vcl Style Designer میتوانید از ان استفاده نموده و استایل مورد نظر خود را تغییر دهید
برای تغییر skin در زمان اجرا هم اول یونیهای Vcl.Themes,Vcl.Styles رو uses میکنید و از کد زیر استفاده کنید
procedure TForm1.btn1Click(Sender: TObject);
begin
if TStyleManager.IsValidStyle(getCurrentdir + '\Auric.vsf') then
TStyleManager.SetStyle(TStyleManager.LoadFromFile(getCurrentdir + '\Auric.vsf'));
end;
یا از کدهای زیر برای پر کردن یک کامبوباکس و ست کردن استایل با انتخاب هر کدام از انها استفاده کنید
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
TStyleManager.TrySetStyle(ComboBox1.Items[ComboBox1.ItemIndex]);
end;
procedure TForm1.FormShow(Sender: TObject);
var
s: String;
begin
ComboBox1.Items.BeginUpdate;
try
ComboBox1.Items.Clear;
for s in TStyleManager.StyleNames do
begin
memo1.Lines.Add(s);
ComboBox1.Items.Add(s);
end;
ComboBox1.Sorted := True;
// Select the style that's currently in use in the combobox
ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(TStyleManager.ActiveStyle.Name);
finally
ComboBox1.Items.EndUpdate;
end;
end;
میخواهم برنامه ای بنویسم که با هر رویداد جدید قرار است ما را با خبر کند یکی از روش ها استفاده از trayicon است.
1- برای این کار یک tray icon بر روی فرم میگذاریم و تایمر ان را تنظیم میکنیم
2- در رویداد onanimate دستوراتی را مینویسیم که قرار است چک کند رویداد جدید وجود دارد یا خیر و در انتها کد زیر برای باز شدن بالون استفاده میشود .
TrayIcon1.ShowBalloonHint ;
3- در کد پروژه که از قسمت project-> view source باز میشود در خط اول کد زیر را قرار میدهیم
Application.MainFormOnTaskbar := False;
4- از application event استفاده میکنیم و کد زیر را اضافه میکنیم
procedure TForm1.ApplicationEvents1Minimize(Sender: TObject);
begin
Hide;
end;
کد زیر را در فرم اصلی قرار دهید
procedure TMain.FormCreate(Sender: TObject);
begin
LoadKeyboardLayout('00000429', KLF_ACTIVATE);
end;
خاصیت KeyPreview از فرم رو به True تغییر بدین و فقط کد زیر رو تو رویداد KeyPress از فرم بذارین
procedure TForm1.FormKeyPress(Sender: TObject;
var
Key: Char);
begin
if
Key= #13 then begin
keybd_event(VK_TAB,1,0,0);
keybd_event(VK_TAB,1,KEYEVENTF_KEYUP,0);
Key:= #0;
end
;
end
;
کد زیر از دو رنگ در نمایش رکوردهای زوج و فرد استفاده میکند .
procedure TGridForm.DBGridDrawColumnCell( Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState) ; var grid : TDBGrid; row : integer; begin grid := sender as TDBGrid; row := grid.DataSource.DataSet.RecNo; if Odd(row) then grid.Canvas.Brush.Color := clSilver else grid.Canvas.Brush.Color := clDkGray; grid.DefaultDrawColumnCell(Rect, DataCol, Column, State) ; end; (* DBGrid OnDrawColumnCell *)