توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : رنگی کردن بعضی از رکوردها در دی بی گرید
b_itman_b
16 / February / 1970, 11:36 AM
با این روشی که مدیرجون گفت فقط یه مشکل میمونه اونم اینه که دیگه واسه جدول فوق همون دوتا کد فیلد رو میشناسه و بقیه فیلدهارو(احتمالا واسه گذاشتن شرط یا ...)نمیشناسه
b_itman_b
16 / February / 1970, 11:36 AM
سلام.درسته مدیر جون به نکته خوبی اشاره کردی؟ این اتفاقا واسه خودم هم سوال بود که اگر از چند* Datasource و جدول در یک فرم استفاده بشه باعث کندی سرعت نمیشه؟
راستی تو جریان بالا منظورم گذاشتن شرطی بود که قضیه رنگی کردن فیلد هارو نقض نکنه.
javad_rajabloo
16 / February / 1970, 11:36 AM
سلام دوستان
من یک قطعه برنامه دارم در خصوص رنگی کردن بعضی از رکوردها در دی بی گرید
کد:
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;* Field: TField; State: TGridDrawState);
begin
if adoTABLE1.FieldByName("num1").asfloat= 8*then
DBGrid1.Canvas.Font.Color:=clred;
DBGrid1.Canvas.TextRect(rect,rect.left+2,rect.top+ 2,field.AsString);
*** end;
این قطعه برنامه میگه که تمام رکوردهای num1 که مقدار آن برابر 8 است رو با رنگ قرمز نمایش بده
تا اینجای کار که مشکلی نیست اما ...
من وقتی بر روی دی بی گرید دابل کلیک کرده تا برخی از فیلدها فقط نمایش داده شوند ، این قطعه برنامه کار نمی کنه
ممنون میشم تغییراتش رو بهم بگید
با تشکر
javad_rajabloo
16 / February / 1970, 11:36 AM
من از رویداد فیلتر استفاده نمی کنم
ممنون
لینک دانلود برنامه (<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>)
javad_rajabloo
16 / February / 1970, 11:36 AM
مشکل من با فیلتر کردن نیست ، با نحوه نمایش هست
یک کدی هست که میگه Num1 هایی رو که 8 هستند رو قرمز میکنه و در دی بی گرید نمایش میده
تا اینجاش درسته و مشکل نداره
حالا من می خوام که در دی بی گرید ، فقط دو تا از فیلدها نمایش داده بشه ، نه همه فیلدها (روی دی بی گرید دابل کلید می کنیم و ستون به تعداد دلخواه اضافه می کنیم و برای هر ستون یک نام فیلد در نظر می گیریم)
مثلا برای همین فایل اگه بخوایم فقط فیلدهای name و num1 در دی بی گرید نمایش داده بشه دیگه کد مربوط به رنگی کردن کار نمی کنه
ممنون میشم
admin
16 / February / 1970, 11:36 AM
سلام. در حالت معمولی نمیتونه مشکلی داشته باشه ، احیانا شما table رو فیلتر می کنید ؟
اگه اینطوره که فیلترینگ رو در رویداد دابل کلیک کنسل کنید...
ضمنا اگه مشکلتون برطرف نشد ، خود کد رو آپلود کنید تا مشکلش رو رفع کنیم ...
admin
16 / February / 1970, 11:36 AM
کد شما فقط داره Num1 هایی رو که 8 هستند رو قرمز میکنه و هیچ رویداد دیگه ای براش تعریف نشده ...
دقیقا میخواید چیکار کنید ؟؟؟
مثلا میخواید با دابل کلیک کردن روی یک فیلد بر اساس اون فیلد فیلتر بشه ... ؟؟؟
این فایل رو نگاه کنید : دانلود (<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>)
ضمنا برای دیدن کل اطلاعات روی dbgrid راست کلیک کنید ...
admin
16 / February / 1970, 11:36 AM
مسئله رو واضح مطرح نکرده بودید :P
*در این گونه مواقع به جای دابل کلیک کردن بر روی dbgrid بهتره که بر روی adotable دابل کلیک کرده و فیلدهای مربوطه رو به عنوان مثال همون دو تا فیلد رو انتخاب کنید .
اینم نمونه کار :
<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span> (<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>)
admin
16 / February / 1970, 11:36 AM
نقل قول از b_itman_b
با این روشی که مدیرجون گفت فقط یه مشکل میمونه اونم اینه که دیگه واسه جدول فوق همون دوتا کد فیلد رو میشناسه و بقیه فیلدهارو(احتمالا واسه گذاشتن شرط یا ...)نمیشناسه
مهندس جان قرار نیست کل پروژه ی شما با یک ADOtable , DataSource سر و کار داشته باشه ، و همچنین از روشهای ضعیف ویزاردی استفاده کنید ، چند تا ADOtable , DataSource متفاوت برای کارهای متفاوت طراحی کنید و فقط قبل از انجام عمل مورد نظر این کد را وارد نمایید :
کد:
DBGrid1.DataSource:= DataSource1;
admin
16 / February / 1970, 11:36 AM
در یک پروژه ی بزرگ یه DataModule داریم که تمام ابزارهای کار با دیتابیس رو اونجا میزاریم ، و قرار نیست که روی فرم ما ابزاری رو بزاریم.اوکی ؟
Powered by vBulletin® Version 4.2.2 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.