PDA

View Full Version : نمایش dbgrid



free
سه شنبه 23 آبان 1385, 12:02 عصر
سلام
در dbgrid یک فیلد از نوع boolean دارم که می خوام هنگام اجرا به جای نمایش کلمه true یا false یک عبارت فارسی نمایش بدم. مثلا درست و نادرست . چطور می تونم این کار رو انجام بدم؟

mzjahromi
سه شنبه 23 آبان 1385, 12:17 عصر
procedure TItemGroupsForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if Column.Title.Caption = 'test' then
if DBGrid1.DataSource.DataSet.Fields[3].AsBoolean Then
DBGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top, ' Èáí ')
Else
DBGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top, ' 뒄 ');
end;


البته راههای ساده تر هم وجود داره ولی تو یه شرایطی هیچکدوم مثل این عمل نمیکنه

ghabil
سه شنبه 23 آبان 1385, 13:22 عصر
فقط کافیه توی دیتاست فیلد رو اضافه کنی بعد مقدار DisplayValues رو بزاری درست;نادرست نه نتنها اینطوری نشون میده بلکه اگر طرف هم زمان دیتا انتری مثلا بزنه درست خودش True درج میکنه توی Table ، روش درست و کارآمدی هم هست.

ghabil
سه شنبه 23 آبان 1385, 20:24 عصر
البته راههای ساده تر هم وجود داره ولی تو یه شرایطی هیچکدوم مثل این عمل نمیکنه

من فکر کردم منظورت از راههای ساده تر مثلا روی OnGetText هست که خب شبیه اینه ولی خیلی ساده تره ، به هر حال اگر بگی این دوتا تو چه شرایطی کار نمیکنند که ما هم بدونیم و کمتر استفاده کنیم ممنون میشم و یک چیزی هم یاد میگیریم .

mzjahromi
چهارشنبه 24 آبان 1385, 06:57 صبح
من فکر کردم منظورت از راههای ساده تر مثلا روی OnGetText هست که خب شبیه اینه ولی خیلی ساده تره ، به هر حال اگر بگی این دوتا تو چه شرایطی کار نمیکنند که ما هم بدونیم و کمتر استفاده کنیم ممنون میشم و یک چیزی هم یاد میگیریم .
من نگفتم اونا کار نمی کنن.همه این راهها درسته و صد درصد و همیشه کار میکنه مخصوصا اون روشی که شما گفتید با توجه به اینکه یک روش پیش بینی شده در خود دلفی هست و برای همین منظور در نظر گرفت شده هیچ مشکلی نداره (به نظر خودم از اون روشی که من نوشتم هم قطعی تره) ولی
تو یه سری شرایط امکان استفاده از اونا یه خورده دردسر رو بیشتر میکنه چون اونا وابسته به دیتا ست هستند و یه سری کارها رو باید در زمان طراحی انجام بدی. زمانی که چندین گزارش بخوان از یه فرم(یا یه دیتا ست) استفاده کنن معمولا نیاز به کد نویسی اون روشها زیاد تر میشه.
در هر حال شاید این یه تجربه شخصی برای من بوده باشه و عمومیت نداشته باشه

free
چهارشنبه 24 آبان 1385, 08:10 صبح
ممنون دوستان
از همون DisplayValues که ghabil گفت استفاده کردم.