נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: עיצוב ושמירת טופס ע"י המשתמש בזמן ריצה

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
yuee
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 27 December 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 65
נשלח בתאריך: 18 March 2012 בשעה 10:03 | IP רשוּם
ציטוט yuee

שלום רב,
הפיתוח הוא בסביבת vb.NET 2010 winform App.
אני מעצב טופס בזמן ריצה, מוסיף קונטרולים ומשתמש בפקד propertyGrid לצורך קביעת מאייפני הקונטרול.
כיצד ואיך נכון לשמור את מאפייני הטופס והפקדים שנוספו אליו בזמן ריצה ולטעון אותם עתידית?
אשמח לכיוונים ורעיונות.


__________________
כשאלברט איינשטיין נשאל, מה אתה חושב על העתיד? הוא ענה: "אני לא מספיק לחשוב עליו, כי הוא מגיע בקצב מהיר מדי"
פורום מצלמות אבטחה
חזרה לתחילת העמוד הצג את כרטיס החבר של yuee חפש הודעות אחרות של yuee בקר בדף הבית של yuee
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 19 March 2012 בשעה 19:22 | IP רשוּם
ציטוט shoshan

serialization

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
yuee
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 27 December 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 65
נשלח בתאריך: 25 March 2012 בשעה 09:50 | IP רשוּם
ציטוט yuee

תודה, השתמשתי בזה, וזה דיי פשוט.
יש לי שאלה, האם ניתן ליצור בקובץ XML יותר מאובייקט אחד ואחר-כך לקרוא אותו אולי ע"י לופ באמצעות Deserialize.
או שיש צורך עבור כל אובייקט בעצם ליצור קובץ יחודי.
כרגע זה עובד כך:
קוד:

Dim Frmset As FormSettings = New FormSettings()
Dim serializer As New XmlSerializer(GetType(FormSettings))
Using writer As New StreamWriter(Application.StartupPath & "\form-1.xml")
    serializer.Serialize(writer, Frmset)
    writer.Close()
    writer.Dispose()
End Using

כך אני שומר את הנתונים החיוניים של הטופס.
FormSettings מייצג את המאפיינים שהגדרתי עבור הטופס.
התוצאה:
קוד:

<?xml version="1.0" encoding="utf-8"?>
<FormSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>form-1</Name>
  <Text>Test</Text>
  <Size>
    <Width>1129</Width>
    <Height>657</Height>
  </Size>
  <Location>
    <X>0</X>
    <Y>0</Y>
  </Location>
  <WindowState>Normal</WindowState>
</FormSettings>

עכשיו בכדי לקרוא את הנתונים אני משתמש בזה:
קוד:

Dim ser As XmlSerializer
ser = New XmlSerializer(GetType(FormSettings))
Dim stringReader As StreamReader
stringReader = New StreamReader(Application.StartupPath & "\form-1.xml")
Dim xmlReader As XmlTextReader
xmlReader = New XmlTextReader(stringReader) 'stringreader is {System.IO.StringReader}
xmlReader.Read()
Dim obj As FormSettings = New FormSettings()
obj = ser.Deserialize(xmlReader) 'xmlReader is {System.Xml.XmlTextReader}
newFrm.Size = obj.Size
newFrm.Text = obj.Text
xmlReader.Close()

וזה עובד מצויין.
מאחר ואני מנסה שכל האובייקטים שנוספו לטופס בזמן ריצה גם יהיו בקובץ אני משתמש בלולאה שרצה על הטופס ומייצרת בתוך הקובץ XML את שאר האובייקטים.
והשאלה כיצד ניתן לקרוא את כולם?


__________________
כשאלברט איינשטיין נשאל, מה אתה חושב על העתיד? הוא ענה: "אני לא מספיק לחשוב עליו, כי הוא מגיע בקצב מהיר מדי"
פורום מצלמות אבטחה
חזרה לתחילת העמוד הצג את כרטיס החבר של yuee חפש הודעות אחרות של yuee בקר בדף הבית של yuee
 
NewMan
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 06 May 2011
מדינה: Israel
משתמש: מנותק/ת
הודעות: 29
נשלח בתאריך: 04 June 2012 בשעה 06:44 | IP רשוּם
ציטוט NewMan

התשובה הקצרה היא "כן". אתה קורא לפונקציה Deserialize מס'
פעמים והיא כבר מקדמת את מצביע הקובץ למקום שאחרי האובייקט
שעבר דסריאליזציה.
דסריאליזציה של מספר אובייקטים חייב להתאים לסדר בו הם
"סורלצו", מבחינת סוג האובייקטים.

חזרה לתחילת העמוד הצג את כרטיס החבר של NewMan חפש הודעות אחרות של NewMan
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה