Test3R |
Отправлено: 14.01.2007, 12:49 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 46
|
1. Что надо сделать в опциях, чтоб прога работала на других компах и не требовала библиотек? (вроде отключал галочку Use..., но на другом компе выдавало ошибку, хотя у меня всё работает)
2. Можно ли сделать поиск в ListBox-е? (например, нажал на F3, ввёл слово, его ищет в выделенном ЛистБоксе)
3. В процессе разработки проги я создал парочку не нужных Форм, терь не знаю как их отключить от проекта. (удалил их из папки проекта — при компиляции выдаёт ошибку, что файлов формы нету, лазил в главном файле проекта, там удилил строки с ненужными Формами, всё равно при удалении файлов выдаёт ошибку) |
|
Doga |
Отправлено: 14.01.2007, 15:03 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
1. Во-первых, не понятно какой конкретно флаг Вы имели в виду, упомянув имя "Use...". Во-вторых, по фразе "на другом компе выдавало ошибку", не возможно определить о какой именно ошибке идет речь. В любом случае по этому вопросу Вам сюда:
http://www.rxlib.ru/forums/index.php?act=S...0d18276a0d55773
2. Используйте либо ListBox->Items->IndexOf(...), либо ListBox->Items->Strings[k].Pos(...), в зависимости от того, что находится в ListBox.
3.Кнопка "Remove file from project", или меню Project->Remove from project... .
|
|
Test3R |
Отправлено: 14.01.2007, 15:54 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 46
|
Имел ввиду флаг Use dynamic RTL. А пишет что-то вроде: "Не найдены библиотеки".
И можно поподробней про поиск. В проге в листбокс добавляются символы из EditList-а по нажатию Button-а. Можно ли сделать так: EditList — туда пишется слово для поиска, и Button, при нажатии которого это слово ищется в листбоксе, и строка с данным словом, например, выделялась синим цветом. Если да, то напишите примерный шаблон. |
|
Doga |
Отправлено: 14.01.2007, 17:24 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
1. Судя по всему Вы не посетили данную мной в предыдущем посте ссылку Иначе сюда Сами бы добрались... http://www.rxlib.ru/faqs/faq2.html
Второй вопрос Ваш.
2. Что такое EditList?
|
|
Test3R |
Отправлено: 15.01.2007, 13:24 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 46
|
Насчёт 1 и 3 вопроса всё решил, пасиб.
Насчёт 2 — ошибься, просто Edit (строка ввода короч). В ЛистБоксе вот что примерно получается:
1 строка — Время: 12:00:00.
2 строка — Клетка: 134.
Прошу шаблон для поиска. |
|
Doga |
Отправлено: 15.01.2007, 16:03 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Если требуется полное совпадение
CODE |
int Index = ListBox1->Items->IndexOf(Edit1->Text);
if (Index > -1)
{
ListBox1->ItemIndex = Index;
}
|
Если требуется частичное совпадение фраз, при условии что длина текста в Edit1 <= длины строки в ListBox.
CODE |
for (int k = 0; k < ListBox1->Count; k++)
{
if (ListBox1->Items->String[k].Pos(Edit1->Text) > 0)
{
ListBox1->ItemIndex = k;
break;
}
}
|
Последний код можно использовать "на ходу", сразу после ввода очередного символа в Edit1 (напр. в событии OnKeyDown).
|
|
Test3R |
Отправлено: 17.01.2007, 15:12 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 46
|
Как сделать, чтоб при закрытии формы, где находится данный листбокс,
выделение строк как бы обнулялось (ни одной выделенной строки в нём
не оставалось)?
Вот скрипт для поиска (выделения) строк на всякий случай:
void __fastcall TForm4::Button1Click(TObject *Sender)
{
int k, o;
for (k = 0; k < ListBox->Count; k++)
{
o = ListBox->Items->Strings[k].Pos(Edit1->Text);
if (o> 0)
{
ListBox->Selected[k] = true;
}
}
if (ListBox->SelCount == 0)
{
ShowMessage("Текст не найден!");
}
} |
|
Test3R |
Отправлено: 18.01.2007, 13:41 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 46
|
Ап. Кто-нить ответьте. |
|
AVC |
Отправлено: 18.01.2007, 14:24 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE | Ап. Кто-нить ответьте. |
CODE |
for (int k(0); k < ListBox1->Items->Count; k++)
ListBox1->Selected[k] = false;
|
Вы и так это знали, правда?
PS. Не забывайте о MultiSelect |
|
Test3R |
Отправлено: 18.01.2007, 14:46 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 46
|
Усё. Пасиб. |
|