XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Общение> Hard & Soft
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
[Pascal] Вывод результата
» code
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  Spin;

const
      zn=['+','-','*','/'];

type

  { TForm1 }
   TForm1 = class(TForm)
    BTN: TButton;
    dbg: TLabel;
    Progress: TMemo;
    XYlbl1: TLabel;
    XYlbl2: TLabel;
    Spin1: TSpinEdit;
    Spin2: TSpinEdit;
    procedure FormCreate(Sender: TObject);
    procedure ProccessMath(Sender: TObject);
    procedure SpinXY1(Sender: TObject);
    procedure SpinXY2(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1;
Xchange,CanMath:boolean;
Varmin,Varmax,X,Y,m:integer;
   mat: array of integer;
   res: array of integer;
   sshhooww:string;
implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);

begin
 Progress.Visible:=False;
   XYlbl1.Caption:='Min';
   XYlbl2.Caption:='Max';
   BTN.Caption:='Init';
   Xchange:=True;
   CanMath:=False;
   X:=0;
   Y:=11;
end;




procedure TForm1.ProccessMath(Sender: TObject);

var
     i:integer;
begin
   if CanMath = True then
   begin
     Spin1.Visible:=False;
     XYlbl1.Visible:=False;
     Spin2.Visible:=False;
     XYlbl2.Visible:=False;
     Progress.Visible:=True;

       Progress.Caption:=('Loading..'#13#10'var 100%'#13#10'Generate...'#13#10'Function 100%'#13#10'wait..');
          for i:= varmin to varmax do
    begin
    X:=X+i;
    Y:=Y-i;
       mat[i]:=X;
       mat[i]:=mat[i]*X;
       mat[i]:=mat[i]+4;
       mat[i]:=mat[i]*X;
       mat[i]:=mat[i]*Y;
       mat[i]:=mat[i]-11;
       mat[i]:=mat[i]*Y;
       mat[i]:=mat[i]+Y*Y;
    end;

           sshhooww:=IntToStr(mat[3]);



     end;

      if CanMath = False then
   begin
BTN.Caption:='Start';
CanMath:=True;
    end;

end;

procedure TForm1.SpinXY1(Sender: TObject);
begin

 if Xchange=True then
    begin
      Varmin:=StrToInt(Spin1.Caption);
      Varmax:=StrToInt(Spin2.Caption);
    end;

end;

procedure TForm1.SpinXY2(Sender: TObject);
begin

end;

end.
Суть проблемы тут
» тык
procedure TForm1.ProccessMath(Sender: TObject);

var
     i:integer;
begin
   if CanMath = True then
   begin
     Spin1.Visible:=False;
     XYlbl1.Visible:=False;
     Spin2.Visible:=False;
     XYlbl2.Visible:=False;
     Progress.Visible:=True;

       Progress.Caption:=('Loading..'#13#10'var 100%'#13#10'Generate...'#13#10'Function 100%'#13#10'wait..');
          for i:= varmin to varmax do
    begin
    X:=X+i;
    Y:=Y-i;
       mat[i]:=X;
       mat[i]:=mat[i]*X;
       mat[i]:=mat[i]+4;
       mat[i]:=mat[i]*X;
       mat[i]:=mat[i]*Y;
       mat[i]:=mat[i]-11;
       mat[i]:=mat[i]*Y;
       mat[i]:=mat[i]+Y*Y;
    end;

           sshhooww:=IntToStr(mat[3]);



     end;

      if CanMath = False then
   begin
BTN.Caption:='Start';
CanMath:=True;
    end;

end;
Вообщем как дело доходит вот сюда
sshhooww:=IntToStr(mat[3]);
Выдает ошибку - Access violation
Подскажите в чём проблема и как решить.

Отредактировано Oxygen D, 12.10.2011 в 15:49.
Старый 11.10.2011, 15:30
Wortecs

offline
Опыт: 3,146
Активность:
Значение sshhooww до начала процедуры?
Старый 12.10.2011, 00:02
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Создан ли у тебя этот элемент? И ты на 100% уверен что именно на том месте?
Ну тут и понаписывали.
И где объявление sshhooww?
Обязательно так нехорошо называть переменные?
[+] 2 пункта от ShadoW DaemoN: 1.1 (ненормативная лексика)

Отредактировано ShadoW DaemoN, 12.10.2011 в 07:34.
Старый 12.10.2011, 00:15
Wortecs

offline
Опыт: 3,146
Активность:
Такой переменой не существует для редактора(ну по крайней мере не где в об явлениях не видел) или она ничему не ровна, и потому её вывести не возможно
Старый 12.10.2011, 14:32
Oxygen D
Вернулся
offline
Опыт: 5,180
Активность:
Wortecs, Эта переменная создана в другой форме была.
Код обновил смотрите.
И ошибка видимо в другом.
Oxygen D добавил:
Всё точно определил проблема тут - sshhooww:=IntToStr(mat[1]);
Старый 12.10.2011, 15:50
megasniper

offline
Опыт: 3,656
Активность:
почему бы не использовать else?
Старый 12.10.2011, 16:04
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 04:36.