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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2015, 04:19   #1
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
Вопрос ListView проблема с сохранением в .txt


Вобщем изначально на первой форме код работал отлично и не было никаких проблем, теперь добавил новую форму и код начал ругаться и эррорить

Вобщем вот готовый рабочий код сохранения:

Код:
procedure TForm1.sListView1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
var
  Datas:TStringList;
  i:integer;
begin
  Datas:=TStringList.Create;

    if (Form1.sListView1.Items.Count>0) and (Form1.sSaveDialog1.Execute) then
    begin

      if Column.Index=0 then
      begin

          for i:=0 to Form1.sListView1.Items.Count-1 do
          begin
            Datas.Add(Form1.sListView1.Items[i].Caption);
          end;

        Datas.SaveToFile(Form1.sSaveDialog1.FileName);
      end
      else
      if Column.Index>0 then
      begin

          for i:=0 to Form1.sListView1.Items.Count-1 do
          begin
            Datas.Add(Form1.sListView1.Items[i].SubItems[Column.Index-1]);
          end;

        Datas.SaveToFile(Form1.sSaveDialog1.FileName);
      end;

    end;

  Datas.Free;
end;

нооооооо, мне пришлось добавить новую форму и код стал таким:
т.е при клике на название колонки - появляется Form4

Код:
procedure TForm1.sListView1ColumnClick(Sender: TObject;
  Column: TListColumn);
begin
  Form4.ShowModal;
end;
соответственно весь код сохранения ListView в .txt перенес на кнопку "ОК" (смотрите скриншот выше) которая находится на Form4, Form4 после удачного сохранения нужно закрывать, отошел от темы...

сделал так как выше - Delphi начала ругаться на Column.Index=0 и Column.Index>0 и Column.Index-1, решил срукожопить и прописал глобальную переменную Column:TListColumn; в первом юните - вроде проканало, решил протестировать и появилась новая проблема (скриншот ниже):


после нажатия "ОК" в окне ошибки мне красным выделяет end; после Form4.ShowModal;
FleXik вне форума Ответить с цитированием
Старый 31.07.2015, 06:18   #2
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Цитата:
Сообщение от FleXik Посмотреть сообщение
решил срукожопить
По сути, Form4 должна вернуть нужные параметры сохранения, а не выполнять само сохранение. Так почему же не сделать в классе Form4 функцию, которая внутри будет вызывать ShowModal, а после возвращать нужные параметры?

Но ошибка, думаю, не из-за этого. Поставьте бряк на начало функции, которая обрабатывает нажатие "ОК", и в отладчике пошагово пройдитесь, чтоб посмотреть на какой строчке появляется эта ошибка.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

Последний раз редактировалось Krasiosoft; 31.07.2015 в 08:22.
Krasiosoft вне форума Ответить с цитированием
Старый 31.07.2015, 17:28   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Воспользуйся, наконец, дебаггером! Юзать форум вместо дебаггера, по крайней мере, неприлично и является злоупотреблением.

И убери нах Form1 из тела метода!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 31.07.2015, 17:44   #4
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

Цитата:
И убери нах Form1 из тела метода!
зачем и что такое тело метода?
FleXik вне форума Ответить с цитированием
Старый 31.07.2015, 17:55   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Иди туда.
Цитата:
что такое тело метода?
между begin и end.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 31.07.2015, 20:27   #6
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

еще раз попробую описать проблему

с Form1 для сохранения данных из ListView вызывается Form4 (первый скриншот с верху, как выглядит Form4), а уже с Form4 выбирается нужный RadioButton и нажимается кнопка "ОК", после нажатия кнопки "ОК" должно открываться диалоговое окно SaveDialog1, после сохранения данных Form4 должна закрываться, сделал так как выше, перенес код на Unit4 (Form4) и выглядит это так:

Код:
procedure TForm4.sBitBtn1Click(Sender: TObject);
var
  Datas:TStringList;
  i:integer;
begin
  Datas:=TStringList.Create;

    if (Form1.sListView1.Items.Count>0) and (Form1.sSaveDialog1.Execute) then
    begin

      if Column.Index=0 then
      begin

          for i:=0 to Form1.sListView1.Items.Count-1 do
          begin
            Datas.Add(Form1.sListView1.Items[i].Caption);
          end;

        Datas.SaveToFile(Form1.sSaveDialog1.FileName);
      end
      else
      if Column.Index>0 then
      begin

          for i:=0 to Form1.sListView1.Items.Count-1 do
          begin
            Datas.Add(Form1.sListView1.Items[i].SubItems[Column.Index-1]);
          end;

        Datas.SaveToFile(Form1.sSaveDialog1.FileName);
      end;

    end;

  Datas.Free;
end;
но у меня почему-то эррорит на строке Form4.ShowModal; в первом юните
FleXik вне форума Ответить с цитированием
Старый 31.07.2015, 20:43   #7
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Повторю:
Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Поставьте бряк на начало функции, которая обрабатывает нажатие "ОК", и в отладчике пошагово пройдитесь, чтоб посмотреть на какой строчке появляется эта ошибка.
Проблема скорее всего в функции:
Код:
TForm4.sBitBtn1Click
а не при выходе из нее, как Вы это написали:
Цитата:
Сообщение от FleXik Посмотреть сообщение
эррорит на строке Form4.ShowModal; в первом юните
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 31.07.2015, 20:45   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
на строке Form4.ShowModal
а код показываешь совсем не тот. это ж обработчик тыка кнопки sBitBtn.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 31.07.2015, 21:07   #9
FleXik
Форумчанин
 
Регистрация: 01.11.2012
Сообщений: 770
По умолчанию

я же говорю что ругается на end; перед Form4.ShowModal;

FleXik вне форума Ответить с цитированием
Старый 31.07.2015, 21:11   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
end; перед Form4.ShowModa
не вижу.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка содержимого txt в ListView foxes Общие вопросы Delphi 6 27.04.2011 00:07
(VB) Проблема с сохранением phantom4eg Помощь студентам 0 16.09.2009 21:45
Проблема с сохранением данных KLOP Общие вопросы Delphi 10 09.04.2009 11:17
Загрузка содержимого txt в ListView Rendll Компоненты Delphi 2 26.03.2009 11:04
Проблема с сохранением БД! Disday БД в Delphi 4 21.04.2008 00:54