ورود

نسخه کامل مشاهده نسخه کامل : چرا رنگ باتون عادی عوض نمی شود ؟



yaghoob1
04-12-2010, 18:18
با سلام.

از دوستان یک سوال داشتم :
چرا در دلفی رنگ فونت یک باتون عادی را تغییر می دهیم
این تغییر اعمال نمی شود ؟ ( البته در اجرای برنامه )

ممنون.

مرد مباح
04-12-2010, 19:15
اگه Repaint ویا Refresh کنی درست میشه

yaghoob1
04-12-2010, 19:48
اگه Repaint ویا Refresh کنی درست میشه



با تشکر از شما باز هم تغییر نمیکنه

هم از قسمت Properties باتون مربوطه رنگ فونت رو عوض
کردم ( رنگ عوض شد ) در اجرا اعمال نشد ،

و هم در قسمت کد باتون به اینصورت


procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Font.Color:=ClRed;
Button1.Repaint;
Button1.Refresh;
end;a

hp1361
04-12-2010, 21:56
سلام

از اسکینی چیزی استفاده نمیکنی؟

yaghoob1
04-12-2010, 22:16
سلام.

نه از اسکین یا چیز دیگر استفاده نمی کنم
ورژن دلفی مورد استفاده من 7 است
خودم هم تعجب کردم چون تو باتونهای نقشه بیتی
( BitBtn ) و باتون سرعتی (Speed Button )
رنگ فونت باتون تغییر میکند ، بی هیچ مسئله ای.
ولی تو باتون عادی نه.

ebrahimjan
05-12-2010, 20:02
سلام.



نه از اسکین یا چیز دیگر استفاده نمی کنم
ورژن دلفی مورد استفاده من 7 است
خودم هم تعجب کردم چون تو باتونهای نقشه بیتی
( BitBtn ) و باتون سرعتی (Speed Button )
رنگ فونت باتون تغییر میکند ، بی هیچ مسئله ای.
ولی تو باتون عادی نه.

براي من هم نشد من هم روش بالا رو انجام دادم ولي نشد نمي دونم مشكل از چيه؟

مرد مباح
06-12-2010, 14:59
من قبلا این کارو کردم.
ولی الان دسترسی به سورس برنامه هام ندارم. ولی تا جایی که یادم هستش میشد. ولی یک کمی غیر عادی و سخت.
Form.Refresh و Repain رو هم امتحان کن.

M.Hashemi
07-12-2010, 00:19
با سلام
من امتحان کردم نه Refresh کار کرد و نه Repaint (هم برای Button و هم برای Form)
البته نگارشی که من استفاده میکنم Delphi XE است
با تشکر

yaghoob1
25-12-2010, 17:58
با سلام

خودم جواب مسئله را پیدا کردم.

موضوع از این قراره که دلفی رنگ فونت و زمینه باتونها

را تغییر میده ولی ویندوز مانع آن میشود .در حقیقت باتونهای

استاندارد دلفی از کنترلهای مشترک ویندوز استفاده می کنند

و برای تغییر رنگ فونت و زمینه باتونها بایستی به قسمت

Control Panel -- Display Properties- Appearance- Windows and Buttons

مراجعه نمود و گزینه Windows Classic Style را انتخاب نمود

وسپس از قسمت

Control Panel -- Display Properties- Appearance- Advanced-Item - 3d Objects

رنگ فونت و زمینه باتون را تغییر داد.

ولی متاسفانه این تغییر در قسمتهای دیگر پنجره های ویندوز تاثیر می گذارد



بنابرین راه حل اصولی برای تغییر رنگ باتونها کار کردن با خود دلفی است :

چند راه حل به شرح زیر است:


1- استفاده از TPanel به عوض باتون :

داخل روالهای MouseDown و MouseUp این تغییرات اعمال شود.



procedure TForm1.Panel1MouseDown(Sender: TObject;Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

Panel1.BevelOuter := bvLowered;

end;


procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

Panel1.BevelOuter := bvRaised;

end;



حال میتوان رنگ فونت و زمینه TPanelرا تغییر داد و از آن به بعوض باتون رنگی استفاده نمود



2-استفاده از پیاده سازیهای گوناکون دیگر :

فایل مربوطه از لینک زیر سه روش جداگانه ( مشابه هم ) را برای اعمال رنگ برای باتونها را ارائه می دهد.

( بایستی فایلها بعنوان Component نصب شوند و بعدا مورد استفاده واقع شوند. )


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدمثال نمونه استفاده شده از مورد فوق


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

3- استفاده از BitBtn و Speed Button بعوض باتون معمولی