ورود

View Full Version : نحوه تغيير رنگ يك image - توسط combobox



hentjanson
پنج شنبه 30 خرداد 1387, 19:06 عصر
سلام بچه ها من يك كمك فوري مي خوام
ببينيد يك فرم ثبت اطلاعات دارم
مي خوام يك combox داشته باشم به سه عنوان زرد قرمز سبز
كه اگه كاربر زرد رو انتخاب كرد
اين image رنگش زرد شه اگه سبز رنگش سبز شه و ..
ميشه يك مثال برام بزنيد يا راهنماييم كنيد

hentjanson
پنج شنبه 30 خرداد 1387, 20:36 عصر
كسي اين ميتونه بهم كمك كنه

Hsimple11
پنج شنبه 30 خرداد 1387, 20:53 عصر
با سلام.

دوست عزیز چرا از Image استفاده میکنید؟ اگر میخواهید گرافیکی درون آن نباشد و فقط آنرا رنگ کنید نیاز به image نیست. از Shape استفاده کنید و خاصیت brush.color آن را برابر با رنگ انتخاب شده در comboBox قرار دهید. با این حال میتوانید image خود را نیز به رنگ دلخواه در آورید. فقط توجه داشته باشید که image شما باید خالی باشد و حاوی تصویری نباشد. در ضمن بجای combobox از colorbox استفاده کنید. بنظرم زیبا تر است.
یک برنامه کوچک در همین زمینه ضمیمه کرده ام امیدوارم به دردتان بخورد.

موفق باشید....

hentjanson
پنج شنبه 30 خرداد 1387, 21:29 عصر
سلام دوست من
من يك سوال دارم
من مي خوام اين حالت save شه
مي خوام بهمراه بقيه فيلد ها اين رنگ ذخيره شه combobox رو مي گم
بعد روي هر ركورد كه ميرم اين قابليت عوض شه

Hsimple11
پنج شنبه 30 خرداد 1387, 21:48 عصر
دوست عزیز در چند پست قبلتان هم این سوال را پرسیده بودید. فکر کنم جوابتان را گرفتید. باید یک فیلد در db خود بنام مثلا وضعیت درست کنید و برای هر رکورد آن cell را رنگ کنید.دیگر نیازی به image یا چیز دیگری ندارید.
http://barnamenevis.org/forum/showthread.php?t=109975

hentjanson
پنج شنبه 30 خرداد 1387, 21:52 عصر
فقط يك سوال ميشه اين جعبه رنگ رو محدود كرد به سه رنگ

Hsimple11
پنج شنبه 30 خرداد 1387, 22:36 عصر
در اینصورت خود یک combobox بسازید و سه رنگ را در آن وارد کنید.

hentjanson
پنج شنبه 30 خرداد 1387, 23:09 عصر
چطوري ميشه يكي برام ايجاد كني

Hsimple11
پنج شنبه 30 خرداد 1387, 23:25 عصر
چطوري ميشه يكي برام ايجاد كني



ComboBox1.Items.Add('name of color');


موفق باشید...

hentjanson
جمعه 31 خرداد 1387, 07:27 صبح
سلام من برنامه رو ساختم .
يك edit گزاشتم كه نام پروژه رو ميگيره و يك combobox كه وضعيت پيشرفت رو نشون ميده اين combobox داراي سه index هستش سفيد . زرد . سبز
اين دو رو در بانك ثبت مي كنم
سوال : اين تو روند شرطش مشكل دارم اينكه وقتي تو روند ثبت مي گيم وضعيت يا همون combobox رنگش سبز هستش اين رنگ shape هم سبز شه .
اين برنامه منه ميشه ببينيد بگيد مشكل كار من كجايه

hentjanson
جمعه 31 خرداد 1387, 10:13 صبح
از دوستان ميشه كسي برنامه منو ببينه راهنماييم كنه

Hsimple11
جمعه 31 خرداد 1387, 10:35 صبح
با سلام.

