PDA

View Full Version : نکته های برنامه نویسی دلفی



JavanSoft
جمعه 07 فروردین 1383, 01:52 صبح
شاید شما هم نکته جالبی بنظرتون برسد که بخواهید به دیگران هم یاد بدهید ... این تیتر را به این منظور ایجاد کردم .. شاید هم نکته ای که شما می دانید برای دیگران مهم باشد ...پس وقت را تلف نکنید

JavanSoft
جمعه 07 فروردین 1383, 02:01 صبح
من چند نکته را به عنوان افتتاحیه می نویسم ...
اگر میخواهید در ابزار LookUpمانند Access2 یا چند فیلد پیشنهاد شوند ... فیلدها را با ; مشخص کنید (در حالت عادی یک فیلد پیشنهاد می شود)


ListField = 'Company;CustNo'


اگر می خواهید کاربر یک شاخه را انتخاب کند


If SelectDirectory ('انتخاب محل ', '', st) Then
ShowMessage(IncludeTrailingPathDelimiter(St));

دستور IncludeTrailingPathDelimiter باعث می گردد تا علامت مسیر در انتهای رشته اضافه شود این علامت برای ویندوز / و برای لینوکس \\ است

JavanSoft
جمعه 07 فروردین 1383, 02:03 صبح
چند خط برای تحت کنترل گرفتن یک PopupMenu



procedure TFormPopup.Label1ContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean);
var
ScreenPoint: TPoint;
begin
// add dynamic items
PopupMenu2.Items.Add (NewLine);
PopupMenu2.Items.Add (NewItem (TimeToStr (Now), 0, False, True, nil, 0, ''));
// show popup
ScreenPoint := ClientToScreen (MousePos);
PopupMenu2.Popup (ScreenPoint.X, ScreenPoint.Y);
Handled := True;
// remove dynamic items
PopupMenu2.Items [4].Free;
PopupMenu2.Items [3].Free;
end;

جمعه 07 فروردین 1383, 09:13 صبح
[quote]اگر می خواهید کاربر یک شاخه را انتخاب کند


If SelectDirectory ('انتخاب محل ', '', st) Then
ShowMessage(IncludeTrailingPathDelimiter(St)); [/quote]
اقای وکیلی یادشون رفت که بگن selectdirectory در یونیت filectrl هست. :wink:
حالا یه دونه هم من بگم:
برای کار کردن با dbgrid در حالتی که خاصیت مالتی سلکتیو true هست :


with DBGrid1.DataSource.DataSet do
begin
for i := 0 to DBGrid1.SelectedRows.Count-1 do
begin
[b] GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i] )); [/b]
end;

جمعه 07 فروردین 1383, 09:19 صبح
برای لود کردن فایلهای گیف :

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

جمعه 07 فروردین 1383, 09:22 صبح
پیدا کردن یک کامپوننت در کل فرم های برنامه

for I := 0 to DataModule2.ComponentCount - 1 do
begin
if (DataModule2.Components[I] is TDataSource) then
ListBox1.Items.AddObject(DataModule2.Components[I] .Name,
DataModule2.Components[I] as TObject);
end;