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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 12:14   #1
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию Странная ошибка

При компиляции выскакивает ошибка:

Вот код:
Код:
uses IniFiles;

var
  Ini: TIniFile;
  StrGrid: TStrings;

procedure TMainForm.FormCreate(Sender: TObject);
label Here;
var i: integer; T: String;
begin
  Ini.Create('Games');
  Ini.ReadSection('General', StrGrid);
  If StrGrid.Count = 0 then
    begin
      GameList.Cells[0,1] := 'Нет данных';
      goto Here;
    end;
  if StrGrid.Count = 1 then
    begin
      GameList.Cells[0,1] :=
      Ini.ReadString('General', IntToStr(i), 'Нет данных');
      goto Here;
    end;
  for i := 1 to StrGrid.Count do
    begin
      T := Ini.ReadString('General', IntToStr(i), 'Нет данных');
      GameList.Cells[0,i] := T;
    end;
  Here:
end;
Может я что-то неправильно пишу? На форме таблица TStringGrid. Delphi 2009 Update 1.
k1r1ch вне форума Ответить с цитированием
Старый 25.06.2009, 12:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ini.Create('Games');
Надо: Ini:=TIniFile.Create('Games');

Ну и в коце желательно INI.Free вызывать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2009, 12:19   #3
Showy
Форумчанин Подтвердите свой е-майл
 
Аватар для Showy
 
Регистрация: 08.08.2007
Сообщений: 183
По умолчанию

Она не странная, просто нужно правильно создавать объекты
Код:
Ini := Create('Games');
From Stilet: Sorry, но ты ошибаешся.

Тьфу! Сам забыл дописать .
Код:
Ini := TiniFile.Create('Games');
Хотя опоздал уже
Until The End Of Time

Последний раз редактировалось Showy; 25.06.2009 в 12:50.
Showy вне форума Ответить с цитированием
Старый 25.06.2009, 12:43   #4
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

В первом случае все та же ошибка, а во втором просто не компилирует с ошибкой:
[DCC Error] Unit1.pas(39): E2010 Incompatible types: 'TComponent' and 'string'
k1r1ch вне форума Ответить с цитированием
Старый 25.06.2009, 12:47   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В первом случае все та же ошибка
Ну чего нам догадываться на какой она строке пока ты не соизволишь сказать?
Цитата:
for i := 1 to StrGrid.Count do
Здесь еще падать может, нужно:
Код:
  for i := 1 to StrGrid.Count-1 do
И к тому же вместо абстрактного TStrings, с которым ты ничего не сделашь нужно взять TStringList
И создать его :
Код:
StrGrid:=TStringList.Create;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2009, 12:54   #6
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

2Stilet: УРА! Твое последнее замечание помогло! TStringList работает!
k1r1ch вне форума Ответить с цитированием
Старый 25.06.2009, 13:07   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет, нужно от нуля:
Код:
for i := 0 to StrGrid.Count-1 do
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.06.2009, 13:16   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Serge_Bliznykov
Я знаю, но тут хотя-бы текущие ошибки автору выправить, потому и поправлял его только там где AV вилезти может.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.06.2009, 13:18   #9
k1r1ch
ACM!
Форумчанин
 
Аватар для k1r1ch
 
Регистрация: 19.06.2009
Сообщений: 382
По умолчанию

2Serge_Bliznykov: Хм... У меня и так работает.
Может кто поможет и со 2ой формой? Там такая же ошибка, только адрес 0040556А. Код:
Код:
uses IniFiles;

type
    NameEdit: TLabeledEdit;
    GenreEdit: TLabeledEdit;
    DevEdit: TLabeledEdit;
    PubEdit: TLabeledEdit;
    YearEdit: TLabeledEdit;
    Presets: TComboBox;
    PresetsLabel: TLabel;
    Save: TButton;
    Cancel: TButton;

var
  NewForm: TNewForm;
  Ini: TIniFile;
  StrGrid: TStrings;
  Num : Integer;

procedure TNewForm.SaveClick(Sender: TObject);
begin
  StrGrid := TStringList.Create;
  Ini.Create('Games');
  Ini.ReadSection('General', StrGrid);
  Num := StrGrid.Count + 1;
  Ini.WriteString('General', IntToStr(Num), NameEdit.Text);
  Ini.WriteString(NameEdit.Text, 'Genre', GenreEdit.Text);
  Ini.WriteString(NameEdit.Text, 'Dev', DevEdit.Text);
  Ini.WriteString(NameEdit.Text, 'Pub', PubEdit.Text);
  Ini.WriteString(NameEdit.Text, 'Year', YearEdit.Text);
  Ini.Free;
end;
k1r1ch вне форума Ответить с цитированием
Старый 25.06.2009, 13:33   #10
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Цитата:
Сообщение от k1r1ch Посмотреть сообщение
Код:
  Ini.Create('Games');
тоже самое
читай выше про TIniFile; пост №2

Последний раз редактировалось vovk; 25.06.2009 в 13:37.
vovk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странная ошибка.. SnakeMan БД в Delphi 4 12.02.2009 12:43
Странная ошибка при выполнении okolobaxa Общие вопросы Delphi 2 03.07.2007 00:47
Странная ошибка Washington БД в Delphi 2 16.03.2007 18:13
странная ошибка с ShowMessage UMmi Общие вопросы Delphi 3 22.11.2006 06:20