Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Работа с ListBox 
:(
    Опции темы
Bokuto
Дата 10.3.2008, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.3.2008

Репутация: нет
Всего: нет



Всем привет. 
Вопрос такой - как осуществляется работа с такой штукой как ListBox(а именно - построение его из файла-текстовика, добавление\редактирование этих записей) средствами Билдера 6ой версии?
Как следует из раздела, хотелось бы объяснения для новичка. 
Если не будет сложно - можно ограничится просто маленьким кусочком кода, где показаны эти функции\образец синтаксиса. 

При поиске литературы, нахожу только книги, с описанием не объектно - ориентированного подхода, ЛИБО где идет просто объяснение классов и т.д.

PM MAIL   Вверх
korian
Дата 10.3.2008, 04:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Цитата
построение его из файла-текстовика

AnsiString strLine;
читаем строку из файла в newLine, используем
ListBox1->Items->Add(strLine);
для добавления строки в ListBox

Цитата
добавление\редактирование

нужен какой-нить Edit, например...
и примерно следущее:
на кнопку Добавить повесить
ListBox1->Items->Add(Edit1->Text);
на кнопку Редактировать повесить (этот метод подойдет если MultiSelect в ListBox'е установлен в false):
for (int i = 0; i < ListBox1->Items->Count; i++)

{ 
  if (ListBox1->Selected[i])
  {
      Edit1->Text = ListBox1->Items->Strings[i];
      ListBox1->Items->Delete(i);
      break;
  }
}

Цитата
 с описанием не объектно - ориентированного подхода

что вы под этим имеете ввиду?
вообще не знаю кто придумал такое словосочетание как "объектно-ориентированное программирование"...
такого в природе не существует...
есть
объектно-ориентированный анализ
объектно-ориентированное проектирование
объектно-ориентированный язык программирования
единственное, что можна предположить, так это то, что в смысл "программирование" входит анализ и проектирование.
вот только туда еще входит кодинг и разработка алгоритмов, которые сами по себе не могут быть объектно-ориентированными smile
а то что вы спрашиваете, это как раз относится к кодингу.

Это сообщение отредактировал(а) korian - 10.3.2008, 04:09
PM   Вверх
Bokuto
Дата 10.3.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 4.3.2008

Репутация: нет
Всего: нет



Спасибо большое, Ваш ответ содержал как раз то, что нужно. 

з.ы. Я имел ввиду работу с объектами и их свойствами. В учебниках, в основной массе находил либо просто построение простых функций, либо классы.
PM MAIL   Вверх
Vyacheslav
Дата 13.3.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Цитата(korian @  10.3.2008,  04:07 Найти цитируемый пост)
вот только туда еще входит кодинг и разработка алгоритмов, которые сами по себе не могут быть объектно-ориентированными 

Могут smile
Вы про процедурное программирование не слышали? Или функциональное? 
По-скольку ноги у С++ растут из просто С, то  на С++ можно спокойно кодить в стиле процедурного программирования.  


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
korian
Дата 14.3.2008, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Vyacheslav, 
кодинг, я рассматриваю как набор текста. знание названий функций/объектов используемых библиотек.
это само по себе не может быть объектно-ориентированным или процедурным.
можна писать процедурный код, используя классы, можна наоборот писать ООкод на процедурном языке (правда это на много сложнее).
а какой код пишется зависит от модели, которая получилась при проектировании.

PM   Вверх
Vyacheslav
Дата 14.3.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Цитата(korian @  14.3.2008,  00:14 Найти цитируемый пост)
можна писать процедурный код, используя классы

Это как?  Либо классы и объекты  используются и это ООП, либо нет.


Это ООП  (Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием — прототипов). )

http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%...%BD%D0%B8%D0%B5

Код

#include <iostream> 
int main(int argc, char* argv[])
{
    
    std::cout << "Hello word";
    return 0;
}


А это ПП (Процеду́рное программи́рование — это парадигма программирования, основанная на концепции вызова процедуры. Процедуры просто содержат последовательность шагов для выполнения. В ходе выполнения программы любая процедура может быть вызвана из любой точки, включая саму данную процедуру )

http://ru.wikipedia.org/wiki/%D0%9F%D1%80%...%BD%D0%B8%D0%B5

Код

int main(int argc, char* argv[])
{
     printf("Hello word");
     return 0;
}






--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
korian
Дата 14.3.2008, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Цитата(Vyacheslav @  14.3.2008,  11:19 Найти цитируемый пост)
Это как?  Либо классы и объекты  используются и это ООП, либо нет.

от написания, код не становится тем или иным. вопрос в том как он рассматрренивается.

std::cout << "Hello word"; - можна рассматривать как вызов функции, которая записана нестандартным методом.
printf("Hello word"); - можна относиться как к созданию объекта класса printf, который выполняет все необходимые действия в конструкторе.

PM   Вверх
Vyacheslav
Дата 14.3.2008, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Цитата(korian @  14.3.2008,  18:46 Найти цитируемый пост)
std::cout << "Hello word"; - можна рассматривать как вызов функции, которая записана нестандартным методом.
printf("Hello word"); - можна относиться как к созданию объекта класса printf, который выполняет все необходимые действия в конструкторе.

Отсылаю Вас к стандарту С++ smile, который однозначно определят std::cout  как объект, а  printf("Hello word")  - как вызов функции.
Но даже если бы  это и были свой объект и функция, то любой  бы  программист по объявлению определил  что это: вызов функции или работа с объектом.
  
Цитата(korian @  14.3.2008,  18:46 Найти цитируемый пост)
от написания, код не становится тем или иным. вопрос в том как он рассматрренивается.

Код не может интерпретироваться по разному. Он интерпретируется как написан и всегда вполне однозначно.  И грамотный программист всегда способен понять, имея полный код, что перед ним : вызов free function, или работа с объектом, даже если этот объект  - функтор.



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
korian
Дата 14.3.2008, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Vyacheslav, 
ключевое слово имея полный код, т.е. модель.
если вся программа разрабатывается с использованием функционального подхода, то и вызов std::cout << "Hello word"; будет рассматриваться как вызов функции. а наличие std::cout не делает код объектным.
и наоборот, если модель объектная, то и вызов функции, можно рассматривать как обращение к объекту.

PM   Вверх
Vyacheslav
Дата 14.3.2008, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Неверное утверждение.  
Возможно неправильное владение программистом той или иной парадигмы от безграмотности, что опять таки не меняет смысл кода
А наличие std::cout  делает код объектным по определению, поскольку программист использовал для вывода сообщения объектную модель smile
И в программе имеем все признаки ООП
1) наследование
В наличие имеем объект класса ostream, который  является специализацие basic_ostream, который в свою очередь унаследован от базоваго класса
2) инкапсуляцию 
Частности реализации спрятаны в внутри класса в private секции    
3) полиморфизм
В данном конкретном случае имеем дело с так называемым статическим полиморфизмом
так как во-первых , что бы мы не захотели вывести : string, char* , или int  запись у нас будет одна
std:cout << some_value 
, что  было достигнуто псоредством перегрузки методов, которую часто тоже относят к проявлению статического полиморфизма
Во-вторых сам ostream  является специализацией шаблонного класса basic_ostream, то есть явным проявлением статического полиморфизма.

