Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/39: Рейтинг темы: голосов - 39, средняя оценка - 4.74
0 / 0 / 0
Регистрация: 07.11.2008
Сообщений: 85
1

Как подключить класс к программе

01.06.2009, 21:54. Показов 7934. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте я написал клас оддельним модулем зделаа приложения которе должно юзать этот клас но я немогу эво подключить помогите пожалуста !

Текст кода

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
unit Kllas;
 
interface
 
Type
 TEquation = class
    XNach, XCon, E : Real;
    function Hord(xn,xk,e:real):real ;
 end ;
 
 
 
implementation
{$R *.dfm}
 //*****************************************************
function NEquat(x0:Real):real;
begin
  Result:=X0*X0*X0-sqrt(X0)-9.5;
end;
 
//*****************************************************
 
//*****************************************************
 function TEquation.Hord(xn,xk,e:real):real;
 Var x,y,x0,x1,y0,y1: real;
     ncycle: Integer;
 begin
   ncycle:=0; x0:=xn; x1:=xk; //инициализация
   repeat
     if ncycle>100 then Exit;
      inc(ncycle);
      y0:= NEquat(x0);
      y1:= NEquat(x1);
      x:=x0-y0*(x1-x0)/(y1-y0);
      y:= NEquat(x);        //текущее значение
      if y*y0<0 then   //знак функции изменился
        begin
          x1:=x;  y1:=y;
        end
      else
         begin
          x0:=x;  y0:=y;
        end;
   until abs(y)<e;
   Result:=x;
 end;
 end .





0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2009, 21:54
Ответы с готовыми решениями:

Как подключить базу к программе?
object fdConnection: TFDConnection Params.Strings = ( ...

Как подключить подпрограмму к программе?
Как перейти из main в nemain? #include&lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; ...

Как подключить antigate к программе?
Как подключить antigate к программе? Нужно подключить к консольному приложению. Не совсем понимаю...

Как в программе подключить справку?
Есть файл *.chm, подключаю его через project -&gt; options и прописываю...

14
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
01.06.2009, 22:45 2
Delphi
1
2
3
4
5
6
7
8
Uses Kllas;  // Подключаем модуль
.......
Var Equation : TEquation; // Объявляем переменную
Begin
  Equation := TEquation.Create; // Создаём объект
  Equation.Hord(1,2,3);  // Работаем с ним
  Equation.Free; // И не забываем его освобождать, что бы не было утечек памяти
End;
2
0 / 0 / 0
Регистрация: 07.11.2008
Сообщений: 85
01.06.2009, 23:32 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
unit Kllas;
 
interface
uses Classes;
 
Type
 TEquation = class
    XNach, XCon, E : Real;
    function Hord(xn,xk,e:real):real ;
 end ;
 
 Var Equation : TEquation; // Объявляем переменную
     Form1 : TForm1;
 
 
implementation
{$R *.dfm}
 //*****************************************************
function NEquat(x0:Real):real;
begin
  Result:=X0*X0*X0-sqrt(X0)-9.5;
end;
 
//*****************************************************
 
//*****************************************************
 function TEquation.Hord(xn,xk,e:real):real;
 Var x,y,x0,x1,y0,y1: real;
     ncycle: Integer;
 begin
   ncycle:=0; x0:=xn; x1:=xk; //инициализация
   repeat
     if ncycle>100 then Exit;
      inc(ncycle);
      y0:= NEquat(x0);
      y1:= NEquat(x1);
      x:=x0-y0*(x1-x0)/(y1-y0);
      y:= NEquat(x);        //текущее значение
      if y*y0<0 then   //знак функции изменился
        begin
          x1:=x;  y1:=y;
        end
      else
         begin
          x0:=x;  y0:=y;
        end;
   until abs(y)<e;
   Result:=x;
 end;
 
  procedure TForm1.BtOkClick(Sender: TObject);
var Rez:Real;
begin
  Equation := TEquation.Create; // Создаём объект
  Equation .XNach:= StrToFloat(Form1.EXnach.Text);
  Equation .XCon:= StrToFloat(Form1.EXkon.Text);
  Equation .E:= StrToFloat(Form1.EToch.Text);
  Case Form1.RadioGroup1.ItemIndex of
   0: Rez:= equat.Hord(equat.XNach,equat.XCon,equat.E);
 
  end;
  Form1.lbRez.Caption:= 'Корінь рівняння: ' + FloatToStr(Rez);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
написал вот так для начяла но кнопка всеравно не горит может я чтото неправилно изначялно зделал описиваю свои дейсвия : и так запустил Делфи 2009 вибрал New-Unit , написал код потом потои вибрал New - Form зделал форму теперь незнаю че далать ((((
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
02.06.2009, 08:42 4
Ну если ты описал класс TEquation в отдельном модуле, то пусть он там и будет. А работать с этим классом нужно в том модуле, где у тебя форма. В твоём коде от формы только какие-то ошмётки остались... подозреваю, что процедура TForm1.BtOkClick просто не вызывается при нажатии на кнопку.
0
0 / 0 / 0
Регистрация: 07.11.2008
Сообщений: 85
02.06.2009, 11:10 5
Да вроде написано как вы и сказали я викладиваю свои нароботки может вам так поняяней будеть где собака зарита атоя пишу клас впервие мог и провтикать чтото !
Вложения
Тип файла: rar Проек курсовой.rar (10.3 Кб, 42 просмотров)
0
0 / 0 / 0
Регистрация: 07.11.2008
Сообщений: 85
02.06.2009, 18:47 6
Помогите кто нить нехочетсо екзамен провалить изза такой мелочи(((
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
02.06.2009, 19:23 7
В файле unit1.pas ты не подключили свой модуль... к uses там надо добавить kllas
Тут
Delphi
1
2
3
procedure TForm1.BitOKClick(Sender: TObject);
var Rez:Real;
begin
добавь
Delphi
1
2
3
4
procedure TForm1.BitOKClick(Sender: TObject);
var Rez:Real;
    Equation : TEquation;
begin
И в конце этой функции (когда уже больше не будешь работать с переменной Equation ) выполни Equation.Free;

А в файле kllas.pas строки
Delphi
1
2
 Var Equation : TEquation; // Объявляем переменную
     Form1 : TForm1;
не нужны.

И у тебя не хватает файла проекта (с расширением dpr ). Так ты не сможешь вообще откомпилировать свою программу. Надо создавать проект не "New - Form", а "New - Application". Только сохраняй в другую папку, а то он заменит файл unit1.pas
1
0 / 0 / 0
Регистрация: 07.11.2008
Сообщений: 85
02.06.2009, 19:40 8
Ого сколько косяков спасибо !!!!

Добавлено через 12 минут 26 секунд
ЫЫЫЫ
дописал

Delphi
1
2
3
4
unit Kllas;
 
interface
uses Classes,Kllas;
витоге получил ошибку [DCC Fatal Error] Kllas.pas(4): F2092 Program or unit 'Kllas' recursively uses itself
0
0 / 0 / 0
Регистрация: 07.11.2008
Сообщений: 85
02.06.2009, 20:01 9
Проделал все више указаное и полетело кучя ошибок ((( чет мне невизеть((
Вложения
Тип файла: rar Курсовая.rar (11.4 Кб, 37 просмотров)
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
02.06.2009, 20:44 10
В самом kllas.pas нужно подключать только
Delphi
1
Uses Classes
А вот в unit1.pas нужно
Delphi
1
2
3
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, kllas;
0
0 / 0 / 0
Регистрация: 07.11.2008
Сообщений: 85
03.06.2009, 13:38 11
Вот эво тукст помоиму все єсть
unit Unit1;

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons;
 
type
  TForm1 = class(TForm)
    Panel1: TPanel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    BitOK: TBitBtn;
    Panel2: TPanel;
    XnaC: TEdit;
    XcoN: TEdit;
    t: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    TChart: TChart;
    List: TLabel;
    procedure BitOKClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
 
implementation
 
uses Kllas;
 
{$R *.dfm}
 
procedure TForm1.BitOKClick(Sender: TObject);
 
var Rez:Real;
    Equation : TEquation;
begin
  Equation := TEquation.Create; // Создаём объект
  Equation .XNach:= StrToFloat(Form1.EXnaC.Text);
  Equation .XCon:= StrToFloat(Form1.EXcoN.Text);
  Equation .E:= StrToFloat(Form1.t.Text);
  Case Form1.RadioGroup1.ItemIndex of
   0: Rez:= equat.Hord(equat.XNach,equat.XCon,equat.E);
 
  end;
  Form1. List.Caption:= 'Корінь рівняння: ' + FloatToStr(Rez);
end;

end.

Добавлено через 2 минуты 23 секунды
Блин я уже ООП ненавижу(

Добавлено через 2 часа 16 минут 17 секунд
Чес слово помогите мне через сутки здавать век незабуду!!!

Добавлено через 10 часов 41 минуту 38 секунд
может кто роскажет по шагам я уже готов с 0 переписать!

Добавлено через 3 часа 39 минут 23 секунды
Через сутки здавать змилуйтесь обидно вроде зделал а оно не компилируетса((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( ((((((((((((((((((((((((
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
03.06.2009, 14:11 12
Вот в таком виде у меня скомпилировалась на Delphi7

Unit1.pas
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Buttons, Kllas;
 
type
  TForm1 = class(TForm)
    Panel1: TPanel;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    BitOK: TBitBtn;
    Panel2: TPanel;
    XnaC: TEdit;
    XcoN: TEdit;
    t: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    TChart: TChart;
    List: TLabel;
    procedure BitOKClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
 
implementation
 
{$R *.dfm}
 
procedure TForm1.BitOKClick(Sender: TObject);
var Rez:Real;
    Equation : TEquation;
begin
  Equation := TEquation.Create; // Создаём объект
  Equation.XNach:= StrToFloat(Form1.XnaC.Text);
  Equation.XCon:= StrToFloat(Form1.XcoN.Text);
  Equation.E:= StrToFloat(Form1.t.Text);
  Form1. List.Caption:= 'Кор_нь р_вняння: ' + FloatToStr(Rez);
  Equation.Free;
end;
 
end.

Kllas.pas
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
unit Kllas;
 
interface
 
uses Classes;
 
Type
 TEquation = class
    XNach, XCon, E,dh : Real;
    function Hord(xn,xk,e:real):real ;
    function Trapec(xn,xk,dh:real):real;
 end;
 
implementation
 
 //*****************************************************
function NEquat(x0:Real):real;
begin
  Result:=X0*X0*X0-sqrt(X0)-9.5;
end;
 
  //*****************************************************
function NIntegr(x:Real):real;
begin
  Result:=x*x*x-x;
end;
//*****************************************************
 function TEquation.Hord(xn,xk,e:real):real;
 Var x,y,x0,x1,y0,y1: real;
     ncycle: Integer;
 begin
   ncycle:=0; x0:=xn; x1:=xk; //инициализация
   repeat
     if ncycle>100 then Exit;
      inc(ncycle);
      y0:= NEquat(x0);
      y1:= NEquat(x1);
      x:=x0-y0*(x1-x0)/(y1-y0);
      y:= NEquat(x);        //текущее значение
      if y*y0<0 then   //знак функции изменился
        begin
          x1:=x;  y1:=y;
        end
      else
         begin
          x0:=x;  y0:=y;
        end;
   until abs(y)<e;
   Result:=x;
 end;
 //*****************************************************************
 function TEquation.Trapec(xn,xk,dh:real):real;   //трапец_ї
 Var xt,s: real;
 begin
   xt:=xn; s:=0;   //инициализация xt-текущее значение х; s-значение функции
   while xt<xk do
    begin
      s:=s+NIntegr(xt)+NIntegr(xt+dh); //суммируем значения функции на интервале
      xt:= xt + dh;     //делаем приращение аргумента
    end;
   Result:=s*dh/2;
 end;
 
end.
Но процедуру TForm1.BitOKClick сам дописывай... а то она сейчас в каком-то странном виде.
2
0 / 0 / 0
Регистрация: 07.11.2008
Сообщений: 85
03.06.2009, 14:39 13
Спасибо что помогли можете сказать в чем бил косяк мне ище класы песать нужно нехочю повторять ошибки)

Добавлено через 13 минут 4 секунды
Кстати а что странного то
Delphi
1
2
3
4
5
6
7
8
9
10
11
begin
  Equation := TEquation.Create; // Создаём объект
  Equation .XNach:= StrToFloat(Form1.EXnaC.Text);
  Equation .XCon:= StrToFloat(Form1.EXcoN.Text);
  Equation .E:= StrToFloat(Form1.t.Text);
  Case Form1.RadioGroup1.ItemIndex of
   0: Rez:= equat.Hord(equat.XNach,equat.XCon,equat.E);
 
  end;
  Form1. List.Caption:= 'Корінь рівняння: ' + FloatToStr(Rez);
end;
по моиму как учили просто обработчик только для одной функции !
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
03.06.2009, 14:41 14
В файле Kllas.pas не нужен {$R *.dfm}
Потом этот файл небыл подключен к uses
В самом этом файле он в uses вызывал сам себя.
И в самой процедуре TForm1.BitOKClick были неправильные имена указаны EXnaC и EXnaN, а называются они XnaC и XnaN. И ещё было что-то написано про RadioGroup1, которого не существует у тебя.
1
0 / 0 / 0
Регистрация: 07.11.2008
Сообщений: 85
05.06.2009, 17:06 15
Понял спасибо за придельную ясность !

Добавлено через 32 минуты 54 секунды
и снова проклятая курсовая организовал визов так ибо по другому не умею


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.BitOKClick(Sender: TObject);
var Rez:Real;
    Equation : TEquation;
begin
  Equation := TEquation.Create; // Создаём объект
  Equation.XNach:= StrToFloat(Form1.XnaC.Text);
  Equation.XCon:= StrToFloat(Form1.Xcon.Text);
  Equation.E:= StrToFloat(Form1.t.Text);
  Form1. List.Caption:= 'Кор_нь р_вняння: ' + FloatToStr(Rez);
  Equation.Free;
   Case Form1.RadioGroup1.ItemIndex of
   0: Rez:= equat.Hord(equat.XnaC,equat.Xcon,equat.E);
end;
в модуле дописал

Код Delphi1 2 3
Delphi
1
2
3
var
  Form1: TForm1;
  Equat: TEquation;
так как перемение нужни мне для визова
в томже модуле в
Uses дописал Forms ; ругаетсо именно на TForm в переменной
может эсть другой способ визова а тоя только так умею ранше прокативало шяс нет почимуто((

Добавлено через 1 час 17 минут 4 секунды
А ище когда поставил ище несколько кнопок на форму и попитался написать для них банальний обработчик для закрития форми он ине написало что неможет найти собития для єтого пипец полний я в шоке!

Добавлено через 1 час 49 минут 45 секунд
(((((

Добавлено через 1 час 32 минуты 51 секунду
хелп ми плиз!

Добавлено через 29 минут 18 секунд
Помогите уже добить ёё пожалуста завтра с утра на здачю нужна!

Добавлено через 16 минут 29 секунд
Ну неужели так сложно указать где я стормозил????? ПОЖАЛУСТА!


Добавлено через 18 часов 16 минут 4 секунды
Откликнетесь кто нить)))))))

Добавлено через 23 часа 56 минут 33 секунды
Решил сам спасибо тему Можно удалять!
0
05.06.2009, 17:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2009, 17:06
Помогаю со студенческими работами здесь

Как подключить Log4Net к программе?
Проблема у меня с конфигурацией Log4Net. В какое место App.config ее засунуть, если у меня в ней...

Как подключить БД к программе - тестировщику?
Приветствую! Нужно сделать так, чтобы в конце программа сохраняла данные и результаты тестируемого...

Как подключить написанную библиотеку к программе?
Помогите, пожалуйста. Написала сама библиотеку: mPOOH.cpp #include &quot;mPOOH.h&quot; #include...

Как подключить код на С к программе написанной на VB
Вопрос такой как подключить кусок кода на С (С++) к программе на VB. Мне нужно не просто запустить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru