Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 99

Классы в делфи

16.03.2017, 21:57. Показов 1471. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят направьте в нужное русло!
Прочитал на форумах и в гугле о классах и объектах их создании !
Вроде все понятно !
Но никак не могу понять как мне разработать класс для построения графика ?
Процедурами и функциями добился результата ,но не понимаю как приурочить к этому класс!
такое ощущение что это тоже самое получается
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
65
66
67
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs ,Unit2, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Label1: TLabel;
    RadioGroup1: TRadioGroup;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  x,y,vibor:integer;
implementation
 
{$R *.dfm}
 
 
procedure TForm1.FormCreate(Sender: TObject);
 
begin
  x:=image1.width;
  y:=image1.height;
  Label1.Caption:='';
  Edit1.Text:='2';
  Edit2.Text:='3';
  Edit3.Text:='0,1';
  postroitOSI ;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 a,b,h:Real;
begin
  a:= strToFloat(Edit1.Text);
  b:=strToFloat(Edit2.Text);
  h:=strToFloat(Edit3.Text);
  case  RadioGroup1.ItemIndex  of
    0:vibor:=1;
    1:vibor:=2;
    2:vibor:=3;
  end;
Label1.Caption:=FloatToStr(integral(a,b,h));
Image1.Canvas.FillRect(Canvas.ClipRect);
postroitOSI ;
postroitGRAF(a,b,h);
postroitPrimoug (a,b,h);
end;
 
end.
Добавлено через 59 секунд
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
unit Unit2;
 
interface
type
  integrala1 =class
    nachalo:Real;
    conec:Real;
    interval:Real;
    function znachenie (object1:integrala1):Real;
  end;
osiXY= array[0..1000] of integer;
 
function fo(a:real):Real;
function integral(a,b,h:real):Real;
procedure postroitOSI ;
procedure postroitGRAF (a,b,h:real);
procedure postroitPrimoug(a,b,h:real);
 
 
 
var
Zmax:Real;
implementation
 
uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs , ExtCtrls, StdCtrls,Unit1,Math;
function fo(a:real):Real;
begin
     Result:=Cos(3.14*a/6)/Sqrt(a) ;
   //Result:=(a+Sqrt(Cos(a))) ;
end;
procedure postroitOSI ;
 
begin
   with Form1 do
      begin
        //ось x
         Image1.Canvas.MoveTo(20,y-20);
         Image1.Canvas.LineTo(x-20,y-20);
         Image1.Canvas.MoveTo(x-20,y-20);
         Image1.Canvas.LineTo(x-30,y-25);
         Image1.Canvas.MoveTo(x-20,y-20);
         Image1.Canvas.LineTo(x-30,y-15);
         Image1.Canvas.TextOut(x-30,y-15,'X');
         //ось y
         Image1.Canvas.MoveTo(20,y-20);
         Image1.Canvas.LineTo(20,20);
         Image1.Canvas.MoveTo(20,20);
         Image1.Canvas.LineTo(15,30);
         Image1.Canvas.MoveTo(20,20);
         Image1.Canvas.LineTo(25,30);
         Image1.Canvas.TextOut(5,25,'Y');
      end;
 
end;
 
procedure postroitGRAF (a,b,h:real);
var
  n,i:integer  ;
  Xh,Yh,Xhh,Yhh,z,Amax,a0:Real;
 
  begin
   n:=Trunc(b/h);
   Xh:=0.9*x/n;
   Yh:=0.9*y/n;
   Xhh:=0;
   Yhh:=0;
   Zmax:=0;
   Amax:=0;
   a0:=a;
   i:=1;
  with form1 do
 
    begin
      while a<b do
      begin
        z:=fo(a);
        if Zmax<z then
        begin
         Zmax:=z;
         Amax:=a;
        end;
        a:=a+h;
      end;
      a:=a0;
      //ShowMessage(FloatToStr(Yhh));
      while a<b do
      begin
        if (a+h>b) or (Xhh>30) or (Xhh=0) then
          begin
           Image1.Canvas.Rectangle(trunc(0.8*x*a/b+19),y-19,trunc(0.8*x*a/b+21),y-21);
           Image1.Canvas.TextOut(trunc(0.8*x*a/b+15),y-15,floatTostr(RoundTo(a,-2)));
           Xhh:=0;
          end;
          Xhh:=Xhh+Xh  ;
          Yhh:=(0.8*y*fo(a)/Zmax)/i;
          if (Yhh>30)  or (Yhh =0) or (a+h>b) then
          begin
            i:=i+1;
           Image1.Canvas.Rectangle(20,trunc(y-19-0.8*y*fo(a)/Zmax),22,Trunc(y-21-0.8*y*fo(a)/Zmax));
           Image1.Canvas.TextOut(2,trunc(y-28-0.8*y*fo(a)/Zmax),floatTostr(RoundTo(fo(a),-1)));
          end;
             Yhh:=(0.8*y*fo(a)/Zmax)/i;
           Image1.Canvas.MoveTo(trunc(0.8*x*a/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
           a:=a+h;
           Image1.Canvas.LineTo(trunc(0.8*x*a/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
      end;
 
    end;
  end;
 
procedure postroitPrimoug  (a,b,h:real);
var
  ch1,ch2,i,r:Integer;
  H1,H2:Real;
begin
case vibor of
  1:
  begin
     H1:=h/2;
     H2:=h/2;
  end;
  2:
  begin
     H1:=h;
     H2:=0;
  end;
  3:
  begin
     H1:=0;
     H2:=h;
  end;
end;
   with Form1 do
      begin
         while a<b do
            begin
               Image1.Canvas.MoveTo(trunc(0.8*x*(a-H1)/b+20),y-20);
               Image1.Canvas.LineTo(trunc(0.8*x*(a-H1)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.MoveTo(trunc(0.8*x*(a-H1)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.LineTo(trunc(0.8*x*(a+H2)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.MoveTo(trunc(0.8*x*(a+H2)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.LineTo(trunc(0.8*x*(a+H2)/b+20),y-20);
                   ch2:=0;
                  for i:= trunc(0.8*x*(a-H1)/b+20) to trunc(0.8*x*(a+H2)/b+20) do
                    begin
                       ch1:=0;
                       for r:= trunc(y-20-0.8*y*fo(a)/Zmax) to y+20 do
                          begin
                             ch1:=ch1+1;
                             if ch1=10 then
                                begin
                                     if  (r-ch2>=trunc(y-20-0.8*y*fo(a)/Zmax)) and (r-ch2<=y-20)then
                                        begin
                                            Image1.Canvas.Pixels[i,r-ch2]:=clBlack;
 
                                        end;
                                       ch1:=0;
 
                                end;
 
                          end;
                        ch2:=ch2+1;
                    end;
               a:=a+h;
            end;
      end;
end;
 
function integral(a,b,h:real):Real;
var i,n:Integer;
 begin
   n:=trunc((b-a)/h);
   case vibor of
   1:
    begin
      for i:=1 to n do
      begin
          result:=result+fo(i)+h/2;
      end;
    end;
    2:
    begin
      for i:=0 to n-1 do
      begin
          result:=result+fo(i);
      end;
    end;
    3:
    begin
      for i:=1 to n do
      begin
          result:=result+fo(i);
      end;
    end;
   end;
    result:=RoundTo(h*result,-12);
 
 end;
 
 
 
end.
Добавлено через 3 минуты
Просьба с кода не смеятся!
Здесь реализовано построение графика и построение заштрихованных треугольников на canvas в timage
Не понимаю как реализовать это с помощью классов!?
Ведь получиться тоже самое

Добавлено через 1 минуту
integrala1 =class
nachalo:Real;
conec:Real;
interval:Real;
function znachenie (object1:integrala1):Real;
end;

это я начал реализовывать класс
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.03.2017, 21:57
Ответы с готовыми решениями:

Классы в делфи
Извените что на украинском.вот ссылка на задание! http://fotky.com.ua/public/view/full/51817

Классы в делфи. Рисование в TImage
я делаю в rad studio xe5 курсач. Мне нужно написать классы, в 1-ом - объектом будет рисоваться фигура границы цикла, во 2-ом цилиндр. как...

После установки компонента, делфи не видит его классы
requires rtl, vcl; Устанавливаю, всё нормально устанавливается, но не вылезает окно с классами после установки как обычно,...

23
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 99
19.03.2017, 12:43  [ТС]
Студворк — интернет-сервис помощи студентам
ну да проще перевести 1 процедуру в класс и смотреть возникают ли ошибки чем все и думать на какой из них возникла
кстати на 3 почемуто возникла и пока не пойму почему

Добавлено через 19 минут
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
65
66
67
68
69
70
71
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs ,Unit2, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Label1: TLabel;
    RadioGroup1: TRadioGroup;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
 
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  yravnenie :Tmyclass;
  OSI :Tmyclass;
  graf:Tmyclass;
  prymoyg:Tmyclass;
  x,y,vibor:integer;
implementation
 
{$R *.dfm}
 
 
procedure TForm1.FormCreate(Sender: TObject);
 
begin
  x:=image1.width;
  y:=image1.height;
  Label1.Caption:='';
  Edit1.Text:='2';
  Edit2.Text:='3';
  Edit3.Text:='0,1';
  OSI.postroitOSI ;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 a,b,h:Real;
begin
  a:= strToFloat(Edit1.Text);
  b:=strToFloat(Edit2.Text);
  h:=strToFloat(Edit3.Text);
  case  RadioGroup1.ItemIndex  of
    0:vibor:=1;
    1:vibor:=2;
    2:vibor:=3;
  end;
Label1.Caption:=FloatToStr(yravnenie.znachenie(a,b,h));
Image1.Canvas.FillRect(Canvas.ClipRect);
OSI.postroitOSI ;
graf.postroitGRAF(a,b,h);
prymoyg.postroitPrimoug (a,b,h);
end;
 
end.
Добавлено через 2 минуты
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
unit Unit2;
 
interface
type
  Tmyclass = class
    private
    nachalo: real;
    conec: real;
    interval: real;
    public
    function fo(a: real): real;
    function znachenie(a, b, h: real): real;
    procedure postroitOSI;
    procedure postroitGRAF(a, b, h: real);
    procedure postroitPrimoug(a, b, h: real);
    constructor create (a,b,h:real);
  end;
osiXY= array[0..1000] of integer;
 
function fo(a:real):Real;
procedure postroitGRAF (a,b,h:real);
procedure postroitPrimoug(a,b,h:real);
 
 
 
var
Zmax:Real;
implementation
 
uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs , ExtCtrls, StdCtrls,Unit1,Math;
function fo(a:real):Real;
begin
     Result:=Cos(3.14*a/6)/Sqrt(a) ;
   //Result:=(a+Sqrt(Cos(a))) ;
end;
 
procedure postroitGRAF (a,b,h:real);
    var
  n,i:integer  ;
  Xh,Yh,Xhh,Yhh,z,Amax,a0:Real;
 
  begin
   n:=Trunc(b/h);
   Xh:=0.9*x/n;
   Yh:=0.9*y/n;
   Xhh:=0;
   Yhh:=0;
   Zmax:=0;
   Amax:=0;
   a0:=a;
   i:=1;
  with form1 do
 
    begin
      while a<b do
      begin
        z:=fo(a);
        if Zmax<z then
        begin
         Zmax:=z;
         Amax:=a;
        end;
        a:=a+h;
      end;
      a:=a0;
      //ShowMessage(FloatToStr(Yhh));
      while a<b do
      begin
        if (a+h>b) or (Xhh>30) or (Xhh=0) then
          begin
           Image1.Canvas.Rectangle(trunc(0.8*x*a/b+19),y-19,trunc(0.8*x*a/b+21),y-21);
           Image1.Canvas.TextOut(trunc(0.8*x*a/b+15),y-15,floatTostr(RoundTo(a,-2)));
           Xhh:=0;
          end;
          Xhh:=Xhh+Xh  ;
          Yhh:=(0.8*y*fo(a)/Zmax)/i;
          if (Yhh>30)  or (Yhh =0) or (a+h>b) then
          begin
            i:=i+1;
           Image1.Canvas.Rectangle(20,trunc(y-19-0.8*y*fo(a)/Zmax),22,Trunc(y-21-0.8*y*fo(a)/Zmax));
           Image1.Canvas.TextOut(2,trunc(y-28-0.8*y*fo(a)/Zmax),floatTostr(RoundTo(fo(a),-1)));
          end;
             Yhh:=(0.8*y*fo(a)/Zmax)/i;
           Image1.Canvas.MoveTo(trunc(0.8*x*a/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
           a:=a+h;
           Image1.Canvas.LineTo(trunc(0.8*x*a/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
      end;
 
    end;
  end;
 
procedure postroitPrimoug  (a,b,h:real);
var
  ch1,ch2,i,r:Integer;
  H1,H2:Real;
begin
case vibor of
  1:
  begin
     H1:=h/2;
     H2:=h/2;
  end;
  2:
  begin
     H1:=h;
     H2:=0;
  end;
  3:
  begin
     H1:=0;
     H2:=h;
  end;
end;
   with Form1 do
      begin
         while a<b do
            begin
               Image1.Canvas.MoveTo(trunc(0.8*x*(a-H1)/b+20),y-20);
               Image1.Canvas.LineTo(trunc(0.8*x*(a-H1)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.MoveTo(trunc(0.8*x*(a-H1)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.LineTo(trunc(0.8*x*(a+H2)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.MoveTo(trunc(0.8*x*(a+H2)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.LineTo(trunc(0.8*x*(a+H2)/b+20),y-20);
                   ch2:=0;
                  for i:= trunc(0.8*x*(a-H1)/b+20) to trunc(0.8*x*(a+H2)/b+20) do
                    begin
                       ch1:=0;
                       for r:= trunc(y-20-0.8*y*fo(a)/Zmax) to y+20 do
                          begin
                             ch1:=ch1+1;
                             if ch1=10 then
                                begin
                                     if  (r-ch2>=trunc(y-20-0.8*y*fo(a)/Zmax)) and (r-ch2<=y-20)then
                                        begin
                                            Image1.Canvas.Pixels[i,r-ch2]:=clBlack;
 
                                        end;
                                       ch1:=0;
 
                                end;
 
                          end;
                        ch2:=ch2+1;
                    end;
               a:=a+h;
            end;
      end;
end;
 
 
 
 
 
 
{ integrala1 }
 
constructor Tmyclass.create(a, b, h: real);
begin
 
end;
 
function Tmyclass.fo(a: real): real;
begin
 
end;
 
procedure Tmyclass.postroitGRAF(a, b, h: real);
  var
  n,i:integer  ;
  Xh,Yh,Xhh,Yhh,z,Amax,a0:Real;
 
  begin
   n:=Trunc(b/h);
   Xh:=0.9*x/n;
   Yh:=0.9*y/n;
   Xhh:=0;
   Yhh:=0;
   Zmax:=0;
   Amax:=0;
   a0:=a;
   i:=1;
  with form1 do
 
    begin
      while a<b do
      begin
        z:=fo(a);
        if Zmax<z then
        begin
         Zmax:=z;
         Amax:=a;
        end;
        a:=a+h;
      end;
      a:=a0;
      //ShowMessage(FloatToStr(Yhh));
      while a<b do
      begin
        if (a+h>b) or (Xhh>30) or (Xhh=0) then
          begin
           Image1.Canvas.Rectangle(trunc(0.8*x*a/b+19),y-19,trunc(0.8*x*a/b+21),y-21);
           Image1.Canvas.TextOut(trunc(0.8*x*a/b+15),y-15,floatTostr(RoundTo(a,-2)));
           Xhh:=0;
          end;
          Xhh:=Xhh+Xh  ;
          Yhh:=(0.8*y*fo(a)/Zmax)/i;
          if (Yhh>30)  or (Yhh =0) or (a+h>b) then
          begin
            i:=i+1;
           Image1.Canvas.Rectangle(20,trunc(y-19-0.8*y*fo(a)/Zmax),22,Trunc(y-21-0.8*y*fo(a)/Zmax));
           Image1.Canvas.TextOut(2,trunc(y-28-0.8*y*fo(a)/Zmax),floatTostr(RoundTo(fo(a),-1)));
          end;
             Yhh:=(0.8*y*fo(a)/Zmax)/i;
           Image1.Canvas.MoveTo(trunc(0.8*x*a/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
           a:=a+h;
           Image1.Canvas.LineTo(trunc(0.8*x*a/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
      end;
 
    end;
  end;
 
 
procedure Tmyclass.postroitOSI;
begin
 
begin
   with Form1 do
      begin
        //îñü x
         Image1.Canvas.MoveTo(20,y-20);
         Image1.Canvas.LineTo(x-20,y-20);
         Image1.Canvas.MoveTo(x-20,y-20);
         Image1.Canvas.LineTo(x-30,y-25);
         Image1.Canvas.MoveTo(x-20,y-20);
         Image1.Canvas.LineTo(x-30,y-15);
         Image1.Canvas.TextOut(x-30,y-15,'X');
         //îñü y
         Image1.Canvas.MoveTo(20,y-20);
         Image1.Canvas.LineTo(20,20);
         Image1.Canvas.MoveTo(20,20);
         Image1.Canvas.LineTo(15,30);
         Image1.Canvas.MoveTo(20,20);
         Image1.Canvas.LineTo(25,30);
         Image1.Canvas.TextOut(5,25,'Y');
      end;
 
end;
 
end;
 
procedure Tmyclass.postroitPrimoug(a, b, h: real);
  var
  ch1,ch2,i,r:Integer;
  H1,H2:Real;
begin
case vibor of
  1:
  begin
     H1:=h/2;
     H2:=h/2;
  end;
  2:
  begin
     H1:=h;
     H2:=0;
  end;
  3:
  begin
     H1:=0;
     H2:=h;
  end;
end;
   with Form1 do
      begin
         while a<b do
            begin
               Image1.Canvas.MoveTo(trunc(0.8*x*(a-H1)/b+20),y-20);
               Image1.Canvas.LineTo(trunc(0.8*x*(a-H1)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.MoveTo(trunc(0.8*x*(a-H1)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.LineTo(trunc(0.8*x*(a+H2)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.MoveTo(trunc(0.8*x*(a+H2)/b+20),trunc(y-20-0.8*y*fo(a)/Zmax));
               Image1.Canvas.LineTo(trunc(0.8*x*(a+H2)/b+20),y-20);
                   ch2:=0;
                  for i:= trunc(0.8*x*(a-H1)/b+20) to trunc(0.8*x*(a+H2)/b+20) do
                    begin
                       ch1:=0;
                       for r:= trunc(y-20-0.8*y*fo(a)/Zmax) to y+20 do
                          begin
                             ch1:=ch1+1;
                             if ch1=10 then
                                begin
                                     if  (r-ch2>=trunc(y-20-0.8*y*fo(a)/Zmax)) and (r-ch2<=y-20)then
                                        begin
                                            Image1.Canvas.Pixels[i,r-ch2]:=clBlack;
 
                                        end;
                                       ch1:=0;
 
                                end;
 
                          end;
                        ch2:=ch2+1;
                    end;
               a:=a+h;
            end;
      end;
end;
 
function Tmyclass.znachenie(a, b, h: real): real;
var
   i,n:Integer;
begin
      n:=trunc((b-a)/h);
   case vibor of
   1:
    begin
      for i:=1 to n do
      begin
          result:=result+fo(i)+h/2;
      end;
    end;
    2:
    begin
      for i:=0 to n-1 do
      begin
          result:=result+fo(i);
      end;
    end;
    3:
    begin
      for i:=1 to n do
      begin
          result:=result+fo(i);
      end;
    end;
   end;
    result:=RoundTo(h*result,-12);
end;
 
end.
0
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 99
19.03.2017, 12:45  [ТС]
глобальные процедуры пока не удалял
подскажите что обозначает ошибка
Миниатюры
Классы в делфи  
0
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 99
19.03.2017, 21:24  [ТС]
как то само решилось))
удалил метод fo и глобальные процедуры

Добавлено через 8 часов 33 минуты
буду разбираться с инкапсуляцией
0
20.03.2017, 09:16

Не по теме:

Цитата Сообщение от Vaver Посмотреть сообщение
как то само решилось))
Вы удивитесь, но 90% проблем решаются "как-то сами":yes:

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.03.2017, 09:16

Как в Делфи выполнить код, написанный на Делфи, например в поле ввода?
Есть способ в Делфи выполнить код, написанный на Делфи, например в поле ввода?

У меня стоит Делфи 5, возможно еще поставить и Делфи 7, или будут проблемы?!
Где можно скачать Делфи 7, дайте ссылку! У меня стоит Делфи 5, возможно еще поставить и Делфи 7, или будут проблемы?!

Здр, пожалуйста попробуйте запутсить .exe написанное на делфи 10 у себя, те у кого делфи 7
и скиньте скрин пожалуйста срочно http://www.fayloobmennik.net/4874373 перед тес как запустить, создайте файлы: 1.txt, 2.txt и key.txt...

Как открыть doc в делфи? Или как можно написать огромный текст в делфи?
Думаю поймете. Я решил сделать сборник книг. И в Delphi добавил список книг (в виде кнопок) и при выборе я бы хотел открыть форму где был...

То что работает в Делфи 7 - не работает в Делфи 2010
Здравствуйте есть прога создана в Delphi 7. Хочу теперь ее скомпилировать в Делфи 2010. Но выходят ошибки уже при открытии файла...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru