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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2013, 23:08   #1
Goshan82
 
Регистрация: 23.04.2013
Сообщений: 9
По умолчанию Копирование в Delphi

Здравствуйте уважаемые!Помогите с исправлением строки,написанной моими кривыми руками.Нужно,чтобы из Edit1 строка копировалась через динамический массив в ListBox1 и обратно также через массив.С первым справился,а вот обратно ну никак.Вот на что хватило моей извилины
Код:
Edit1.Text:=FloatToStr(Arr[High(Arr)]-(ListBox1.ItemIndex));
Заранее благодарен!
Goshan82 вне форума Ответить с цитированием
Старый 30.04.2013, 23:17   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ОМГ!
что это за абстракционизм?!!!

Что изначально находится в Edit1 ?!
Зачем динамический массив?
Каким образом Вы справились (ну или думаете, что справились!) с первым заданием (покажите код)?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.04.2013, 23:32   #3
Goshan82
 
Регистрация: 23.04.2013
Сообщений: 9
По умолчанию

В Edit1 изначально и всегда только цифры(калькулятор).На мой вопрос зачем тут массив мне ответили:"В целях обучения."Не знаю что надо было ответить,я промолчал
Код:
procedure TForm1.SpeedButton17Click(Sender: TObject);
 Var
  Arr: Array of real;
 begin
  if Edit1.Text='' then
  begin
  ShowMessage('Поле ввода пусто!');
  Exit;
  end
  else
 begin
  Try
   StrToFloat(Edit1.Text);
   ListBox1.Items.Insert(0, Edit1.Text);
   If Length(Arr) = 0 then
   SetLength(Arr, 1)
  else
   SetLength(Arr, Length(Arr) + 1);
   Arr[Length(Arr) - 1] := StrToFloat(Edit1.Text);
   {if Arr <> nil then
   ListBox2.Items.Insert(0, FloatToStr(Arr[High(Arr)]));}
  Except
   on EConvertError do
   MessageDlg('Вы ввели ошибочное число, повторите ввод', mtWarning, [mbOK], 0);
  end;
 end;
end;
ListBox2 вводили с товарищем как раз для проверки есть ли копируемые числа в самом массиве.По условию его нет.поэтому убрав его с формы,просто на всякий оставил строки в фигурных скобах.
Перечитал и понял,что не совсем правильно объяснил,простите.Есть Edit1,из которого поочерёдно в ListBox1 скопировано несколько чисел через дин.массив,и там и там они сохраняются,а в случае пожелания пользователя,выделенный им результат в ListBox1 должен скопироваться из массива в Edit,а в ListBox удалиться.

Последний раз редактировалось Goshan82; 30.04.2013 в 23:54.
Goshan82 вне форума Ответить с цитированием
Старый 01.05.2013, 00:11   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вынесите описание динамического массива Arr в глобальные переменные (ну или в свойства TForm1)
иначе, этот массив при каждом нажатии на кнопку SpeedButton17 создаётся, в него заносится одно число и на выходе из процедуры - он уничтожается (кстати, не исключено, что при этом возникают ещё и утечки памяти).
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DElphi копирование через shellapi Ant1Player Помощь студентам 0 31.10.2011 11:09
Копирование из memo1 в memo2 на Delphi 7. disker Помощь студентам 2 20.02.2011 10:13
Копирование в Delphi Katrina_89 БД в Delphi 15 18.04.2010 12:44
Копирование найденых файлов Delphi leonw Общие вопросы Delphi 7 11.01.2010 23:19