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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2016, 12:53   #1
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию Ошибка при запуске моей процедуры

При вызове процедуры выскакивает ошибка:
Изображения
Тип файла: png Снимок3.PNG (7.6 Кб, 40 просмотров)
edsjeka вне форума Ответить с цитированием
Старый 12.02.2016, 13:00   #2
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от edsjeka Посмотреть сообщение
При вызове процедуры выскакивает ошибка:
Согласен...
Iron Monk вне форума Ответить с цитированием
Старый 12.02.2016, 13:04   #3
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию

Не могу понять почему. В процедуру не заходит, ошибка выбивает в строке где я вызываю процедуру.
edsjeka вне форума Ответить с цитированием
Старый 12.02.2016, 13:07   #4
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Кода не будет?
Iron Monk вне форума Ответить с цитированием
Старый 12.02.2016, 13:15   #5
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию

Код:
PHP код:
 private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
FMSpravochnikiTFMSpravochniki;
  
procedure InsSprModeleyartridgey();
implementation

{$R *.dfm}

uses DataModul;


procedure InsSprModeleyartridgey();

 var 
i,j,ind:integer;
     
SGTStringGrid;
begin
  DataModule1
.SQLConnection1.Connected:=false;
    
DataModule1.SQLQuery1.Close;
    
DataModule1.ClientDataSet2.Active:=false;

    
DataModule1.SQLQuery1.SQL.Text:='Select * From sprmodeleycartridgey Order By ModelCartridga';
    
DataModule1.SQLConnection1.Connected:=true;
    
DataModule1.SQLQuery1.Active:=true;
    
DataModule1.ClientDataSet2.Active:=true;

    
SG.RowCount:=DataModule1.SQLQuery1.RecordCount;
    
SG.ColCount:=DataModule1.SQLQuery1.FieldCount;

    
SG.ColWidths[0]:=25;
    
SG.ColWidths[1]:=170;
    
SG.ColWidths[2]:=50;
    
SG.ColWidths[3]:=50;
    
SG.ColWidths[4]:=100;
    
SG.ColWidths[5]:=70;
    
SG.ColWidths[6]:=250;

    
SG.Cells[1,0]:='Модель картриджа';
    
SG.Cells[2,0]:='Ресурс';
    
SG.Cells[3,0]:='Масса тонера';
    
SG.Cells[4,0]:='Индекс картриджа';
    
SG.Cells[5,0]:='Совм.тонер';
    
SG.Cells[6,0]:='Совместимые аппараты';
     
i:=0;
     
j:=1;

        
with  DataModule1.ClientDataSet2 do    // цикл по строкам справочника моделей картриджей
         
begin
          First
;
          while 
not Eof do
           
begin

               SG
.Cells[i,j]:=DataModule1.ClientDataSet2.FieldValues['IDModelCartridga'];
               
SG.Cells[i+1,j]:=DataModule1.ClientDataSet2.FieldValues['ModelCartridga'];
               
SG.Cells[i+2,j]:=DataModule1.ClientDataSet2.FieldValues['Resurs'];
               
SG.Cells[i+3,j]:=DataModule1.ClientDataSet2.FieldValues['MassaTonera'];

               
SG.Cells[i+5,j]:=DataModule1.ClientDataSet2.FieldValues['SovmToner'];
               
SG.Cells[i+6,j]:=DataModule1.ClientDataSet2.FieldValues['SovmApparats'];

                
DataModule1.SQLConnection1.Connected:=false;
                
DataModule1.SQLQuery2.Close;
                
DataModule1.ClientDataSet3.Active:=false;
                
ind:=DataModule1.ClientDataSet2.FieldValues['IDIndexa'];
                
DataModule1.SQLQuery2.SQL.Text:='Select * From SprIndexov Where IdIndexa='+IntToStr(ind);
                
DataModule1.SQLConnection1.Connected:=true;
                
DataModule1.SQLQuery2.Active:=true;
                
DataModule1.ClientDataSet3.Active:=true;
                
SG.Cells[i+4,j]:=DataModule1.SQLQuery2.FieldValues['Index'];

              
j:=j+1;
             
