![]() |
|
|
![]()
|
|
| Bokuto |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.3.2008 Репутация: нет Всего: нет |
Всем привет.
Вопрос такой - как осуществляется работа с такой штукой как ListBox(а именно - построение его из файла-текстовика, добавление\редактирование этих записей) средствами Билдера 6ой версии? Как следует из раздела, хотелось бы объяснения для новичка. Если не будет сложно - можно ограничится просто маленьким кусочком кода, где показаны эти функции\образец синтаксиса. При поиске литературы, нахожу только книги, с описанием не объектно - ориентированного подхода, ЛИБО где идет просто объяснение классов и т.д. |
|||
|
||||
| korian |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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; } }
что вы под этим имеете ввиду? вообще не знаю кто придумал такое словосочетание как "объектно-ориентированное программирование"... такого в природе не существует... есть объектно-ориентированный анализ объектно-ориентированное проектирование объектно-ориентированный язык программирования единственное, что можна предположить, так это то, что в смысл "программирование" входит анализ и проектирование. вот только туда еще входит кодинг и разработка алгоритмов, которые сами по себе не могут быть объектно-ориентированными а то что вы спрашиваете, это как раз относится к кодингу. Это сообщение отредактировал(а) korian - 10.3.2008, 04:09 |
||||||
|
|||||||
| Bokuto |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.3.2008 Репутация: нет Всего: нет |
Спасибо большое, Ваш ответ содержал как раз то, что нужно.
з.ы. Я имел ввиду работу с объектами и их свойствами. В учебниках, в основной массе находил либо просто построение простых функций, либо классы. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Могут Вы про процедурное программирование не слышали? Или функциональное? По-скольку ноги у С++ растут из просто С, то на С++ можно спокойно кодить в стиле процедурного программирования. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
Vyacheslav,
кодинг, я рассматриваю как набор текста. знание названий функций/объектов используемых библиотек. это само по себе не может быть объектно-ориентированным или процедурным. можна писать процедурный код, используя классы, можна наоборот писать ООкод на процедурном языке (правда это на много сложнее). а какой код пишется зависит от модели, которая получилась при проектировании. |
|||
|
||||
| Vyacheslav |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Это как? Либо классы и объекты используются и это ООП, либо нет. Это ООП (Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием — прототипов). ) http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%...%BD%D0%B8%D0%B5
А это ПП (Процеду́рное программи́рование — это парадигма программирования, основанная на концепции вызова процедуры. Процедуры просто содержат последовательность шагов для выполнения. В ходе выполнения программы любая процедура может быть вызвана из любой точки, включая саму данную процедуру ) http://ru.wikipedia.org/wiki/%D0%9F%D1%80%...%BD%D0%B8%D0%B5
-------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
от написания, код не становится тем или иным. вопрос в том как он рассматрренивается. std::cout << "Hello word"; - можна рассматривать как вызов функции, которая записана нестандартным методом. printf("Hello word"); - можна относиться как к созданию объекта класса printf, который выполняет все необходимые действия в конструкторе. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Отсылаю Вас к стандарту С++ Но даже если бы это и были свой объект и функция, то любой бы программист по объявлению определил что это: вызов функции или работа с объектом.
Код не может интерпретироваться по разному. Он интерпретируется как написан и всегда вполне однозначно. И грамотный программист всегда способен понять, имея полный код, что перед ним : вызов free function, или работа с объектом, даже если этот объект - функтор. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
Vyacheslav,
ключевое слово имея полный код, т.е. модель. если вся программа разрабатывается с использованием функционального подхода, то и вызов std::cout << "Hello word"; будет рассматриваться как вызов функции. а наличие std::cout не делает код объектным. и наоборот, если модель объектная, то и вызов функции, можно рассматривать как обращение к объекту. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Неверное утверждение.
Возможно неправильное владение программистом той или иной парадигмы от безграмотности, что опять таки не меняет смысл кода А наличие std::cout делает код объектным по определению, поскольку программист использовал для вывода сообщения объектную модель И в программе имеем все признаки ООП 1) наследование В наличие имеем объект класса ostream, который является специализацие basic_ostream, который в свою очередь унаследован от базоваго класса 2) инкапсуляцию Частности реализации спрятаны в внутри класса в private секции 3) полиморфизм В данном конкретном случае имеем дело с так называемым статическим полиморфизмом так как во-первых , что бы мы не захотели вывести : string, char* , или int запись у нас будет одна std:cout << some_value , что было достигнуто псоредством перегрузки методов, которую часто тоже относят к проявлению статического полиморфизма Во-вторых сам ostream является специализацией шаблонного класса basic_ostream, то есть явным проявлением статического полиморфизма. И то, что это сделали не Вы, а лишь только использовали в своей программе не отменяет того, что используется ООП. Полный код не является моделью. Кстати такое понятие , как полный или не полный код - бессмысленен, поскольку неполный код означает только одно - либо скачали не все А модели для ООП пишутся на других специально предназначеннх для этого языках, например UML. Имеея достаточно подробную модель UML можно сгенерить интерфейсные части классов используя диаграмму классов. Но это и все. А там еще диаграммы взаимодействий, диаграммы последовательностей, диаграммы коопераций. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korian |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
по вашему получается, что если я использую полностью функциональный метой анализа/проектирования, и при этом использую функциональность сторонней библиотеки, которая реализуется объекто-ориентированным подходом, то мой код автоматически становиться объектным. использовал функциональный подход и получил объектный код? код - проекция модели, прочем по коду запросто восстанавливается модель. код - следствие проектирования, какой подход применялся при проектировании - такой и код. отсутсвие UML-представления модели, не означает отсутвие модели вообще. Модель представлена в уме программиста. p.s. пора в оффтоп переезжать Это сообщение отредактировал(а) korian - 14.3.2008, 22:02 |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |