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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2009, 14:54   #11
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ток надо (Пиво.Update)
не получится Деньги=nil... Ладно прекращаю оффтопить...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.07.2009, 21:44   #12
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Так, народ, а если мне надо работать с созданным списком (sl) на протяжение всей программы? Т.е при нажатии на кнопку несколько раз будут постоянно в sl заноситься значения после чего программа будет работать с этим списком.

Т.е я сделал так:
sl прописал в глобальный вар:
Код:
var
  Form1: TForm1;
  sl: TStringList;

implementation
в OnCreate формы
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  sl:=TStringList.Create;
end;
а в онклик кнопки уже все остальное. И если в онклик прописать ls.free; он разумеется ругается. Если убрать все отлично работает! При каждом нажатии на кнопку заносятся данные в sl.

Если я все так и оставлю, а ls.free; пропищу в Onclose это будет правильно? или это чем-то чревато и надо очищать после каждого нажатия на кнопку?

Т.е пустые банки из под пива можно выносить на утро? или надо выносить после каждой выпитой?
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 23.07.2009, 22:02   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

под утро

то есть в конце программы(как я говорил, тогда когда обьект уже не нужен)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.07.2009, 22:42   #14
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
сли я все так и оставлю, а ls.free; пропищу в Onclose это будет правильно?
да, это будет правильно. (и, кстати, это же логично - на FormCreate создаём, на закрытии формы - очищаем память).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.07.2009, 23:32   #15
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Новую тему создавать не буду, так как смысл почти тот же, но мне теперь надо немного изменить.
Короче в sl может содержаться две и более одинаковых цифр и мне надо что бы по нажатию на кнопку была удалена одна любая, но именно одна.

Код:
sl1.Text:=StringReplace(sl1.Text,edit.text+13#10,'',[rfReplaceAll]);
где edit.text хранит в себе цифру которую надо удалить должен удалить не все цифры, а только одну из sl. Короче надо что бы прекратил свою работу до первого совпадения цифры и удаления её. Цифры могут быть и с запятой.

Помогите пожалуйста.
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Старый 25.07.2009, 07:49   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) Вы явно путаете что такое цифра и что такое число...

2) на прошлой странице Вам были предложены варианты с циклами... В чём затруднение, изменить условие проверки?

3) если я правильно понял условие задачи, то:
Код:
  {пробегаемся по списку
     и удаляем ПЕРВОЕ совпадение
         строки в списке со строкой из edit.Text}
  i := 0;
  while (i<= (sl1.Count-1)) do
  begin
    if sl1.Strings[i]=edit.Text then
    begin
       sl1.Delete(i);
       Break;
    end;
    inc(i);
  end;
p.s. edit.text имеет тип string и sl (это TStringList) состоит из строк, потому логично сравнивать строки как есть, а не переводить в числовой формат! Хотя, если решите, что переводить нужно - то применяйте функцию StrToFloat
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.07.2009, 22:27   #17
Polotenchik
Форумчанин
 
Аватар для Polotenchik
 
Регистрация: 04.12.2008
Сообщений: 260
По умолчанию

Примного благодарен!
Я бы изменил мир, но Бог не дает исходники...
Polotenchik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перевести на делфи следующий код? SkAndrew Общие вопросы Delphi 7 15.05.2009 21:48
Макрос выдает ошибку Romuald Microsoft Office Excel 2 15.04.2009 22:42
ADOQuery - выдает ошибку kiber0net0 Общие вопросы Delphi 2 02.09.2008 19:49
Windows2003 ошибку выдает Cantana Windows 11 07.12.2007 06:04
MasterSource - выдает ошибку nataly_ukr БД в Delphi 10 12.10.2007 13:49