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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2017, 15:05   #1
wolf777
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 27
По умолчанию правильно ли так записывать?

подскажите в delphi правильно ли так записывать? или подругому нужно?
Код:
b:=ImageGraf.ClientHeight-15;   //У - координата левого верхнего угла
просто смущает -15, может там равно должно быть или ещё что то

Последний раз редактировалось Alex11223; 09.04.2017 в 15:34.
wolf777 вне форума Ответить с цитированием
Старый 09.04.2017, 15:35   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Так а что за угол-то?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.04.2017, 16:13   #3
wolf777
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 27
По умолчанию

короч вся суть проблемы в том что вылетает такая ошибка при построении графика функции
Ошибка: red of adress 000002FC
Снимок1.PNG

вот код в котором выскакивает ошибка

PHP код:
procedure GrafFunc(x1,x2:real;sg:StringmyFunc);   // строит график функции
var
//x1,x2:real; // границы изменения аргумента функции
y1,y2:real// границы изменения значения функции
x:real// аргумент функции
y:real// значение функции в точке х
dx,dox,doy:real// приращение аргумента
l,b:integer// левый нижний угол области вывода графика
w,h:integer// ширина и высота области вывода графика
mx,my:real// масштаб по осям X и Y
j,xg,yg,xj,yj:integer;
x0,y0:integer// точка - начало координат
begin
with FrmGrafik 
do      // область вывода графика
 
begin
l
:=15;           // X - координата левого верхнего угла
b:=ImageGraf.ClientHeight-15;   //У - координата левого верхнего угла
h:=ImageGraf.ClientHeight-20// высота
w:=ImageGraf.Width-40// ширина
//x1:=0; // нижняя граница диапазона аргумента
//x2:=25; // верхняя граница диапазона аргумента
dx:=0.001// шаг аргумента
 // максимальное и минимальное значения  функции на отрезке [x1,x2]
y1:=f(x1);      // минимум
y2:=f(x2);    //  максимум   
x:=x1;
repeat
:= (x);
if 
y1 then y1:=y;
if 
y2 then y2:=y;
x:=x+dxuntil (>= x2);
// вычислим масштаб
if y2=y1 then
   y2
:=10*y1 ;
my:=h/abs(y2-y1);   // масштаб по оси Y
if x2=x1 then
   x2
:=10*x1 ;
mx:=w/abs(x2-x1);   // масштаб по оси X
dox:= (x2-x1)/10;
doy := (y2-y1)/10;
x0:=0;
y0:=b-Abs(Round(y1*my)) ;
with ImageGraf.Canvas do
begin              // оси
MoveTo(l,b); LineTo(l,b-h);    // ось ОУ
MoveTo(x0,y0); LineTo(x0+w,y0);  // ось ОХ
  
MoveTo(l+w,b); LineTo(l+w,b-h);
TextOut(l-15,b,FloatToStrF(y1,ffGeneral,6,3));
for 
:= 0 to 10  do
    
begin
      yj 
:=  b-Round(doy*my*j);
      
xj :=  lRound(dox*mx*j);
      
MoveTo(l,yj);LineTo(l+w,yj);  // горизонтальные линии
      
TextOut(x0,yj,FloatToStrF(doy*j,ffGeneral,2,1));
      
MoveTo(xj,b-h);LineTo(xj,b);    //  вертикальные линии
      
TextOut(x0-10+xj,y0,FloatToStrF(dox*j,ffGeneral,6,3));
    
end;
// построение графика
x:=x1;
  
ImageGraf.Canvas.Pen.Color:=  clBlue;  //clRed;
repeat
y
:=f(x);           
Pixels[x0+l+Round(x*mx),y0-Round(y*my)]:=clRed;
x:=x+dx;
   if (
x>-0.001+(x2-x1)/tgr)And(x<0.001+(x2-x1)/tgrthen
   begin
     xg
:=x0+l+Round(x*mx);
     
yg:=y0-Round(y*my);
      
end;
until (>= x2);
      
MoveTo(xg,yg);
      
LineTo(xg-txt,yg-tyt);    //   линии к надписи
  
TextOut(xg-txt,yg-tyt,sg);
end;
end;
end
wolf777 вне форума Ответить с цитированием
Старый 09.04.2017, 16:24   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Скорее всего обращение к не существующему объекту. ImageGraf например. В какой строке ошибка то?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.04.2017, 16:26   #5
wolf777
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 27
По умолчанию

в этой строке ошибка
PHP код:
dx:=0.001// шаг аргументаа 

Последний раз редактировалось wolf777; 09.04.2017 в 16:30.
wolf777 вне форума Ответить с цитированием
Старый 09.04.2017, 16:38   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сомневаюсь. ImageGraf где и как создается?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.04.2017, 17:34   #7
wolf777
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 27
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Сомневаюсь. ImageGraf где и как создается?
я так понимаю это обычный компонент image, просто я в свойстве Name: обозначил его ImageGraf

форма.PNG

Последний раз редактировалось wolf777; 09.04.2017 в 17:37.
wolf777 вне форума Ответить с цитированием
Старый 09.04.2017, 17:38   #8
wolf777
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 27
По умолчанию

по идеи модуль должен вывести график
1.PNG
wolf777 вне форума Ответить с цитированием
Старый 09.04.2017, 17:39   #9
wolf777
Пользователь
 
Регистрация: 06.11.2011
Сообщений: 27
По умолчанию

эта может ошибка идет из за проблемы с массивом? я вот тут писал об этом
http://www.programmersforum.ru/showt...=1#post1674037
wolf777 вне форума Ответить с цитированием
Старый 09.04.2017, 17:52   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
я так понимаю это обычный компонент image, просто я в свойстве Name: обозначил его ImageGraf
Если это так, то процедура GrafFunc вообще не должна его видеть, и ни какого выполнения - компилятор не пропустит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильно я понимаю в PHP return нужно разместить в function.php что бы получилось так : s88s PHP 8 11.04.2016 15:48
Посмотрите) Вроде правильно все но не работает. Что не так? Bane БД в Delphi 14 13.03.2014 22:14
timeout в Объекте работает "не правильно" - нет так как задумано pompiduskus JavaScript, Ajax 1 27.09.2013 20:02
Люди. Как сделать правильно? Прога работает, но не так, как надо. Должна генерировать лабиринты и находить путь из него SapHain Visual C++ 2 12.06.2012 09:15
Программа не правильно считает, что не так? Kolaps Помощь студентам 1 25.04.2012 13:14