Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 08.10.2017
Сообщений: 151

Поиск по значению из комбобокса

18.12.2019, 20:17. Показов 3563. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! У меня есть комбобокс. Значения в нем составные (состоят из месяца и года) и заполняются из файла, повторы удаляются:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 var tmpJob: RecReestr;
j:Integer;
begin
  cbb1.Clear;
  Seek(fileReestr, 0);
  while not Eof(fileReestr) do
  begin
    Read(fileReestr, tmpJob);
    //Работа со строками
    cbb1.Items.Add(tmpJob.mounth + ' - ' + IntToStr(tmpJob.year));
  end;
 
  for j:=cbb1.Items.Count-1 downto 1 do begin
      if cbb1.Items.IndexOf(cbb1.Items[j]) < j then  begin
        cbb1.Items.Delete(j);
      end;
  end;
Мне нужно организовать вывод данных в таблицу, т.е. по выбранному значению из комбобокса осуществляется сопоставления по значениям месяцев и года в файле и записи за эти даты выводятся в таблицу. Я попробовала организовать, но не могу правильно осуществить считывание выбранного значения из комбобокса, чтобы оформить условие поиска записей в файле:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var reest: RecReestr;
begin
Seek(fileReestr, 0);
  i := 1;
  //Чтение записей из файла
  while not Eof(fileReestr) do
  begin
    read(fileReestr, reest);
    //Заполнение таблицы
    if cbb1.Items = reest.mounth and cbb1.Items = reest.year  then //здесь должно быть правильное условие поиска 
    begin
    StringGridVed.Cells[0, i] := IntToStr(reest.IdTime);
    StringGridVed.Cells[1, i] := IntToStr(reest.IdWorker);
    StringGridVed.Cells[2, i] := reest.NameWorker;
    StringGridVed.Cells[3, i] := IntToStr(reest.sum_dop);
    StringGridVed.Cells[4, i] := IntToStr(reest.Zp);
    i:=i+1;
    end
  end;
end;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.12.2019, 20:17
Ответы с готовыми решениями:

Значения второго комбобокса зависят от значений первого комбобокса
Мужики, есть два комбо бокса, нужно чтобы значения второго комбо бокса зависели от того, которое выбрано в первом... Как это сделать? ...

MyDictionary: сортировка по ключу, поиск значения по ключу, поиск ключа по значению
Задан интерфейс ІMyDictionary. Его реализует класс MyDictionary, который позволяет определить коллекцию пар &quot;ключ-значение&quot;. ...

Поиск по значению
Люди борые помогите уже крыша едет не могу понять почему не работает код поиска: With Worksheets('Summary').Range('B1:B5000') Set C...

21
561 / 230 / 88
Регистрация: 11.07.2015
Сообщений: 817
19.12.2019, 19:03
Лучший ответ Сообщение было отмечено pirab как решение

Решение

Студворк — интернет-сервис помощи студентам
Так сделайте
Delphi
1
2
if cbb1.Items.Strings[cbb1.ItemIndex] = reest.mounth + ' ' + IntToStr(reest.year)  then
...
Дальше по коду да ошибка.

Добавлено через 5 минут
Вот это закоментируйте
Delphi
1
2
3
4
5
6
7
8
9
fs := FileSize(fileReestr);
  if fs > 0 then
    StringGridVed.RowCount := fs + 1
  else
  begin
    StringGridVed.RowCount := 2;
    for i := 0 to StringGridVed.ColCount - 1 do
     StringGridVed.Cells[i, 1] := '';
  end;
Вроде работает.

Добавлено через 21 минуту
Маленько поигрался и вот, что вышло
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
procedure TVedomost.FillVedTable();
var
  reest: RecReestr;
  tmpJob: RecReestr;
  fs, i, ne_bil, vse_dni, otr_dni, sum, r: integer;
begin
  {fs := FileSize(fileReestr);
  if fs > 0 then
    StringGridVed.RowCount := fs + 1
  else}
  begin
    StringGridVed.RowCount := 1;
    for i := 0 to StringGridVed.ColCount - 1 do
      StringGridVed.Cells[i, 1] := '';
  end;
  Seek(fileReestr, 0);
  //i := 1;
  while not Eof(fileReestr) do
  begin
    read(fileReestr, reest);
    if cbb1.Items.Strings[cbb1.ItemIndex] = reest.mounth + ' ' + IntToStr(reest.year) then
    begin
      r := StringGridVed.RowCount;
      StringGridVed.RowCount := r + 1;
      StringGridVed.Cells[0, r] := IntToStr(reest.IdTime);
      StringGridVed.Cells[1, r] := IntToStr(reest.IdWorker);
      StringGridVed.Cells[2, r] := reest.NameWorker;
      vse_dni := reest.rab_dni;
      otr_dni := reest.otr_dni;
      ne_bil := vse_dni - otr_dni;
      StringGridVed.Cells[3, r] := IntToStr(ne_bil);
      StringGridVed.Cells[4, r] := IntToStr(reest.sum_dop);
      StringGridVed.Cells[5, r] := IntToStr(reest.Zp);
      //i := i + 1;
    end;
 
  end;
  for i:=1 to StringGridVed.RowCount - 1 do
      sum:= sum+StrToInt(StringGridVed.Cells[5,i]);
      edt2.Text:=IntToStr(sum);
end;
1
0 / 0 / 0
Регистрация: 08.10.2017
Сообщений: 151
19.12.2019, 19:58  [ТС]
Спасибо вам всем огромное!!!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2019, 19:58

Поиск по значению в Edit
Привет. Подскажите почему ошибка вылетает? Код ниже. frmComponent.ADOQueryStajer.Close; frmComponent.ADOQueryStajer.Open; ...

Осуществить поиск по значению
Есть таблица: Название |Тип |Цена Ткр |ПП |223 Гкр |ПГ |223 Пкр |ПП |212 Нужно ввести в textBox праметр поиск(те цену или...

Поиск по значению в словаре
Доброго времени суток. Нужна структура, представляющая коллекцию ключ - значение, в которой наиболее быстро идет поиск по значению. Пока...

Поиск в БД по введенному значению
Делаю курсовой на тему Контрольно-Пропускной пункт, никак не могу разобраться как работать с БД через C#. Нужно выполнить поиск в БД по...

Поиск по значению поля
Добрый день в акссесе на форме присутствует поле со списком --при выборе элемента в этом поле, автоматически выбранное пересылается...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru