آموزش نكات دلفي
آيا می دانيد
آيا می دانيد توابع تبديل فرمت ذيل در دلفی وجود دارند که وقوع خطا را نيز نمايش می دهند. يعنی همه اين توابع در صورتی که در هنگام تبديل خطايی رخ دهد مقدار False را به عنوان خروجی بر می گردانند.
|
تبديل رشته به منطقی با خروجی منطقی |
function TryStrToBool(const S: string, out Value: Boolean): Boolean; |
|
رشته به تاريخ |
function TryStrToDate(const S: string, out Value: TDateTime): Boolean; |
|
رشته به عدد اعشاری |
function TryStrToFloat(const S: string, out Value: Extended): Boolean; |
|
رشته به عدد صحيح ۲ بايتی |
function TryStrToInt(const S: string, out Value: Integer): Boolean; |
|
رشته به عدد صحيح ۴ بايتی |
function TryStrToInt64(const S: string, out Value: Int64): Boolean; |
|
رشته به ساعت |
function TryStrToTime(const S: string, out Value: TDateTime): Boolean; |
فيلتر کردن رکوردها
طريقه انتخاب مجموعه ای از رکوردها در DBGrid (فيلتر کردن رکوردهای انتحاب شده)
var
x: Integer;
BMList: array of TVarRec;
begin
SetLength(BMList, dbgrid1.SelectedRows.Count);
for X:=0 to dbgrid1.SelectedRows.Count - 1 do
begin
BMList[x].VType := vtPointer;
BMList[x].VPointer := Pointer(dbgrid1.SelectedRows[x]);
DataModule1.ADOTable1.GotoBookMark(BMList[x].VPointer);
end;
DataModule1.ADOTable1.FilterOnBookmarks(BMList);
end;
------------------------------------------------------------------------------------------
چگونگی تغير رنگ رکوردهای
در اين جلسه چگونگی تغير رنگ رکوردهای(سطرها) يک DBGrid را توضيح می دهم (مطابق شکل ذيل)
کد ذيل را در رويداد (event) با نام OnDrawColumnCell مربوط به DBGrid نوشته شود.
|
procedure TFForush.DBGrid1DrawColumnCell(Sender: TObject; if(DataCol=0)Then |
به همين سادگی !!!(بهتر است dgRowSelect نيز True باشد)
------------------------------------------------------------------------------------------طریقه لیست کردن فایلها و فولدرهای موجود در مسیر خاص و نمایش آنها در یک لیست:
procedure FindAll (const Path: String;
Attr: Integer;
List: TStrings) ;
var
Res: TSearchRec;
EOFound: Boolean;
begin
EOFound:= False;
if FindFirst(Path, Attr, Res) < 0 then
exit
else
while not EOFound do begin
List.Add(Res.Name) ;
EOFound:= FindNext(Res) <> 0;
end;
FindClose(Res) ;
end;
حال رویه بالا را مثلا برای مسیر ویندوز فراخوانی میکنیم.
FindAll('C:\Windows\*.*',faAnyFile,ListBox1.Items)
------------------------------------------------------------------------------------------
حرکت بين اشياء
حرکت بين اشياء روی فرم با استفاده از کليدهای جهتی رو به بالا و رو به پايين و اينتر(arrow key and enter) .البته بايد ابتدا خصوصيت KeyPreview مربوط به فرم را true کنيد سپس کد زير را به رويداد OnKeyDown فرم اضافه کنيد:
|
procedure TForm1.FormKeyDown( Sender : TObject; var Key: Word; Shift : TShiftState ) ; منبع : http://delphi-link.blogfa.com |
با سلام و خوش آمد گويي