קודם כל שהחיינו ושיהיה לנו בהצלחה.ח

  • פותח הנושא viby
  • פורסם בתאריך

viby

New member
לא מועבר כאן קלאס

לכל היותר textbox או string ואז לא עובר ref .
 

gilad g

New member
Textbox ו-string הם קלאסים ../images/Emo13.gif

כלומר, הם אובייקטים, ולכן הם מועברים byref.
 

viby

New member
אוקיי אבל

גם אם הם קלאסים (חשבתי שאתה מדבר על קלאס שאני מגדיר) ואם הם מועברים Byref אז למה לא מתבצע עדכון של ה textbox כאשר הref שלו מתעדכן? ב c++ זה עובד ככה, כאן זה לא אמור לעבוד ככה גם?
 

gilad g

New member
אתה יכול להראות לנו

את מה שכתבת עד עכשיו
 

viby

New member
אלה מחלקות גדולות עם תקשורת ...

thread-ים אז קשה להעתיק אותן אבל הרעיון הוא כמו שהראתי למעלה : הקלאס מוגדר בתוך ה form ו...
Public Sub New(ByRef str As String) str="bla bla" End sub​
זה נמצא בקלאס וכאן הייתי מצפה שה string ששלחתי(ה textbox.text) גם ישתנה , אבל הוא לא. ואגב אם הכל היה נשלח byref אז תמיד אם שלחת משהו לפונ' והוא משתנה בפונ' אז גם העותק המקורי היה משתנה וזה לא כ"כ הגיוני
 

gilad g

New member
חוץ מסטרינג ../images/Emo9.gif

סטרינג מועבר byval, לכן תעשה ככה:
Public Sub New(tb As TextBox) tb.Text = "bla bla bla" End sub​
אתה צריך להעביר טקסטבוקס, כדי שזה יעבוד. אבל, לדעתי, אתה עובד לא נכון - אתה צריך להשתמש ב-events. ראה את ההודעות שלי למעלה
 

viby

New member
בגלל זה בהתחלה

אמרתי שנראה לי שאתה צריך להעביר textbox וזה לא משהו לעשות את זה
 

yuval k

New member
TextBox הוא קלאס, ותיבת הטקסט שלך

על הטופס היא instance - מופע - של המחלקה הזו. לכן מועבר בעצם פוינטר לאובייקט, במקום להיות מועתק.
 

viby

New member
יפה אז

כשה ref ל textbox משתנה אמור להשתנות גם ה textbox .זה לא קורה
 

yuval k

New member
נכון... עכשיו אני נזכר. ובלי ref זה

אפילו יותר יעיל... ותודה לגלעד
 
למעלה