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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2010, 21:47   #1
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию Выдает ошибку [Warning] Unit1.pas(225): FOR-Loop variable

[Warning] Unit1.pas(225): FOR-Loop variable 'i' may be undefined after loop

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
SetLength(mas,length(mas)+1);
mas[length(mas)-1].Rate:=ComboBox1.Items[ComboBox1.ItemIndex];
mas[length(mas)-1].DateOn:=formatdatetime('dd-mm-yyyy', datetimepicker1.Date);

begin
StringGrid1.RowCount:=length(mas)+1 ;
for i:=0 to length(mas)-1 do
stringgrid1.cells[8,i+1]:=mas[i].Rate;
225: stringgrid1.cells[6,i+1]:=mas[i].DateOn;
end;

В чем ошибка? Помогите, пожалуйста.
Neroaz вне форума Ответить с цитированием
Старый 23.03.2010, 23:13   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Это не ошибка, а предупреждение о возможной ошибке.
Например, после цикла for i := 0 to 5, переменная i может быть равна либо 5, либо 6 в зависимости от типа или опции компилятора или же это наступит в результате оптимизации кода. Вот компилятор и предупреждает, что выражение stringgrid1.cells[6,i+1] может быть неоднозначным.
eoln вне форума Ответить с цитированием
Старый 24.03.2010, 10:06   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

кстати, я думаю, что здесь умный компилятор помог автору найти ошибку!
имхо, пропущены операторные скобки begin .. end
т.е. 225 строчка должна быть В ЦИКЛЕ!!!
Код:
for i:=0 to length(mas)-1 do
  begin
    stringgrid1.cells[8,i+1]:=mas[i].Rate;
    stringgrid1.cells[6,i+1]:=mas[i].DateOn;
  end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2010, 17:46   #4
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
кстати, я думаю, что здесь умный компилятор помог автору найти ошибку!
имхо, пропущены операторные скобки begin .. end
т.е. 225 строчка должна быть В ЦИКЛЕ!!!
Код:
for i:=0 to length(mas)-1 do
  begin
    stringgrid1.cells[8,i+1]:=mas[i].Rate;
    stringgrid1.cells[6,i+1]:=mas[i].DateOn;
  end;
Спасибо. Одновременно помогло и не помогло:
Сл. ошибка:
[Error] Unit1.pas(251): Undeclared identifier: 'Items'

procedure TForm1.N5Click(Sender: TObject);
begin
try
if openDialog1.Execute then
251: StringGrid1.Items.LoadFromFile(Open Dialog1.Filename);
except
on EstreamError do
Showmessage ('Error');
end;
end;

Главно если вместо StringGrid поставить Listbox1.Items...
то все идет, чо делать?
Neroaz вне форума Ответить с цитированием
Старый 24.03.2010, 17:59   #5
bitSoft
Programming...
Форумчанин
 
Аватар для bitSoft
 
Регистрация: 13.03.2010
Сообщений: 198
По умолчанию

Цитата:
Сообщение от Neroaz Посмотреть сообщение
Спасибо. Одновременно помогло и не помогло:
Сл. ошибка:
[Error] Unit1.pas(251): Undeclared identifier: 'Items'

procedure TForm1.N5Click(Sender: TObject);
begin
try
if openDialog1.Execute then
251: StringGrid1.Items.LoadFromFile(Open Dialog1.Filename);
except
on EstreamError do
Showmessage ('Error');
end;
end;

Главно если вместо StringGrid поставить Listbox1.Items...
то все идет, чо делать?
Код:
StringGrid1.LoadFromFile(OpenDialog1.Filename);
Код:
With TProgrammersForum.Create do  AddNewTopic('Title','Content...');
bitSoft вне форума Ответить с цитированием
Старый 24.03.2010, 18:22   #6
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
StringGrid1.LoadFromFile
это ж у какого StringGridа есть такое свойство?
Google2010 вне форума Ответить с цитированием
Старый 24.03.2010, 18:43   #7
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию

Спасибо, но он опять ругается((
[Error] Unit1.pas(250): Undeclared identifier: 'LoadFromFile'

250:StringGrid1.LoadFromFile(OpenDi alog1.Filename);
Выше есть весь обработчик.
Прочитал в инете: надо добавить что-то в
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus, StdCtrls, Grids;
Если конечно я в правильном направлении иду.
Neroaz вне форума Ответить с цитированием
Старый 24.03.2010, 19:50   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет у StringGrid метода загрузки из файла (LoadFromFile)
реализовывайте загрузку из файла самостоятельно!
это несложно!

Главное, не забудьте решить, ЧТО и КАК храниться в этом самом Вашем текстовом файле.. (самое важное, сколько столбцов и чем эти столбцы в тексте разделяются...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.03.2010, 02:20   #9
Neroaz
Пользователь
 
Регистрация: 23.03.2010
Сообщений: 36
По умолчанию

Спасибо!..
Neroaz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Error] Unit1.pas(40): Incompatible types: 'Integer' and 'Extended BETONOMESHALKA Общие вопросы Delphi 9 15.03.2014 17:26
For loop control variable must be simple local variable Hehe Общие вопросы Delphi 11 26.12.2011 19:42
Вопрос об ошибке For loop control variable must... dr.Chas Общие вопросы Delphi 2 08.01.2010 22:35
Assignment to FOR-Loop variable zotox Помощь студентам 4 24.03.2009 11:32
ошибка - [Error] Unit1.pas(325): Operator not applicable to this operand type blackstersl Общие вопросы Delphi 6 27.08.2008 13:17