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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2014, 09:43   #1
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию Ввод значений

Всем привет.
Хотел узнать, можно ли сделать так.
Например на форму ListBox и 2 edit
в один edit вводить название, а во второй например ссылку с сайта,
но что бы в listBox выводилось только название а ссылка хранилась в программе, и при нажатии в listbox на название открывалась нужная ссылка.
Сейчас у меня пока сохраняет только ссылки в listBox`e и при закрытии формы они сохраняются в файле, а после открытия из него загружаются обратно в форму.
Заранее спасибо.
nefakt вне форума Ответить с цитированием
Старый 25.01.2014, 10:12   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Ну так храни ссылки в массиве или в TStringList
FaTaL вне форума Ответить с цитированием
Старый 25.01.2014, 10:34   #3
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Да но после завершение программы массив очиститься так же как и TStringList, а мне надо что бы ссылки хранились при последующих запусках программы.
nefakt вне форума Ответить с цитированием
Старый 25.01.2014, 10:41   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

У StringList есть методы SaveToFile() и LoadFromFile().
Используй их чтоб сохранить в файле, и считать при запуске.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.01.2014, 11:22   #5
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Ясно, спасибо. Сейчас попробую.

Я первый раз работаю с TStringList можете помочь?
Вот пример как я добавляю в ListBox
Код:
procedure TForm4.sSpeedButton1Click(Sender: TObject);
Begin
sListBox1.Items.Add(sEdit1.Text);
End
Но как я говорил выше нужно что бы название шло в ListBox а сама ссылка получается в TStringList ну и + название тоже. в Один Edit пишем название во второй Edit ссылку.

и вот как он читает из файла
Код:
procedure TForm4.FormCreate(Sender: TObject);
Begin
sListBox1.Items.LoadFromFile('bookmarks.qwerty');
End
Можете написать пример хотя бы с использованием 2-ух Edit , 1 ListBox`ом и TStringList`ом.
Заранее спасибо

Последний раз редактировалось Stilet; 25.01.2014 в 16:20.
nefakt вне форума Ответить с цитированием
Старый 25.01.2014, 13:42   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ненужен вам TStringList, ListBox-а достаточно
eval вне форума Ответить с цитированием
Старый 25.01.2014, 14:08   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

TStrings умеет хранить объекты со строкой.

Код:
type
  TLBRecord = class(TObject)
  private
  fURL:string;
  public
  property url:string read fURL;
  constructor Create(url:string); overload; 
  destructor Destroy; override;
  end;

//Заполнение списка

var
 R:TLBRecord;
begin
R:=TLBRecord.Create('http://LOL.com/');
LB.items.AddObject('Сайт LOL',R);
При двойном клике получаете объект и переходите о ссылке. Освобождать объекты самому не надо, TStrings сам их освобождает при удалении строки/списка. Потому class а не record
Человек_Борща вне форума Ответить с цитированием
Старый 25.01.2014, 14:10   #8
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

эдитов нет, некачественный пример, автор опять в ступор уйдет
eval вне форума Ответить с цитированием
Старый 25.01.2014, 16:43   #9
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Если я правильно понял то так
Код:
procedure TForm4.sSpeedButton1Click(Sender: TObject);
 var
 R:TLBRecord;
begin
R:=TLBRecord.Create(sEdit1.Text);
sListBox1.items.AddObject(sEdit2.Text,R);
end;
но что с этим делать я не понял)
Код:
  property url:string read fURL;
  constructor Create(url:string); overload;
  destructor Destroy; override;
  end;
Понял что их создать нужно но что туда вписывать я не знаю.

нет все так с этим тоже ошибся )
Код:
 var
 R:TLBRecord;
begin
R:=TLBRecord.Create(sEdit1.Text);
sListBox1.items.AddObject(sEdit2.Text,R);
end;

Последний раз редактировалось Stilet; 26.01.2014 в 10:53.
nefakt вне форума Ответить с цитированием
Старый 25.01.2014, 19:32   #10
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Лёгкая оптимизация, чтоб из программиста не превращаться в формошлёпа.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var s1, s2: string;
begin
s2 := 'http://';
if InputQuery('Ввод', 'Имя ссылки', s1)
  and
    InputQuery('Ввод', 'Адрес ссылки', s2)
then ShowMessage('Имя ссылки: ' + s1 + #10 + 'Адрес ссылки: ' + s2);
end;
doktor255 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ввод нескольких значений AcTiV Общие вопросы C/C++ 3 26.12.2012 22:22
Запрет на ввод пустых значений Ericnex БД в Delphi 6 31.08.2012 10:01
Проверка на ввод значений в StringGrid iKarma C++ Builder 0 24.12.2011 12:38
Ввод значений формы в базу. NickiBell Microsoft Office Access 6 29.10.2010 16:50
Удаление и ввод значений в ячейках segail Microsoft Office Excel 0 16.12.2009 09:45