اول از همه باید بگم به نظر من کنترلهاتون یه کم زیادن. دکمه های افزودن و انصراف در عمل هیچ کاری انجام نمی دهند. میتوانید فقط در رویداد OnCreate فرم خود ActiveControl را به Edit1 نسبت دهید یا از Setfocus استفاده کنید. مسئله بعد وارد نکرد تمام فیلدهاتان در Dbgrid بود. از خاصیت ColumnEditor گرید خود استفاده کنید یا بر روی آن doubleclick کنید و تمام فیلدهاتان را به DBGRID خود اضافه کنید. یک سوال، در این برنامه شما فقط نام رنگ را برای هر پروژه دارید ثبت میکنید درحالی که در سوال هاتان میخواستید رنگ خانه در dbgrid عوض شود؟ منظورم اینه که وضعیت پروژه رو بعد از ورود اطلاعات فقط میخواهید در shape ببینید؟ یعنی کاربر روی هر رکورد که کلیک کرد وضعیت آن در shape نمایان شود یا در dbgrid هم فیلد cell برای هر رکورد رنگ بگیرد؟ در ضمن کدی برای shape ننوشتید. برای رنگ کردن آن از خاصیت brush.color استفاده کنید.

موفق باشید...

hentjanson
جمعه 31 خرداد 1387, 10:43 صبح
نه در shape نشون بده

hentjanson
جمعه 31 خرداد 1387, 11:04 صبح
ببين من تو ظرط اين موندم .
اينكه وقتي combobox مي گم زرد باشه چطور رنگ shape زرد شه ميشه كمكم كني ؟

Hsimple11
جمعه 31 خرداد 1387, 11:05 صبح
with ADOTable1 do
begin
if FieldByName('cell').AsString = 'زرد' then
Shape1.Brush.Color:=clyellow;
if FieldByName('cell').AsString = 'سفید' then
Shape1.Brush.Color:=clwhite;
if FieldByName('cell').AsString = 'سبز' then
Shape1.Brush.Color:=clgreen;
End;


دوست عزیز برای ثبت رکوردهای گرافیکی نظیر عکس نیز میتوانید از فیلدهای BLOB استفاده کنید. قبلا در همین سایت بحث شده.

موفق باشید...

hentjanson
جمعه 31 خرداد 1387, 11:14 صبح
سلام دوست من
اينو بايد تو shape بنويسم اين كدو

Hsimple11
جمعه 31 خرداد 1387, 11:23 صبح
اگر میخواهید با کلیک بر روی هر رکورد رنگ نمایش داده شود میتوانید در رویداد oncellclick گرید خود بنویسید.

موفق باشید...

hentjanson
جمعه 31 خرداد 1387, 11:31 صبح
مرسي مشكلم حل شد دوست من .

hentjanson
جمعه 31 خرداد 1387, 11:32 صبح
فقط يك موضوعي اينكه ميشه به جاي كاراكتر در combobox رنگ گزاشت

Hsimple11
جمعه 31 خرداد 1387, 11:47 صبح
اگر تعداد رنگهای colorbox زیاد است از ComboBoxEx در تب Win32 استفاده کنید. سه ItemsEx برای سه رنگ خود بسازید. یک Imagelist از همین تب به فرم خود اضافه کنید و سه bitmap کوچک با سه رنگ به آن اضافه کنید. سه bitmap کوچک که با paint هم میتوانید آنها را بسازید. خاصیت Images این ComboBoxEx را برابر با ImageList قرار دهید. حالا برای هر ItemEx میتوانید ImageIndex را انتخاب کنید. اگر نمیخواهید متنی در combobox باشد captionsای برای Itemها قرار ندهید.

موفق باشید...

hentjanson
جمعه 31 خرداد 1387, 12:00 عصر
من نتونستم يعني يك كارايي كردم نشد اوني كه مي خواستم ميشه يك مثال برام بزاري

Hsimple11
جمعه 31 خرداد 1387, 13:18 عصر
این را ببینید :

Hsimple11
جمعه 31 خرداد 1387, 16:12 عصر
مشکلتان حل شد؟

hentjanson
جمعه 31 خرداد 1387, 16:37 عصر
اره مرسي از راهنماييهاتون .
راستي پيشفرض داره اين ComboBoxEx يعني يكي از item هاش پيش فرض باشه ميشه پيشفرض واسش تعيين كرد ؟