Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Редактирование Item у ListBox


Автор: mr.Anderson 9.8.2005, 08:17
Подскажите, как отредактировать выделенный в ListBox элемент? Как добавить, понятно, как удалить, тож понятно, а вот отредактировать как? Если для этого нужно редактировать сам файл (у меня все содержимое ListBox в файле хранится), то скажите, как его отредактировать через, может быть, дополнительные формы (т.е. не открывая файл в блокноте вручную).

Автор: chaos 9.8.2005, 09:14
все завистит от свойства
property Style: TListBoxStyle
если он у тебя выставлен в lbStandard то ты в нем можешь писать.
если так то пишешь(редактируешь) себе и потом или по нажатию ентера или еще чего нибудь устанавливешь новую строку
Добавлено @ 09:18
посмотри на класс TString там много чего интересного есть smile тебе как раз с ним и надо работать
Добавлено @ 09:18
если конечно я тебя правельно понял

Автор: codelord 9.8.2005, 12:45
Допустим имея заполненный ListBox,
то хотя бы так :
Код

ListBox1->Items->Strings[2]="Replace";

Автор: Lancet 9.8.2005, 12:50
а выделенного элемента так:
ListBox1->Items->Strings[ListBox1->ItemIndex] = "Replace string";

Автор: mr.Anderson 11.8.2005, 18:35
Понял, сейчас пойду пробовать.
chaos, то, что вы мне описали, очень уж для меня пока непонятно. Вообще, я предполагал редактирование выделенного элемента через вызов дочерней формы. Так что больше всего в данном случае мне подходит код от Lancet, если, конечно, он правильный. smile

Автор: mr.Anderson 13.8.2005, 12:35
Появилась еще проблема. Я редактирую выделенный элемент ЛистБокса через вызов другой формы, как я уже говорил. В этой форме я разместил компонент Edit, и мне нужно при вызове этой самой дочерней формы в свойство Text компонента Edit затолкать текст редактируемого элемента ЛистБокса. Однако, при выполнении такого вот кода (это событие OnActivate дочерней формы):
Код

Form4->Edit1->Text=Form1->ListBox1->ItemIndex;

Выдается ошибка. Компилятор говорит, что ничего в упор не знает об объектах Form1 и ListBox1. Подключение юнита Unit1.c, в котором содержится код первой, главной то есть, формы - ничего не дает. Все равно Form1 является якобы неизвестным объектом. Как это исправить?

Автор: codelord 13.8.2005, 23:02
Form4->Edit1->Text=Form1->ListBox1->Items->Strings[ListBox1->ItemIndex];

Автор: codelord 13.8.2005, 23:56
Подключи так главную форму:
если надо подключи и Form4. только не .с файлы а .h
т.е пример:
Код

файл unit1.cpp
#include <vcl.h>
#include "unit4.h"


файл unit4.cpp
#include <vcl.h>
#include "unit1.h"

Автор: mr.Anderson 14.8.2005, 18:08
Отлично, сработало! Правда, строку
Код

Form4->Edit1->Text=Form1->ListBox1->Items->Strings[ListBox1->ItemIndex]; 

Пришлось немного изменить и сделать вот такой:
Код

Form4->Edit1->Text=Form1->ListBox1->Items->Strings[Form1->ListBox1->ItemIndex];

Правда, перед этим мне пришлось довольно долго думать, почему же компилятор говорит о "неизвестном символе ListBox1", если он существует... smile
А заголовочные файлы я подключать не забываю никогда и на этот раз тоже не забыл. Только я забыл, что я при создании проекта переименовал файл кода, а подключить его пытался как Unit1.h , хотя он назывался Code.h. Моя рассеянность меня убивает. smile Теперь в моей программке осталось добавить всего пару штрихов - сделать реальный HELP и доделать редактирование Items. Но это уже совсем другая тема. smile

Автор: teesync 26.7.2022, 23:50
Модератор: Сообщение скрыто.

Автор: squilia 15.8.2022, 05:48
Модератор: Сообщение скрыто.

Автор: Adjusly 24.1.2023, 01:08
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)