И то, что это сделали не Вы, а лишь только использовали в своей программе не отменяет того, что используется ООП.




Цитата(korian @  14.3.2008,  20:39 Найти цитируемый пост)
ключевое слово имея полный код, т.е. модель.

Полный код не является моделью.  Кстати такое понятие , как полный или не полный код - бессмысленен, поскольку  неполный код означает только одно - либо скачали не все smile, либо посеяли  что-то, сделав все оставшуюся часть бесполезной.
А модели для ООП пишутся на других специально предназначеннх для этого языках, например UML. Имеея достаточно подробную модель UML можно сгенерить интерфейсные части классов используя диаграмму классов. Но это и все. А там еще  диаграммы взаимодействий, диаграммы последовательностей, диаграммы коопераций. 






--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
korian
Дата 14.3.2008, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 3
Всего: 17



Цитата(Vyacheslav @  14.3.2008,  20:25 Найти цитируемый пост)
И то, что это сделали не Вы, а лишь только использовали в своей программе не отменяет того, что используется ООП.

по вашему получается, что если я использую полностью функциональный метой анализа/проектирования, и при этом использую функциональность сторонней библиотеки, которая реализуется объекто-ориентированным подходом, то мой код автоматически становиться объектным.
использовал функциональный подход и получил объектный код?

код - проекция модели, прочем по коду запросто восстанавливается модель. код - следствие проектирования, какой подход применялся при проектировании - такой и код.
отсутсвие UML-представления модели, не означает отсутвие модели вообще. Модель представлена в уме программиста.

p.s. пора в оффтоп переезжать  smile 

Это сообщение отредактировал(а) korian - 14.3.2008, 22:02
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0956 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.