Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 19.03.2017
Сообщений: 39

SetFocus при поиску по StringGrid

18.04.2017, 20:18. Показов 1686. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как зделать рабочий SetFocus при поиску по StringGrid[
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bool finded = false;
for (int i = 0; i < StringGrid1->ColCount; i++)
{
for (int j = 0; j < StringGrid1->RowCount; j++)
{
if(Edit1->Text == StringGrid1->Cells[j][i])
{
finded = true;
break;
}
}
}
if (finded)
{
ShowMessage("Знайдено");
StringGrid1->SetFocus();
}
else
ShowMessage("Не знайдено");
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.04.2017, 20:18
Ответы с готовыми решениями:

SetFocus.Пишу Ok(0).SetFocus. Выдаёт ошибку 5. Почему?
Пишу Ok(0).SetFocus. Выдаёт ошибку 5. Почему?

Как снять выделение при Edit1.SetFocus?
как снять выделение при Edit1.SetFocuse... procedure TForm1.Button1Click(Sender: TObject); begin Edit1.SetFocus; end;

Изменение видимости компонентов при SetFocus компонента Edit
Доброго времени суток, помогите найти ошибку в программном коде procedure TForm22.edt13KeyPress(Sender: TObject; var Key: Char); begin ...

5
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
18.04.2017, 21:48
C++
1
2
3
4
5
6
if (finded)
{
ShowMessage("Знайдено");
StringGrid1->Row = j;
StringGrid1->SetFocus();
}
Добавлено через 3 минуты
здесь ошибка
Цитата Сообщение от Solara Посмотреть сообщение
if(Edit1->Text == StringGrid1->Cells[j][i])
первый параметр идет колонка а второй строка.
поправь
C++
1
Edit1->Text == StringGrid1->Cells[i][j]
0
 Аватар для Lelik-pahan
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
18.04.2017, 21:50
Можно немного упростить поиск (избавиться от второго цикла)
C++
1
2
3
4
5
6
7
8
9
10
11
12
    for (int row = 0; row < StringGrid1->RowCount; row++)
    {
        int col = StringGrid1->Rows[row]->IndexOf(Edit1->Text);
        if (col >= 0)
        {
            StringGrid1->Row = row;
            StringGrid1->Col = col;
            StringGrid1->SetFocus();
            ShowMessage(L"Знайдено");
            break;
        }
    }
1
0 / 0 / 0
Регистрация: 19.03.2017
Сообщений: 39
18.04.2017, 22:31  [ТС]
Lelik-pahan, работае но нужна вивод если ненашло зделать но у меня почемута не работает
else ShowMessage("Не знайдено");
0
 Аватар для Lelik-pahan
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
18.04.2017, 22:44
Лучший ответ Сообщение было отмечено Solara как решение

Решение

Solara,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    int col = -1, row;
    for (row = 0; row < StringGrid1->RowCount && col < 0; row++)
        col = StringGrid1->Rows[row]->IndexOf(Edit1->Text);
 
    if (col >= 0)
    {
        StringGrid1->Row = row - 1;  //нужно вычесть 1, т.к. перед проверкой условия выхода из цикла последний раз сработает row++
        StringGrid1->Col = col;
        StringGrid1->SetFocus();
        ShowMessage(L"Знайдено");
    }
    else
        ShowMessage(L"Не знайдено");
Добавлено через 2 минуты
или так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    int col = -1, row = -1;
    for (; row < StringGrid1->RowCount && col < 0;)
        col = StringGrid1->Rows[++row]->IndexOf(Edit1->Text);
 
    if (col >= 0)
    {
        StringGrid1->Row = row;
        StringGrid1->Col = col;
        StringGrid1->SetFocus();
        ShowMessage(L"Знайдено");
    }
    else
        ShowMessage(L"Не знайдено");
1
0 / 0 / 0
Регистрация: 19.03.2017
Сообщений: 39
18.04.2017, 22:47  [ТС]
Lelik-pahan, Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.04.2017, 22:47
Помогаю со студенческими работами здесь

При вводе данных цикл по поиску EOF в Getchar не останавливается
Здраствуйте, вот такая проблема: #include &lt;stdio.h&gt; main() { int nc=0; while(getchar() != EOF) nc++;

При выполении задачи всплывает ошибка. Задача по бинарному поиску внутри цикла
#include &lt;stdio.h&gt; int binsearch (int x, int v, int n); //Бинарный поиск void main () { int n = 20; int a; ...

Написать программу по поиску четырехзначных чисел, дающих при делении на определенное число определенный остаток.
составить программу поиска четырехзначных чисел, которые при делении на 133 дают в остатке 125, а при делении на 134 дают в остатке 111....

Всем читать при создании новой темы по поиску схем, прошивок, DataSheet или информации по компонентам
Заголовок темы должен быть информативным. В заголовке темы указывать. - Тип разыскиваемого документа (Схема, Прошивка, Datasheet,...

Использование SetFocus
Всем привет. Есть такой код Private Sub gr10_AfterUpdate() If (Me.gr9.Value = 1 Or Me.gr9.Value = 2 Or Me.gr9.Value = 3) And...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru