PDA

View Full Version : معادل چند دستور VB6 در #C ؟؟؟



mahdielectronic
سه شنبه 25 خرداد 1389, 20:05 عصر
سلام

دوستان کسی میدونه معادل این دستورات تو #C چیه؟

1:
RGB_Color = pic.Point(X_location, Y_location)

2:
pic.Circle (X, Y), 5, vbWhite

ممنون از لطفتون:لبخندساده:

cardano7
سه شنبه 25 خرداد 1389, 21:43 عصر
سلام

دوستان کسی میدونه معادل این دستورات تو C#‎ چیه؟

1:
RGB_Color = pic.Point(X_location, Y_location)

2:
pic.Circle (X, Y), 5, vbWhite

ممنون از لطفتون:لبخندساده:

سلام
آخر این دستور ها باید semicolon قرار بدی.
مورد دومی که گفتی ناقص هست و ما نمی دونیم که pic از چه نوعی هست. 5 قراره که کجا استفاده بشه(مسلما سوال شما این نیست که معادل 5 در #C چی میشه!) و وضعیت vbWhite هم نا مشخصه.
لطفا کد را کاملتر بنویسید.

mahdielectronic
سه شنبه 25 خرداد 1389, 22:26 عصر
شرمنده:خجالت:

RGB_Color = pic.Point(X_location, Y_location)

این کد VB6 هست که
Pic یک کامپوننت پیکچر باکس هست و کلا کار این تابع اینه که مقدار RGB یک نقطه از عکس رو میگیره و داخل متغییر RGB_color میریزه

pic.Circle (X, Y), 5, vbWhite

این هم یک کد VB6 هستش که روی عکس که داخل پیکچر باکس pic هست یک دایره در نقطه ی x,y به شعاع 5 با رنگ vbwhite میکشه...

حالا من موندم تو #C معادل اینها چی میشه:متفکر:

ممنون از کمکتون:لبخندساده:

cardano7
چهارشنبه 26 خرداد 1389, 14:01 عصر
ممکنه که کل تابع را قرار بدید؟

mahdielectronic
چهارشنبه 26 خرداد 1389, 19:01 عصر
والا چیز دیگه ای نداره! من معادل این دو تابع تو #C رو میخوام:لبخندساده:

cardano7
پنج شنبه 27 خرداد 1389, 09:53 صبح
یکم گیج شدم.
شما این سه تا دستور را پشت سر هم نوشتید؟

pic.Circle (X, Y), 5, vbWhite
یا اینکه اینا پارامترهای یک تابع بودند که با کاما از هم جدا شده بودند.

اول می خواستم بگم که:

اگر pic یک PictureBox هست مگه متدی مثل Circle داره؟ اشتباه نمی کنید؟ تا اونجایی که یادمه ما دایره را روی Image اون می کشیدیم نه روی خود اون!
بعد یادم افتاد که شما گفتید VB6 و نه VB.net !
حق با شماست.(البته نه در مورد اول). شاید منظور شما این بوده:

pic.Circle (X, Y, 5, vbWhite)

اگه این جوره، راهش اینه:

Graphics g;
g = Graphics.FromImage(pic.Image);
g.DrawEllipse(new Pen(Color.White), x, y, radious, radious);

exlord
پنج شنبه 27 خرداد 1389, 10:12 صبح
2:
pic.Circle (X, Y), 5, vbWhite
ممنون از لطفتون:لبخندساده:

Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawEllipse(new Pen(Color.White), x - 5, y - 5, 10, 10);

exlord
پنج شنبه 27 خرداد 1389, 10:19 صبح
1:
RGB_Color = pic.Point(X_location, Y_location)
ممنون از لطفتون:لبخندساده:

Bitmap myBitmap = new Bitmap(pictureBox1.Image);
Color myPixel = myBitmap.GetPixel(x, y);
byte r = myPixel.R;
byte g = myPixel.G;
byte b = myPixel.B;

mahdielectronic
پنج شنبه 27 خرداد 1389, 14:00 عصر
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawEllipse(new Pen(Color.White), x - 5, y - 5, 10, 10);

کار نداد:ناراحت:

اینو نوشتم!

Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawEllipse(new Pen(Color.Red ), 50 , 50 , 100, 100);

راستی با این کد باید انتظار داشته باشم یه دایره رو پیکچر باکس بکشه دیگه؟:افسرده:

exlord
پنج شنبه 27 خرداد 1389, 14:38 عصر
کار نداد:ناراحت:

اینو نوشتم!

Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawEllipse(new Pen(Color.Red ), 50 , 50 , 100, 100);راستی با این کد باید انتظار داشته باشم یه دایره رو پیکچر باکس بکشه دیگه؟:افسرده:
بله باید بکشه ...... نمیکشه؟
pictureBox1.Image ست شده؟
اندازه pictureBox1 چقدره شاید دایره داره بیرونه اون رسم میشه؟؟؟

mahdielectronic
پنج شنبه 27 خرداد 1389, 15:48 عصر
بله باید بکشه ...... نمیکشه؟
pictureBox1.Image ست شده؟
اندازه pictureBox1 چقدره شاید دایره داره بیرونه اون رسم میشه؟؟؟

نمیکشه:گریه:

یه عکس گزاشتم تو پیکچر باکس با اندازه 300*600

امکانش هست که پیکچر باکس یه خاصیت داشته باشه که نزاره روی عکسش چیزی بکشیم؟

مثل خاصیت (فکر کنم)AutoDrow تو VB6 بودا..:افسرده:

ممنون

cardano7
پنج شنبه 27 خرداد 1389, 19:40 عصر
دو نکته هست که اشکال کار خیلی ها در این جور موارده:
1- رنگ زمینه ی شما چیه؟ امیدوارم زمینه رو روی زمینه نکشیده باشید!
2- از ابعاد خارج نشده باشید. یعنی نقاط دایره داخل کادر شما باشند.

شما ابعاد pictureBox را چند در چند انتخاب کردید؟ چون با بزرگ شدن عکس، خود pictureBox بزرگ نمیشه.
همچنین نوع نمایش عکس شما چطوریه؟ Normal یا Center یا Stretch یا ...

اگر امکانش هست محتویات تابع InitializeComponent واقع در Form1.Designer.cs را در اینجا قرار بدید تا من اون را بخونم. و وضعیت pictureBox شما رو متوجه بشم.

اگه دستورات اون تابعی هم که قراره دایره را ترسیم کنه اینجا قرار بدید خیلی بهتره.

mahdielectronic
پنج شنبه 27 خرداد 1389, 21:16 عصر
سلام

هر دو مورد رو رعایت کردم:افسرده:

این محتویاتی که میخواستید:لبخندساده:

private void InitializeComponent()
{
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.button1 = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.p ictureBox1)).BeginInit();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.Image = global::WindowsFormsApplication1.Properties.Resour ces._10062;
this.pictureBox1.Location = new System.Drawing.Point(7, 12);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(600, 300);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchIma ge;
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
this.pictureBox1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.pictur eBox1_MouseDown);
//
// button1
//
this.button1.Location = new System.Drawing.Point(12, 318);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 1;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click_1);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(705, 401);
this.Controls.Add(this.button1);
this.Controls.Add(this.pictureBox1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.p ictureBox1)).EndInit();
this.ResumeLayout(false);

}

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


Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawEllipse(new Pen(Color.Red), 10, 10, 10, 10);

ممنون:لبخندساده:

cardano7
پنج شنبه 27 خرداد 1389, 22:35 عصر
حالا فهمیدم اشکال از کجاست!
در حقیقت شکل رسم میشه اما pictureBox1 شما Refresh نمیشه.

این دستور را به آخر برنامه اضاقه کنید:

pictureBox1.Refresh();

mahdielectronic
پنج شنبه 27 خرداد 1389, 23:29 عصر
دوستان مشکلم حل شد ....

ممنون از همه ی کامپیوتری ها:قلب:

از طرف یک الکترونیکی:چشمک::لبخند: