نمایش مختصات مکان نمای موس
کد:
var
pt:tpoint
begin
getcursorpos(pt);
label1.caption:= 'X : '+inttostr(pt.x)+' , Y :'+inttostr(pt.y);
end
| آخرين ارسالات انجمنها | |
نمایش مختصات مکان نمای موس
کد:
var
pt:tpoint
begin
getcursorpos(pt);
label1.caption:= 'X : '+inttostr(pt.x)+' , Y :'+inttostr(pt.y);
end
افزودن خصوصیت Read Only به یک فایل
کد:
function SetFileReadOnly (FileName: String; ReadOnly: Boolean = True): Boolean;
begin
if not FileExists (FileName) then
Result := False
else
begin
if ReadOnly then
Result := SetFileAttributes (PChar (FileName), GetFileAttributes (PChar (FileName)) or FILE_ATTRIBUTE_READONLY)
else
Result := SetFileAttributes (PChar (FileName), FILE_ATTRIBUTE_NORMAL);
end;
end;
تغییر خودکار زبان به فارسی در بعضی از Edit ها
فرض کنید میخواهیم در پروژه خود کاربر بتواند بدون تغییر صفحه کلید (Alt + Shift)در برخی Edit ها امکان تایپ فارسی را داشته باشد
برای این کار دو عمل ساده را باید انجام داد :
۱) معرفی زبان فارسی به پروژه
ابتدا کد اصلی پروژه را باز کنید واین خط رابعد از خط Application.Initialize اضافه کنید یا در OnShow فرم اصلی این کد را بنویسید.
Application.BiDiKeyboard:='00000429';
۲) تنظیم خاصیت BiDimode به حالت bdRightToLeft برای هر Edit مورد نظر
حال پروژه را اجرا کنید.
البته بجای Application.BiDiKeyboard:='00000429' میتوانید از کد زیر هم استفاده کنید :
LoadKeyboardLayout(PChar('00000429'), KLF_ACTIVATE
Reset کردن فرم ورود اطلاعات
کدی برای پاک کردن Edit ها , DBEdit ها MaskEdit ها و Memo های یک فرم :
کد:
procedure clear_all;
var
cnt : integer;
begin
Try
for cnt := 0 to Screen.ActiveForm.ComponentCount - 1 do
begin
if (Screen.ActiveForm.Components[cnt].ClassName = 'TEdit')
AND (TEdit(Screen.ActiveForm.Components[cnt]).Tag = 0 ) then
TEdit(Screen.ActiveForm.Components[cnt]).Clear
else if (Screen.ActiveForm.Components[cnt].ClassName = 'TMaskEdit') then
TMaskEdit(Screen.ActiveForm.Components[cnt]).Clear
else if (Screen.ActiveForm.Components[cnt].ClassName = 'TDBEdit')
AND (TDBEdit(Screen.ActiveForm.Components[cnt]).Tag = 0 ) then
TDBEdit(Screen.ActiveForm.Components[cnt]).Clear
else if (Screen.ActiveForm.Components[cnt].ClassName = 'TDBMemo') then
TDBMemo(Screen.ActiveForm.Components[cnt]).Clear;
end;
Except
// show error message
end;
end;
از این تابع میتوان در دکمۀ "پاک کردن فرم" استفاده کرد.
کد بستن Alt + F4 و On Top کردن فرم
کد بستن Alt + F4 :
کد PHP:
if (key =VK_F4 ) And ( ssAlt in shift ) then Key:=0
کد On Top کردن فرم :
procedure TForm1.FormShow(Sender: TObject);
begin
SetWindowPos(Form1.Handle,HWND_TOPMOST,
0, 0, 0, 0,
SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);
end;
لود کردن تصاویر gif در دلفی
Uses ..., axctrls;
procedure TForm1.Open1Click(Sender: TObject);
var
f : TFileStream;
graphic : TOleGraphic;
begin
if OpenDialog1.Execute then
begin
graphic := TOleGraphic.Create;
f := TFileStream.Create (OpenDialog1.FileName,
fmOpenRead or fmShareDenyNone);
try
graphic.LoadFromStream(f);
Image1.Picture.Assign(graphic);
finally
f.Free
end
end
end;
گرفتن عکس از اشیاء موجود در فرم
توضیح با مثال:
یک استرینق گراید در فرم داریم می خواهیم تصویری از محتویاتش در یک TImage داشته باشیم:
با فرمان زیر تصویر استرینق گراید را به حافظه کلیپ برد منتقل می کنیم:
uses clipbrd;
procedure TForm1.Button1Click(Sender: TObject);
var
CopiaGRID : TBitmap;
begin
CopiaGRID := TBitmap.Create;
CopiaGRID.Width := StringGrid1.Width;
CopiaGRID.Height := StringGrid1.Height ;
StringGrid1.PaintTo (CopiaGRID.Canvas.Handle, 0, 0);
clipboard.assign(CopiaGRID);
CopiaGRID.Destroy;
end;
حالا به دستور زیر تصویر را در یک TImage فرا خوانی می کنیم:
procedure TForm1.Button2Click(Sender: TObject);
var
bmp: TBitmap;
begin
if Clipboard.HasFormat(CF_PICTURE) then
begin
bmp := TBitmap.Create;
try
bmp.Assign(Clipboard);
Image1.Picture.Bitmap.Assign(bmp);
except
// Can't convert
end;
bmp.Free;
end else
begin
ShowMessage('تصويري در حافظه مو جود نيست');
end;
end;
ساخت يك فرم بيضي شكل
در رويداد FormCreate ابتدا يك متغير تعريف مي كنيم :
کد:
var h: THandle;
سپس با استفاده از كد زير ابتدا يك بيضي ساخته و سپس فرم را به شكل اين بيضي در مي آوريم:
کد:
h := CreateEllipticRgn(40,40,300,200);
SetWindowRgn(form1.Handle,h,TRUE);
جلوگيري از نمايش يك فرم
در دلفي مي توان با استفاده از متد Show يك فرم را نمايش داد.
در اين قسمت مي خواهيم كه در صورت صحيح بودن يك شرط از نمايش فرم جلوگيري شود.
براي اين كار، با توجه به اينكه با فراخواني متد Show در فرم اول ، رويداد Onshow از فرم دوم اجرا مي شود. بايد از كد زير در اين رويداد(يعني رويداد onShow فرم دوم) استفاده كنيم :
کد:
if Form1.Edit1.Text=IntToStr(1) then
PostMessage(form2.Handle,WM_CLOSE,0,0);
دستور PostMessage با پارامتر WM_CLOSE باعث عدم نمايش فرم مي شود. در كد بالا در صورتي كه مقدار Edit1 برابر با 1 شود، Form2 نمايش داده نمي شود.
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)
کاربران خواننده این موضوع : 0فعالیت :(نمایش - خوانندگان)
There are no names to display.