![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 05.03.2010
Сообщений: 10
|
![]()
Ребят, помогите кто может! пишу программу. выдает ошибку Incompatible types "HDC" and "Real". Уже всё перепробовал. не знаю что делать. программа для построения графика функции. объясните мне, пожалуйста, что я делаю неправильно. help!
Вот код программы: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var x,y:real; n:real; begin with Form1.Image1.Canvas do begin x:=-3; while x<3 do x:=x+0.3; y:=(x*x*x)*Sin(x)-1.18; Pixels[Round(100*x)+200,200-Round(20*y)]:=clBlack; end; Form1.Image1.Canvas.MoveTo(0,200); Form1.Image1.Canvas.LineTo(500,200) ; Form1.Image1.Canvas.MoveTo (250,0); Form1.Image1.Canvas.LineTo(250,500) ; n:=0; while n<500 do begin n:=n+100; Form1.Image1.Canvas.MoveTo(Round(n) ,190); Form1.Image1.Canvas.LineTo(Round(n) ,190); TextOut(n,200,FloatToStr((n-250)/50)); end; n:=0; while n<400 do begin n:=n+100; Form1.Image1.Canvas.MoveTo(245,Roun d(400-n)); Form1.Image1.Canvas.LineTo(255,Roun d(400-n)); TextOut(245,400-n,FloatToStr(Round((n-200)/10))); end; end; end. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Процедуру TextOut вызываете неправильно )
Код:
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
![]() Код:
Последний раз редактировалось Karabash; 05.03.2010 в 21:49. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 05.03.2010
Сообщений: 10
|
![]()
У меня уже голова кругом от этого...
Можете исправить, а? ребят... а то я уже всё... сдаюсь))) |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 05.03.2010
Сообщений: 10
|
![]()
Я n изменил на integer. теперь пишет Incompatible types "Integer" and "String"
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 05.03.2010
Сообщений: 10
|
![]()
всё сделал как вы посоветовали) работает! но как-то н играфик не рисует и подписи по осям в другом месте находятся формы... что делать?)
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
![]() Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 05.03.2010
Сообщений: 10
|
![]()
Спасибо большое) Теперь мне осталось программу написать чтоб график нарисовать..
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 05.03.2010
Сообщений: 10
|
![]()
Вот смотрите, я сюда еще приписал программу которая строит график, но она тоже не хочет работать...
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var x,y:real; n:integer; begin with Form1.Image1.Canvas do begin x:=-3; while x<3 do x:=x+0.3; y:=(x*x*x)*Sin(x)-1.18; Pixels[Round(100*x)+200,200-Round(20*y)]:=clBlack; end; Form1.Image1.Canvas.MoveTo(0,200); Form1.Image1.Canvas.LineTo(500,200) ; Form1.Image1.Canvas.MoveTo (250,0); Form1.Image1.Canvas.LineTo(250,500) ; n:=0; while n<500 do begin n:=n+35; Form1.Image1.Canvas.MoveTo(n,190); Form1.Image1.Canvas.LineTo(n,190); Form1.Image1.Canvas.TextOut(n,200,F loatToStr((n-250)/50)); end; n:=0; while n<400 do begin n:=n+35; Form1.Image1.Canvas.MoveTo(245,400-n); Form1.Image1.Canvas.LineTo(255,400-n); Form1.Image1.Canvas.TextOut(245,400-n,FloatToStr(Round((n-200)/10))); x:=-3; repeat y:= (x*x*x)*Sin(x)-1.18; Pixels[Round(100*x)+200,200-Round(20*y)]:=clRed; x:=x+0,3; until (x>=3); end; end; procedure TForm1.FormResize(Sender: TObject); begin Form1.Image1.Canvas.FillRect(Rect(0 ,0,ClientWidth,ClientHeight)); GrOfFunc; end; procedure TForm1.Button1Click(Sender: TObject); begin GrOfFunc; end; end; end; end. Про Pixels ошибку выдает... |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
![]()
Потому что Pixels это свойство класса TCanvas.
Код:
Последний раз редактировалось Karabash; 05.03.2010 в 22:26. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. | Каравай | Microsoft Office Excel | 13 | 17.02.2010 09:53 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
блок "cont" с права не принимает значение "margin: 10px;" которое описано в body | tabikA | HTML и CSS | 5 | 24.02.2009 21:50 |
Под прикрытием "кризиса" наши доблестные "управители" хотят утопить нас в радиоактивных отходах | mihali4 | Свободное общение | 1 | 17.01.2009 01:43 |