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

נושא: פתיחת מחלקה בחלון חדש

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
דין
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 16 September 2007 בשעה 14:33 | IP רשוּם
ציטוט דין

אוקי
אני רוצה לעשות מיני תוכנה שמחשבת כל מיני נוסחאות מתמטיות עכשיו
נכון כשנגיד הכנסתי את הקוד למחלקה הראשונה (נקרא לה class1) ולאחר מכן יצרתי מחלקה שניה (נקרא לה class2) עכשיו אני רוצה שכאשר המשתמש יתן מספר (1 או 2) ואם זה נגיד 1 אז שיפתח את המחלקה class2 הנה לדוגמה:
קוד:
class Program
{
static void Main(string[] args)
{
int n1;
Console.WriteLine("Enter the option (1 or 2):");
n1 = int.Parse(Console.ReadLine());
if (n1 == 1)
Open Class 2
}
}
עכשיו איך אני עושה את זה?: "קישור מחלקות"
חזרה לתחילת העמוד הצג את כרטיס החבר של דין חפש הודעות אחרות של דין בקר בדף הבית של דין
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

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

אתה יכול לדוגמא להוסיף מחלקה class1 ולשים בה מתודה סטטית Main (כמו בקוד ששלחת) ואז לקרוא לקוד הבא:

קוד:
Class1.Main();


גישה יותר oopית תהיה יצירת interface שייתן לשנות את מקור הקלט ואת הפלט, ושיכלול
את המתודה של הקריאה...

ואז הקוד גם יהיה יותר נחמד, כי תוכל להשתמש במערך של Type, או אפילו להשתמש ב-reflection.

אבל שיהיה, עד שתלמד c# אתה מוזמן ללכת על הדרך הראשונה...

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


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

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


הצטרף / הצטרפה: 16 September 2007
משתמש: מנותק/ת
הודעות: 20
נשלח בתאריך: 16 September 2007 בשעה 15:41 | IP רשוּם
ציטוט dinbrca

(אני זה "דין")

אחי לא ממש הבנתי אני די מתחיל נגיד יצרתי פרויקט חדש מסוג: "Console Application"

עכשיו

יש לי את המחלקה הראשית שנקראת Program.cs בצד ימין בחלון:

"Solution Explorer"

עכשיו אני יוצר מחלקה חדשה (עדיין בצד ימין) שהיא מקבלת שם אוטומטית ושמה class1.cs

עכשיו אלו שורות הקוד הבאות שיש במחלקה class1.cs:

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication1

{

class Class1

{

}

}

 

עכשיו אני רוצה שכאשר אני מריץ את התוכנה והמשתמש לחץ על 1 נגיד אז יפתח לי בחלון (שחור) חדש  המחלקה class1.cs

עכשיו מה אני עושה בשביל שהיא תפתח בחלון חדש ותעשה את ההוראות שאני רוצה?

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

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

שיו לאנשים שמתחילים ובאים לשאול בפורום לפעמים יש כאלה שאלות מוזרות...

אם אתה מתעקש שזה יהיה ככה אתה יכול תהשתמש ב-

Process.Start("bla bla")

כאשר bla bla זה נתיב ל-exe של פרוייקט אחר...

עכשיו תחשוב שוב האם זה באמת נחוץ ?


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

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


הצטרף / הצטרפה: 16 September 2007
משתמש: מנותק/ת
הודעות: 20
נשלח בתאריך: 16 September 2007 בשעה 16:10 | IP רשוּם
ציטוט dinbrca

אין דבר כזה Process ומה הכוונה האם זה באמת נחוץ ודבר שני אני לא כזה מתחיל

אני למדתי Visual Basic ועכשיו עליתי לי' והתחלנו ללמוד C# (רק התחלנו ללמוד מחשבים ואני עוקף את כולם ועומד לגמור את הספר) ועכשיו אני בלולאות אבל לא רשום בספר כלום

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

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

System.Diagnostics.Process

והכוונה באם זה באמת נחוץ היא מה למשל תעהש כשתגיע ל-11 תוכנות, ולמה אי אפשר
לכתוב את כל הקוד במחלקה אחת, ולמה צריך לפתוח חלון חדש, ואם אתה מתעקש על חלון
חדש אז למה לא ללכת על GUI עם windows form ?


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

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


הצטרף / הצטרפה: 16 September 2007
משתמש: מנותק/ת
הודעות: 20
נשלח בתאריך: 16 September 2007 בשעה 16:25 | IP רשוּם
ציטוט dinbrca

על פי מה שהבנתי עושים משהו כזה (בשביל לקשר בין מחלקות):

using System;

using System.Collections.Generic;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

System.Diagnostics.Process.Start("Bla");

}

}

class Bla

{

Console.WriteLine("Bla");

}

}

 

עכשיו

תשנה לי את הקוד כך שכאשר אני יריץ את התוכנה אז המחלקה Bla תפעל ותפתח בחלון חדש... תודה שאתה עוזר לי אני יודע שאני מציק חחח

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

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

קודם כל מה שעשי ב-Bla זה לא מחלקה זה (אי אפשר סתם לכתוב קוד מחוץ למתודה)