Next;
           
end;
         
end;

end;

procedure TFMSpravochniki.FormShow(SenderTObject);
begin
PageControl1
.Pages[0].Caption:='Справочники';
end;

procedure TFMSpravochniki.ListBox1Click(SenderTObject);
{var 
i,j,ind:integer;}
begin
 
if ListBox1.Items[ListBox1.ItemIndex] = 'Справочник моделей картриджей' then
  begin
   InsSprModeleyartridgey
();
  
end
edsjeka вне форума Ответить с цитированием
Старый 12.02.2016, 13:23   #6
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Это всё зачем?
Код:
    DataModule1.SQLConnection1.Connected:=false;
    DataModule1.SQLQuery1.Close;
    DataModule1.ClientDataSet2.Active:=false;

...
    DataModule1.SQLConnection1.Connected:=true;
    DataModule1.SQLQuery1.Active:=true;
    DataModule1.ClientDataSet2.Active:=true;
DataModule1.SQLQuery1.Open не достаточно?
Iron Monk вне форума Ответить с цитированием
Старый 12.02.2016, 13:30   #7
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию

Цитата:
Сообщение от Iron Monk Посмотреть сообщение
Это всё зачем?
Код:
    DataModule1.SQLConnection1.Connected:=false;
    DataModule1.SQLQuery1.Close;
    DataModule1.ClientDataSet2.Active:=false;

...
    DataModule1.SQLConnection1.Connected:=true;
    DataModule1.SQLQuery1.Active:=true;
    DataModule1.ClientDataSet2.Active:=true;
DataModule1.SQLQuery1.Open не достаточно?
Если честно еще точно не знаю, я еще только разбираюсь в этом. Спасибо, что подсказали.
Но дело не в этом, я пытаюсь вставить в процедуру часть кода который будет повторяться и у меня при вызове процедуры выбивает ошибку, а без процедуры, если просто в программе, то этот кусок работает нормально.
edsjeka вне форума Ответить с цитированием
Старый 12.02.2016, 13:34   #8
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Код:
procedure TFMSpravochniki.InsSprModeleyartridgey();
Iron Monk вне форума Ответить с цитированием
Старый 12.02.2016, 13:54   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
procedure InsSprModeleyartridgey();

 var i,j,ind:integer;
     SG: TStringGrid; 
ЧИТАЙТЕ Warning компилятора. (и исправляйте!!!)
Цитата:
[Warning] Unit1.pas(29): Variable 'n' might not have been initialized
Обращение к НЕИНИЦИАЛИЗОВАННОЙ переменной.
P.S. выделена та переменная которая не инициализирована.

а как его задать если он ЕСТЬ на другой форме (в другом unit-e) ?
ответ
либо указать его как параметр данной процедуры.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 12.02.2016 в 14:02.
evg_m вне форума Ответить с цитированием
Старый 12.02.2016, 14:01   #10
edsjeka
Пользователь
 
Регистрация: 01.01.2016
Сообщений: 98
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
Код:
procedure InsSprModeleyartridgey();

 var i,j,ind:integer;
     SG: TStringGrid; 
ЧИТАЙТЕ Warning компилятора. (и исправляйте!!!)

Обращение к НЕИНИЦИАЛИЗОВАННОЙ переменной.
P.S. выделена та переменная которая не инициализирована.
Я понял. А как мне ее правильно инициализировать? Если я ее не описываю в переменных, она вообще не доступна, а мне нужно работать с этим компонентом StringGrid в процедуре, как сделать, чтобы процедура могла с ней работать?
edsjeka вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при линковке моей DLL Mary_fs Общие вопросы C/C++ 7 06.06.2014 21:34
Ошибка 503 при обращение с моей программы stasa9711 Работа с сетью в Delphi 2 10.02.2014 12:24
Где ошибка? При билдинге ошибок 0, но при запуске вылетает ошибка. Visual C nikitabool Помощь студентам 0 08.01.2014 17:19
при запуске процедуры обрезается значение до 1 символа kate158 БД в Delphi 0 14.07.2010 15:18