PDA

View Full Version : با کلیک کردن روی Shape تغیرات لازم اتفاق بیافته



abedi vida
شنبه 17 مرداد 1383, 13:09 عصر
سلام
من 3تاShape ویک Imageکه خاصیت False آن برابر Visible و یک BitBtn که خا صیت Enabel آن برابر False هست دارم که وقتی روی Shapeها کلیک می کنیم رنگشون عوض می شه می خوام با تغیر رنگ اونا خاصیت Enable،BitBtn برابر Trueو خاصیت Visible،Image برابر True بشه
این دستور ها رو نوشتم ولی وقتی رنگ Shapeهام تغییر کنه هیچ اتفاقی نمی افته در صورتی قبلا همین راه رو بجای تغییر رنگ برای Visible شدن نوشتم درست اجرا میشه

hr110
شنبه 17 مرداد 1383, 13:20 عصر
refresh رو صدا زدی؟
ضمناً از کدوم پراپرتی برای تغییر رنگ استفاده میکنی؟

abedi vida
شنبه 17 مرداد 1383, 13:33 عصر
سلام
راستی یادم رفت همه این ها توی یه Panel قرار دارن

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Shape1.Brush.Color:=clBlue;
end;
procedure TForm1.Shape2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Shape2.Brush.Color:=clBlue;
end;

procedure TForm1.Shape3MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Shape3.Brush.Color:=clBlue;
end;
procedure TForm1.Panel1CanResize(Sender: TObject; var NewWidth,
NewHeight: Integer; var Resize: Boolean);
begin
If (Shape1.Brush.Color=clYellow) And(Shape2.Brush.Color=clYellow)And
(Shape3.Brush.Color=clYellow) Then
begin
BitBtn1.Enabled:=True;
Image1.Visible:=True;
end;
یه زره در موردRefresh توضیح بدین من ازش خبر ندارم؟؟؟

hr110
یک شنبه 18 مرداد 1383, 08:31 صبح
1- نیازی نبود که سه بار mousedown شیپها را بنویسی، یکی کافی است و در مابقی از همان متد استفاده کن:

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
(Sender as TShape).Brush.Color:=clBlue;
end;


2- چرا از متد canresize بری فعال کردن کلید و ایمیج استفاده کردی در صورتی که میتوانستی از یک متد مستقل استفاده کنی و بعد از تغییر رنگ در متد بالا از اون استفاده کنی یعنی:


procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
(Sender as TShape).Brush.Color:=clBlue;
[b] doEnable;[/b]
end;

procedure TForm1.doEnable;
begin
BitBtn1.Enabled:=(Shape1.Brush.Color=clYellow)and( Shape2.Brush.Color=clYellow)and
(Shape3.Brush.Color=clYellow)
Image1.Visible:=BitBtn1.Enabled;
end;

البته کمی سورس متد doEnable را برایتان تغییر دادم :flower:
در مورد Refresh هم بهتر است به راهنمای دلفی مراجعه کنید ، اگر و تنها اگر متوجه نشدید سوال کنید دوستان حتماً جواب خواهند داد.

موفق باشید

abedi vida
یک شنبه 18 مرداد 1383, 11:55 صبح
سلام اینا برام خیلی سخته ازش سر در نمی آرم
(Sender as TShape).برای چی هست؟
doEnable; :[b\] برای جی هست؟
Image1.Visible:=BitBtn1.Enabledچرا اینکار کردیم؟

دوست من یکم بیشتر در راهنمای دلفی شنا کن.
:)

abedi vida
یک شنبه 18 مرداد 1383, 13:14 عصر
این دستور اجرا نمی شه فقط تو shap که دستور نوشتم آبی می شه و تو بقیه هیچ اتفاقی نمی افته؟
procedure TForm1.doEnable; از چه نوعی باید تعریف بشه؟
راه حل دی گه ایی نیست؟؟؟؟
کمکممممم کنین من خیلی عجله دارم تا این کارم راه بی افته

hr110
یک شنبه 18 مرداد 1383, 15:00 عصر
دوست من بهتر نیست قبل از اینکه پروژه بگیریدو برای خود و سایت برنامه نویس مشکل ایجاد کنید، به فراگیری دلفی بپردازید :oops:

abedi vida
یک شنبه 18 مرداد 1383, 17:59 عصر
سلام
ببخشید دوست عزیز من این قدر دلفی بلدم مگه خود شما دچار مشکل نمی شین
و اینکه اگه مزاحم شما شدم ببخشید

abedi vida
یک شنبه 18 مرداد 1383, 18:09 عصر
قانون شماره 4
این سایت محلی جهت رد و بدل اطلاعات در رابطه با اهداف سایت می باشد. پس لطفاً سعی کنید مطالب خود را در رابطه با این موضوع و یا با موضوعات وابسته به آن ارسال نمایید.
پس این سایت جای پرسش است.
قانون شماره 12
لطفاً در هنگام جواب دادن به سوالات از به کار گیری الفاظ و جملاتی که باعث دلسردی کاربر سوال کننده شود خودداری فرمایید. این را بدانید که این سایت محل آموزش است و کسانی هستند که سوالهایشان بسیار ابتدایی می باشد. لذا از به کارگیری کلماتی که باعث شود کاربر به جای گرفتن جواب سوال خود دلسرد شود اکیداً خودداری فرمایید.

orion188
دوشنبه 19 مرداد 1383, 00:43 صبح
سلام
من توی اولین message این موضوع دوباره دقت کردم. ولی بازم مشکل اصلی شما رو متوجه نشدم.
اگه یکم کمتر خلاصه بگین ، و اگه علم من قد بده :wink: در خدمتم

abedi vida
سه شنبه 20 مرداد 1383, 13:06 عصر
سلام از یه راه دیگه رفتم