Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2010, 10:11   #1
KM_ZeD
Новичок
Джуниор
 
Регистрация: 27.11.2010
Сообщений: 1
По умолчанию Создание компонента на С#

Всем привет)
Ребята, такая штука, хочу написать компонент типа BlsCompnt на шарпе,рассматриваю пример.
вот текст проги:

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Threading;
using System.Collections;
using System.ComponentModel;

namespace csBall_a_Dll

{
public class CompEventArgs:EventArgs
{
public int numCompnt;
public Point point;
public CompEventArgs (int NumCompnt,Point pnt)
{
numCompnt=NumCompnt;
point=Pnt;
}
}
public delegate void CompEventHandler (object o,CompEventArgs e);
public class BlsCompnt: Component
{
public event EventHandler Disposed;
public event CompEventHandler compEvent;
private int numCompnt;
private Size clientSize;
private int dX;
private int dY;
private Point point;
private bool life;
private bool run;
private Thread thread;
private bool near;
private int distance;
private ArrayList list;
public BlsCompnt (int NumCompnt,Point Pnt,int Dx,int Dy,Size ClientSize)
{
distance=10;
near=false;
list=ArrayList();
Disposed=null;
numCompnt=NumCompnt;
clientSize=ClientSize;
point=Pnt;
dX=Dx;
dY=Dy;
life=false;
run=false;
thread=new Thread (new ThreadStart(ThreadFunc));
}
public int Number
{
get
{
return numCompnt;
}
}
public bool Near
{
get
{
return near;
}
}
public Point Point
{
get
{
return point;
}
}
public virtual new void Dispose ()
{
if (Disposed !=null)
{
Disposed (this,EventArgs.Empty);
}
}
public void Run ()
{
if(life)
{
life=true;
run=true;
thread.Start();
}
if(life && !run)
{
run=true;
thread.Resume();
}
}
public void Stop()
{
if (life && run)
{
run=false;
thread.Suspend();
}
}
public void Finish()
{
life=false;
run=false;
}
private void ThredFunc()
{
int n=0;
while (life)
{
n++;
point Offset (dX,dY);
if (point.X < 0 || point.X > clientSize.Width) dX=-dX;
if (point.Y < 0 || point.Y > clientSize.Height) dY=-dY;
if (compEvent !=null)
{
CompEventArgs compArgsChange=new
CompEventArgs (numCompnt,point);
compEvent (this,compArgsChange);
}
Thread.Sleep (30);
}
Console.Write ("\n Компонент "+numCompnt+"finished");
}
public void HandlerBalls (object sender,CompEventArgs arg)
{
Monitor.Enter (this);
Console.WriteLine ("-----------------------");
Console.WriteLine ("Обработчик компонента"+numCompnt +"Предыдущее near="+near);
bool isNear=((Math.Abs(arg.point.X-point.X) < distance)&&(Math.Abs(arg.point.Y-point.Y) < distance));
bool isHave=false;
IEnumerator inum = list.GetEnumerator();
while (Inum.MoveNext())
{
int numb = (int)Inum.Current;
if(numb==arg.numCompnt)
{
isHave=true;
break;
}
}
Console.WriteLine("После просмотра списка isNear="+isNear+"isHave="+isHave+"C ount="+listCount);
if(!isHave && isNear)
{
list.Add (arg.numCompnt);
Console.WriteLine("\nAdd");
}
if(isHave && !isNear)
{
list.Remove (arg.numCompnt);
Console.WriteLine("\nRemove");
}
if(listCount==0) if(near) near=false;
if(listCount!==0) if(!near) near=true;
Console.Write("Координаты компонента"+numCompnt);
Console.WriteLine("point.X="+point. X+"point.Y"+point.Y);
Console.Write ("Координаты компонента"+arg.numCompnt);
Console.WriteLine ("Компонент"+arg.point.X+"point.Y"+ arg.point.Y);
Console.WriteLine("Компонент"+numCo mpnt+"Новое near="+near);
Monitor.Exit(this);
}
}
}

работаю через SharpDevelop, не знаю в чем причина, ругается на Dispose,я пока не очень хорошо знаю шарп, может кто объяснит? буду очень признателен
KM_ZeD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание компонента nXs Компоненты Delphi 7 16.05.2010 12:13
Создание компонента sashchernun Компоненты Delphi 2 01.03.2010 00:10
Динамическое создание компонента из компонента)) Impuls1989 Компоненты Delphi 8 22.10.2009 00:08
Создание компонента Neobrat Компоненты Delphi 3 01.05.2009 09:52
Создание компонента. Черничный Компоненты Delphi 2 01.06.2008 23:28