פורסם 2011 ביוני 314 שנים היי. אני מנסה לדמות את הסימון של אוביקטים מרובים כמו שיש בחלונות, למשל בשולחן העבודה: כשאני מחזיק את הכפתור השמאלי של העכבר ומתחיל לגרור אותו לאיזשהו כיוון, מופיע ריבוע, וכל האוביקטים שבתוכו מסומנים ועליהם אני יכול לעשות לאחר מכן פעולות.אני מנסה לתכנת דבר זהה אצלי בתוכנה, אך עם הצלחה חלקית. הצלחתי עד עכשיו לעשות ריבוע, שאותו אני יכול לגרור רק לכיוון אחד. הבעיה מתחילה בזיהוי כיוון שאת החישובים שלו אני מתקשה ליישם. (למשל אם אני מתחיל סימון למעטה זה עובד, אבל כשאני רוצה לשנות כיוון למעלה, אני מקבל שגיאה, כי הגובה והרוחב של ריבוע לא יכול להיות שלילי)אין לי מושג אפילו איך הנושא הזה נקרא, לכן אשמח אם מישהו יכוון אותי לאיזשהו אתר שבו אני יכול להעזר. תודה מראש!
פורסם 2011 ביוני 314 שנים נניח x1,y1=המיקום בו לחצת על העכבר, x2,y2=המיקום הנוכחי של העכבר.אז ארבע הפינות של הריבוע הן (x1,y1),(x1,y2),(x2,y1),(x2,y2).הרוחב והאורך הם הערכים המוחלטים של הפרשי הקואורדינטות.כל מה שאתה צריך זה להבין איזו מ-4 הנקודות היא הפינה השמאלית העליונה.
פורסם 2011 ביוני 314 שנים מחבר הבעיה שלי שאני משתמש באוביקט shape ויש לו רק 2 קואורדינטות במקום 4. המיקום הנוכחי שלו ולאן הוא מגיע (והוא הולך מלמעלה למעטה)אבל כנראה שאני אלך בדרך שלך (אצטרך לצייר את הריבוע בעצמי)
פורסם 2011 ביוני 414 שנים מחבר הצלחתי תודה.Dim Mdown As BooleanDim MdownX As IntegerDim MdownY As IntegerPrivate Sub Form_Load()Shape1.Width = 0Shape1.Height = 0Mdown = FalseEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Shape1.Left = XShape1.Top = YShape1.Width = 0Shape1.Height = 0MdownX = XMdownY = YMdown = TrueEnd SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If Mdown = True ThenShape1.Visible = TrueIf (X > MdownX) And (Y > MdownY) Then Shape1.Left = MdownX Shape1.Top = MdownY Shape1.Width = X - MdownX Shape1.Height = Y - MdownYEnd IfIf (X > MdownX) And (Y < MdownY) Then Shape1.Left = MdownX Shape1.Top = Y Shape1.Width = X - MdownX Shape1.Height = MdownY - YEnd IfIf (X < MdownX) And (Y < MdownY) ThenShape1.Left = XShape1.Top = YShape1.Width = MdownX - XShape1.Height = MdownY - YEnd IfIf (X < MdownX) And (Y > MdownY) ThenShape1.Left = XShape1.Top = MdownYShape1.Width = MdownX - XShape1.Height = Y - MdownYEnd IfEnd IfEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)Mdown = FalseShape1.Visible = FalseEnd Sub
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.