PDA

View Full Version : سوال: جذب



Ballmer
جمعه 01 آذر 1392, 10:10 صبح
سلام
من یه سوال دارم

من الان دوتا btn دارم که می خوام یکیش رو روی اون یکی درگ کنم و وقتی نزدیک اون یکی میره جذب اون بشه.

113116

مشکی سر DnD ندارم ولی مشکل من سر این جذب شدنه هست

به نظرتون راهی وجود داره؟

Ballmer
شنبه 02 آذر 1392, 16:02 عصر
من اینو تو MouseDragged Event نوشتم :

int i=0;
int j=0;
int k=0;
while(i<btn1.getWidth()+50 && j<btn1.getHeight()+10 && k<50){
if (btn2.getX()<=btn1.getX())i=(-1)*k;
if (btn2.getY()<=btn1.getY())j=k;
i++;j++;k++;
if (btn2.getX()==btn1.getX()+i || btn2.getY()==btn1.getY()+j){
btn2.setLocation(btn1.getLocation());
}
break;
}


ببیند درسته؟؟ وقتی اجرا می کنم اونجوری که کد نوشته شده عمل نمی کنه ؟! فقط وقتی y هر دو برابر میشه عمل میکنه !
اگر توضیحات بیشتری لازم هست بگم؟؟
هرکسی برنامه رو میخواد پ خ بده

Ballmer
شنبه 02 آذر 1392, 21:05 عصر
هی خودم دارم به خودم جواب میدم :دی

int i=btn1.getWidth()-20;
int j=btn1.getHeight()-20;
if (btn2.getX()<=btn1.getX())i=0;
if (btn2.getY()<=btn1.getY())j=0;
if (btn2.getX()<=btn1.getX()+i)
if (btn2.getY()<=btn1.getY()+j)btn2.setLocation(btn1.getLocation() );
به نظر بهتر میاد ولی هنوز وقتی btn2.getX()<=btn1.getX() و btn2.getY()<=btn1.getY() مشکل داره !!! منکه داغ کردم :دی
any HELP???

Ballmer
شنبه 02 آذر 1392, 22:06 عصر
دوستان مشکل حل شد.
int i=10;
int j=10;
if (btn2.getX()>=btn1.getX())i=btn1.getWidth()-20;
if (btn2.getY()>=btn1.getY())j=btn1.getHeight()-20;
if (btn2.getX()<=btn1.getX()+i && btn2.getX()>=btn1.getX()-i)
if (btn2.getY()<=btn1.getY()+j&& btn2.getY()>=btn1.getY()-j)btn2.setLocation(btn1.getLocation());
بزودی کل برنامه در قرار داده میشه
امید وارم بدرد یکی بخوره