חוץ מזה, מה שאני התכוונתי שאם אתה רוצה חלון חדש, צור פקוייקט חדש, ואז הקוד של הפתיחת חלון צריך להיות

קוד:
Process.Start(@"..\..\class1\bin\release\class1.exe");


כאזה המחרוזת הזאת זה המיקום היחסי של ה-exe שאתה רוצה לפתוח...


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

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


הצטרף / הצטרפה: 16 September 2007
משתמש: מנותק/ת
הודעות: 20
נשלח בתאריך: 16 September 2007 בשעה 17:01 | IP רשוּם
ציטוט dinbrca

סתכל אחי נכון רשמת "..\..\class1\bin\release\class1.exe" עכשיו אני עשיתי ככה:

יש לי שני פרויקטים עכשיו אחד מהפרויקטים זה פרויקט ראשי ולו קוראים ConsoleApplication1 ולשני קוראים Multiplication Formula 2 עכשיו איפה שרשמת:

Process.Start(@"..\Multiplication Formula 2\Multiplication Formula 2\Program.cs");

כלומר שילך אחורה פעם אחת ולאחר מכן יכנס לתיקיה Multiplication Formula 2 ואז לתיקיה Multiplication Formula 2 ואז כשהלכתי לתיקיה bin ואז לתיקיה release לא היה לי שם כלום... =[ אז מה אני יעשה?

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

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

מהתחלה, שלח את המבנה של הקבצים בתיקיות...

ואגב, רק אחרי שתלחץ ctrl+f5 בו ctrl+shift+b בכל אחד מהפרוייקטים יהיה משהו בתקיקייה הזאת...




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

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


הצטרף / הצטרפה: 16 September 2007
משתמש: מנותק/ת
הודעות: 20
נשלח בתאריך: 16 September 2007 בשעה 18:14 | IP רשוּם
ציטוט dinbrca

על פי מה שהבנתי בהתחלה זה אמור להיו כמו פה:

http://www.upfree.net/download.php?file=619Bla.rar

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

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

אתה לא חייב לחבר את הפרוייקטים, באופן עקרוני אתה יכול לשים אותם באותו solution, אבל
זה לא כזה משנה (עדיף לצורך סדר ונקיון)

פשוט במקום ליצור פקויירט חדש, ב-solution explorer אתה לוחץ על ה-solution עם העכבר
הימני, Add > New Project

עכשיו לנושא, לחלוטין לא הבנת מה אני מנסה לומר...

אתה לא יכול לפתוח חלון חדש אלא אם כן הוא רץ בנפרד, וזה משהו מטומטם לעשות, אבל שיהיה...

בשביל לעשות את זה אתה מריץ EXE נפרד...

למשל בדוגמא ששלחת זה צריך להיראות ככה:

קוד:
System.Diagnostics.Process.Start(@"..\..\..\..\Multiplication Formula 2\Multiplication Formula 2\bin\release\Multiplication Formula 2.exe");



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

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


הצטרף / הצטרפה: 16 September 2007
משתמש: מנותק/ת
הודעות: 20
נשלח בתאריך: 16 September 2007 בשעה 18:49 | IP רשוּם
ציטוט dinbrca

אוקי אז נגיד שאני לא רוצה להריץ EXE בגלל שזה יוצא עוד פרויקט ואז לוקח כפול 2 מקום

אז אני רוצה להריץ מחלקה אחרת אז מה אני עושה? כלומר יצרתי מחלקה חדשה במין דף חדש כזה עכשיו איך אני עושה קישור מהמחלקה של הProgram.cs למחלקה החדשה? כאילו שיפעיל את זה (אם אפשר גם בדף חדש) :) תודה שאתה עוזר לי..

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

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

למה נראה לך שלמחלקה קוראים program.cs ?

זה לא HTML או משהו שיש קישורים בין מחלקות.

אתה יכול ליצור אובייקט של מחלקה אחרת ולהפעיל בו פונקציות, אבל באפליקציה מסוג
Console יש חלון אחד לכל process.

עכשיו מה לעזאזל מונע ממך להשתמש באותו חלון ?

ולמה לעשות את הכל ב-Console ולא ב-Windows Application ?

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

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

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


הצטרף / הצטרפה: 16 September 2007
משתמש: מנותק/ת
הודעות: 20
נשלח בתאריך: 16 September 2007 בשעה 22:51 | IP רשוּם
ציטוט dinbrca

לעשות ב Console בגלל שעוד לא למדתי את ה Windows Application אני יודע אותו רק ב Visual Basic ובC# עוד לא למדנו או למדתי את זה ודבר שני מה שמונע אותי להשתמש באותו חלון זה שאני אוהב להיות מסודר ואם אני ישים את זה בחלון חדש אז זה יצא יותר יפה וככה אני אוהב את זה יותר ודבר שלישי אני התכוונתי כמו שאמרת כלומר הכוונה שיצרתי מחלקה בclass1.cs ואני רוצה שיפתח בחלון חדש נגיד מתי שאני הכניס 1.
חזרה לתחילת העמוד הצג את כרטיס החבר של dinbrca חפש הודעות אחרות של dinbrca
 

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

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

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