PDA

View Full Version : سوال: باز شدن یک کادر در حالت کنسول



mahdi_7610
دوشنبه 02 شهریور 1388, 22:42 عصر
سلام
میخوام در حالت کنسول وقتی شماره 1 را می زنم یک کادر داخل خود همون کنسول باز بشه و یک سری اطلاعات را نشون بده .

مثلا من قصد دارم با زدن شماره 1 یک متن help نشون داده بشه .

مرسی

arashmidos2020
سه شنبه 03 شهریور 1388, 02:27 صبح
منظورتون از کادر چیه؟یک فرم اپلیکیشن یا یک پنجره کنسول دیگه یا اینکه تو خود همون کنسول بیاید توضیح دهید.اگر مورد سو.م هستش با یک swtch حل میشه.اگر موارد دیگه هست از پروسس باید استفاده کنی.

mahdi_7610
سه شنبه 03 شهریور 1388, 17:37 عصر
سلام
منظورم مورد سوم هستش .

مثلا توی کنسول نوشته شده 1 - About حالا من میخوام با زدن دکمه 1 از روی کیبورد جلوی همون خط یک کادر مستطیل شکل باز بشه که مشخصات خودم داخلش باشه .

plez help

arashmidos2020
سه شنبه 03 شهریور 1388, 21:37 عصر
می خواستم مثال بنویسم اما دیدم یک مثال در MSDN هست که کامل توضیح داده.
http://msdn.microsoft.com/en-us/library/06tc147t.aspx

mahdi_7610
چهارشنبه 04 شهریور 1388, 00:17 صبح
دوست عزیز مثل اینکه بازم متوجه نشدید .

حداقل توی لینکی که دادید من چیزی که میخوام را پیدا نکردم .

یک نگاه به تصویر بندازید متوجه مشید . من میخوام اون کادر ایجاد بشه .

مرسی

navid_8x
چهارشنبه 04 شهریور 1388, 01:01 صبح
این نوع کادر ماله برنامه های تحت dos هستش و console در دات نت فقط text ui هستش چون این روز ها کاربردی نداره.
من به تو پیشنهاد می کنم با Windows Forms برنامه بنویسی.

arashmidos2020
چهارشنبه 04 شهریور 1388, 01:14 صبح
من همچین منوهایی تو c++ نوشته بودم.اما اینجا دستور باز کردن یک کنسول دیگر رو نمی دونم ولی اگر اون دستور رو پیدا کنی یاید بندازیش تو یک پروسه و ران کنیش.ضمنا تمام این کارها اعم از نقاشی کردن کنسول رو هم می تونی تو سی شارپ داشته باشی.

navid_8x
چهارشنبه 04 شهریور 1388, 02:03 صبح
اگه C++ 3 رو می گی آره می شه. اما در کنسول ویندوز این امکانات حذف شده. حتی از c++ ویندوز.

mahdi_7610
چهارشنبه 04 شهریور 1388, 16:43 عصر
درسته این تصویری که گذاشتم توی ++ C نوشته شده .

من برنامه هام را توی Windows Forms می نویسم .

فقط از روی کنجکاوی خواستم بدونم توی حالت کنسول ویندوز هم میشه همچین کاری را کرد .

پس نمیشه این کار را کرد .

مرسی

linux
چهارشنبه 04 شهریور 1388, 17:03 عصر
خوب مشکل حالا چی هست؟! این باکس را باید خودت درست کنی.
کار سختی نیست

mahdi_7610
چهارشنبه 04 شهریور 1388, 17:49 عصر
خوب مشکل حالا چی هست؟! این باکس را باید خودت درست کنی.
کار سختی نیست
چه طور میشه این کادر را درست کرد .

یعنی با زدن یک دکمه اون کارد جلوی About ظاهر بشه .

خب اگه میشه . چطور میشه ؟

میشه یک نمونه بزارید ؟

linux
چهارشنبه 04 شهریور 1388, 19:09 عصر
ببین قبل از آمدن ویندوز و اینچیزها در زمان خدا بیامرز داس همه کارها گردن برنامه نویس بدبخت بود از کنترل موس تا صفحه کلید و ...
خوب برای کشیدن همچین منوی چی لازم هست ، نقاط چپ و بالا و طول و عرض و متنی که قرار هست توش نوشته بشود. این کد نمونه را نوشتم تا بتوانی از آن ایده بگیری

namespace ConsoleMenu
{
class Program
{
static void Main(string[] args)
{
DrawForm(1, 1, 30, 20, "About Menu");
Console.Read();
}

static string MenuLine(List<string> lineString)
{
string oo = string.Empty;
foreach (string s in lineString)
oo += s;
return oo;
}
static void DrawForm(int left, int top, int width, int height, string title)
{
List<string> line = new List<string>();
StringBuilder sb = new StringBuilder();
Console.SetWindowPosition(0, 0);
Console.ForegroundColor = ConsoleColor.White;
Console.BackgroundColor = ConsoleColor.Blue;
title = "╣ " + title + " ╠";
line.Add("╔");
for (int i = left + 1; i <= (width - title.Length) / 2 - 1; i++)
{
line.Add("═");
}

line.Add(title);
for (int i = (width - title.Length) / 2; i <= width - title.Length - 1; i++)
{
line.Add("═");
}
line.Add("╗");
Console.SetCursorPosition(left, top);
Console.WriteLine(MenuLine(line));
line.Clear();

for (int j = top + 1; j <= height - 1; j++)
{
line.Add("║");
for (int i = left + 1; i <= width - 1; i++)
{
line.Add(" ");
}
line.Add("║");
Console.SetCursorPosition(left, j);
Console.WriteLine(MenuLine(line));
line.Clear();
}

line.Add("╚");
for (int i = left + 1; i <= width - 1; i++)
line.Add("═");
line.Add("╝");
Console.SetCursorPosition(left, top + height - 1);
Console.WriteLine(MenuLine(line));
}
}
}

mahdi_7610
چهارشنبه 04 شهریور 1388, 21:19 عصر
ممنون

خیلی خوب بود

فقط اون علائم که با line.Add چاپ میشن را چطوری با کیبورد وارد می کنید .

بازم ممنون

linux
پنج شنبه 05 شهریور 1388, 00:16 صبح
ممنون

خیلی خوب بود

فقط اون علائم که با line.Add چاپ میشن را چطوری با کیبورد وارد می کنید .

بازم ممنون
charmap.exe با کارکتر مپ