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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.10.2011, 11:55   #1
Ahmund
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 13
Лампочка Выгрузка даных в ComboBox

Искал на форуме решение так и подобного не нашол, нужно осуществить следуещее:
есть текстовый файл с таким содержанием:
PHP код:
Радио Шансон&http://shanson.ru
Наше ради&http://nashe.ru
Хит фм&http://shanson.ru
Европа плюс&http://evropa.ru
UA fm радио&http://uafm.ru 
Нужно сделать так чтобы в ComboBox отображалась только:
PHP код:
Радио Шансон
Наше ради
Хит фм
Европа плюс
UA fm радио 
А при нажатии на назвние радио станции сылка открывалась и загружалась в браузере по адресу что написав текстовом файле после знака
PHP код:

Как такое осуществить?
Вывод я сделал из вайла в ComboBox с помощю цыкла а вот как сделать чтоб отображалось только название а не все содержимое файла и при нажатии перекидало по определеной сылке
Ahmund вне форума Ответить с цитированием
Старый 12.10.2011, 12:10   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Есди список станций динамический, то без TobjectList и
Код:
type
  TRadioStantion = Class(Object)
  Title:string;
   Url:string;
  end;
а потом все это связать с комбобоксом.. то будет нормально. Дело на 15 минут.


А если статический, то все просто:
1. В комбобокс грузим только названия
2. в OnChange прописываем case of и там открываем ссылки для элементов..
Человек_Борща вне форума Ответить с цитированием
Старый 12.10.2011, 12:28   #3
Ahmund
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 13
По умолчанию

Список будет динамический, нужно чтобы програма каждый раз при обращении к файлу, он будет выполнять роль как бы базы, считывала название и адреса сайтов.
Можна поподробней, как осуществить разделение названия и сылки сайта при вытаскивании из файла и как потом сылку привязать к названию которое будет в ComboBox?

Теоретически я думаю нужно сначала название вывести из файла в масив потом сылку в другой же масив и потом через цыкыл выводить один масив в ComboBox другой как то подвязывать названию при двойном клике. А как его практически реализовать....
Если несложно превести хоть некие фрагменты кода что и как
Ahmund вне форума Ответить с цитированием
Старый 12.10.2011, 12:53   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

я же уже указал вам способ TobjectList он наследуется от Tlist а Tlist это массив. Так что все на много проще.
Человек_Борща вне форума Ответить с цитированием
Старый 12.10.2011, 13:04   #5
Ahmund
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 13
По умолчанию

можна поподробней об этом способе? как в маем примере его осуществить, ато я никак немогу вникнуть в суть по вашему примеру выше приведеному. Если несложно небольшой пример кода как это сделать

Последний раз редактировалось Ahmund; 12.10.2011 в 13:10.
Ahmund вне форума Ответить с цитированием
Старый 12.10.2011, 13:53   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Создаёте класс Tobject такого вида:
Код:
type
  TRadioStantion = Class(Object)
  Title:string;
   Url:string;
  end;
далее создаёте потомок класса TobjectList'а
Код:
uses contrs; //как-то так


type
 TStantionsList=Class(TObjectList)
 private
 function GetStantion(aIndex:Integer):TRadioStantion;
 public
 property Stantions[aIndex:Integer]:TRadioStantion read GetStantion;
 constructor Create;
 destructor Destroy; override; 
 procedure LoadFromFile(aFileName:string);
 end;
скелет готов. А реализация за вами.
Единственно что подскажу это как вернуть нужный тип из списка:
Код:
function TStantionsList.GetStantion(aIndex:Integer):TRadioStantion;
begin
Result:=(Items[aIndex] as TRadioStantion); 
end;
Все=) Сами указте новое свойство установки ComboBox'а что не привязывать класс к форме.
В loadFromFile создаём TRadioStantion заполняем его и добовляем в список станций.

Ну вроде все. Остальное за вами.
Человек_Борща вне форума Ответить с цитированием
Старый 12.10.2011, 14:31   #7
Ahmund
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 13
По умолчанию

С этими класами, наследованием, а проще нельзя как нить? открыть файл както вычеслить строки необходимые забить в цикыл их?
Мож то что вы говорити и проще будет нежели как я представляю себе, но то что написано с этими класами непойму, и темболие как их реализовать.
Лутше уж написать побольше кода ну чтоб разобратся и понять
Ahmund вне форума Ответить с цитированием
Старый 12.10.2011, 14:52   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Ну если хотите грабли, то..
При запуске формы забиваем combobo так:
Код:
function getname(aStr:string):string;
begin
result:=Copy(aStr,1,Pos('&',aStr)-1);
end;
на OnChange чуть по другому, но хуже.
Снова открываем файл, читаем строку равную номеру текущего элемента combobox'а, только обрезаем все, что до &(включаяя его), примерно так:
Код:
function getname(aStr:string):string;
begin
result:=Copy(aStr,Pos('&',aStr)+Length('&'),Length(aStr)-Pos('&',aStr)+Length('&'));
end;
Ну вот вам большие грабли.
1. каждый раз перечитывать файл ИМХО бред.
2. разный Порядок элементов в combobox и файле приведук либо к фэилу либо к не правильным радиостанциям.

И ещё 100 причин, почему это плохо.

Удачи.
Человек_Борща вне форума Ответить с цитированием
Старый 12.10.2011, 15:27   #9
Ahmund
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 13
По умолчанию

Так понятней) спасибо.
Да может так и хуже будет и больше ошибок, но так понятней. А с класами не сталкивался, теоретически знаю как и что, но практически не реализую.
Не можете скинуть полностю рабочий пример с класами, чтоб запустить посмотреть его понять что и как работает. Буду очь признателен
Ahmund вне форума Ответить с цитированием
Старый 12.10.2011, 20:25   #10
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

т.е. на халяву написать вам код? Из-за того что вы не хотите, сами разобраться и понять что к чему?
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Webbrowser и combobox: сделать чтобы в combobox-е оставалась история посещенных сайтов uasya2 Общие вопросы Delphi 6 06.03.2011 20:24
База даных и формулы taunus_my Microsoft Office Excel 8 20.01.2011 20:19
База даных MAZADA БД в Delphi 3 06.11.2010 01:56
База даных xakkkkker Паскаль, Turbo Pascal, PascalABC.NET 1 16.04.2010 00:05
Выгрузка данных в ComboBox через ZQuery barcelona БД в Delphi 1 08.05.2007 03:35