PDA

View Full Version : رنگی کردن متن یک خانه خاص از String Grid



K.Mohammadreza
دوشنبه 23 آذر 1388, 13:57 عصر
با سلام به دوستان برنامه نویس
من یکسری اطلاعات پیچیده که حاصل محاسبات زیادی است را از جداول استخراج و بدلیل اینکه نمی توانستم از DBGrid استفاده کنم مجبور شدم که اطلاعات را در String Grid بنویسم حالا با توجه نیازم میخواهم مقادیر منفی با رنگ قرمز در خانه ها نوشته شوند و بقیه اعداد با رنگ مشکی. چگونه؟

با تشکر

حمیدرضاصادقیان
سه شنبه 24 آذر 1388, 07:50 صبح
سلام.میتونید در رویداد ondrawcell کد مربوطه رو بنویسید و مقدار اون سلول رو بخونید اگر منفی بود بنگی و اگرهم مثبت بود مشکی باشه. با استفاده از canvas هایی که در خود رویداد وجود داره میتونید اینکارو بکنید.
موفق باشید

K.Mohammadreza
یک شنبه 29 آذر 1388, 11:14 صبح
سلام.میتونید در رویداد ondrawcell کد مربوطه رو بنویسید و مقدار اون سلول رو بخونید اگر منفی بود بنگی و اگرهم مثبت بود مشکی باشه. با استفاده از canvas هایی که در خود رویداد وجود داره میتونید اینکارو بکنید.
موفق باشید
اگه امکان داره یک مثال بزنید مثلا در رویداد onclick یک button

undefined
پنج شنبه 24 دی 1388, 09:47 صبح
سلام
اگه امکان داشته باشه یه مثال برای Listbox بزنید ممنون میشم .
چون این خاصیت رو در ListBox نتونستم پیدا کنم .
با تشکر

Felony
پنج شنبه 24 دی 1388, 10:07 صبح
سلام
اگه امکان داشته باشه یه مثال برای Listbox بزنید ممنون میشم .
چون این خاصیت رو در ListBox نتونستم پیدا کنم .
با تشکر

مگه قرار همه ی کنترل های دلفی همچین خصوصیتی داشته باشن ؟
برای ListBox رویداد DrawItem هست .

Felony
پنج شنبه 24 دی 1388, 10:19 صبح
اگه امکان داره یک مثال بزنید مثلا در رویداد onclick یک button

این هم یک نمونه کد که براتون نوشتم ، کد رو در رویداد OnDrawCell بنویسید :

var
CellText: String;
begin
CellText:= StringGrid1.Cells[ACol, ARow];
if StringGrid1.Cells[ACol,ARow]='OwnText' then
begin
StringGrid1.Canvas.Font.Color := CLRed;
StringGrid1.Canvas.FillRect(Rect);
StringGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, CellText);
end;
end;