Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2016, 22:06   #1
drofus
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию Вопрос по ComboBox

Здравствуйте, вопрос в следующем, есть на форме ComboBox1 и ComboBox2 пытаюсь написать программу для учета автомашин. О программе в ComboBox1 - вписываются Марка авто а в ComboBox2 Модель. Хочу реализовать список такого вида например
ComboBox1 = BMW
ComboBox2 = |BMW1|1| где BMW1 это модель а |1| - это класс к которому она относится. В ComboBox1 я получу список через LoadFromFile а вот как быть со ComboBox2-м или ваши советы?
drofus вне форума Ответить с цитированием
Старый 10.07.2016, 23:22   #2
drofus
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

Выскакивает I/O error 104
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
var
  I  : Integer;
  F  : TextFile;
  Text: string;
  begin
 //FileText:= ExtractFilePath(Application.ExeName)+'Auto\'+ComboBox1.Text+'.txt';
  AssignFile(F, ExtractFilePath(Application.ExeName)+'Auto\'+ComboBox1.Text+'.txt');
   {$I-}
  Reset(f);
  {$I+}

  if IOResult <> 0 then
  begin
    MessageDlg('Ошибка файла! '+ 'FailName', mtError, [mbOk], 0);
     exit;
  end;
     while not Eof(F) do
       begin
        ReadLn(F, Text);
       StripOutParam(Text, param);
     for i := 0 to  ComboBox6.Items.Count-1  do  begin
       begin
        ComboBox6.Text:=param[0];
    end;
  end;
CloseFile(F);
end;
    end;

Последний раз редактировалось drofus; 10.07.2016 в 23:23. Причина: поправка кода
drofus вне форума Ответить с цитированием
Старый 10.07.2016, 23:32   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Используйте TStringList LoadFromFile или TFileStream для чтения файла.

И давайте элементам формы нормальные имена вместо ComboBox1, ComboBox2, ..., ComboBox42.

И форматируйте код нормально, а не как попало.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.07.2016, 23:36   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

не надо читать файл при каждом тыке на комбобокс.
покажи файл
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 10.07.2016, 23:45   #5
drofus
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

Код:
Procedure StripOutParam(Text: String; VAR Param: Array of String);
Var
  I: Word;
Begin
  If Text = '' Then Exit;
  FillChar(Param, SizeOf(Param), 0);
  Delete(Text, 1, Pos('|', Text));

  If Text = '' Then Exit;
  If (Text[Length(Text)] <> '|') Then Text := Text + '|';

  I := 0;
  While (Pos('|', Text) > 0) Do
  Begin
    Param[I] := Copy(Text, 1, Pos('|', Text)-1);
    Inc(I);
    Delete(Text, 1, Pos('|', Text));
    If (I >= 100) Then Break;
  End;

End;

procedure TForm1.LoadFiles; 
begin
if FileExists(ExtractFilePath(Application.ExeName)+'\Auto\WP_Auto.txt') then
   ComboBox1.Items.LoadFromFile('WP_Auto.txt');
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
  LoadFiles;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
  I  : Integer;
  F  : TextFile;
  Text: string;
begin
  AssignFile(F, ExtractFilePath(Application.ExeName)+'Auto\'+ComboBox1.Text+'.txt');
   {$I-}
  Reset(f);
  {$I+}

  if IOResult <> 0 then
  begin
    MessageDlg('Ошибка при открытии файла! '+ 'чч', mtError, [mbOk], 0);
     exit;
  end;
     while not Eof(F) do
       begin
        ReadLn(F, Text);
       begin
         for i := 0 to  ComboBox6.Items.Count-1  do
           StripOutParam(Text, param);
        ComboBox6.Items.Append(param[0]);
       end;
    end;
     CloseFile(F);
end;


end.
drofus вне форума Ответить с цитированием
Старый 16.07.2016, 11:40   #6
drofus
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

Как сравнить текст написанный в Комбобоксе - Auto.Text с текстом который уже там находится и запретить процедуру AddCar что то не получается у меня
Код:
var
I : integer;
begin
    CreateFile;
for i  := 0 to Auto.Items.Count - 1 do
  begin
     If pos(Auto.Text, Auto.Items[i])>0 then AddCar else
Exit;
            Label5.Caption := '[Внимание!] Файл добавлен!';
              Auto.Items.LoadFromFile(ExtractFilePath(Application.ExeName)+'\Auto\WP_Auto.txt');
          end;
       End;
drofus вне форума Ответить с цитированием
Старый 16.07.2016, 12:10   #7
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Мож хватит хрень писать и сделать по-хорошему?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 16.07.2016, 13:08   #8
Igor[Игорь]
Пользователь
 
Аватар для Igor[Игорь]
 
Регистрация: 25.11.2011
Сообщений: 52
По умолчанию

Ты хочеш что бы при выборе значения в первом боксе появлялись значения во втором боксе трлько для выбранного значения из первого?
e-mail: igor23dec@yandex.ru , ICQ: 2168364 , Telegram: @IgorVN
Delphi, PHP
Примеры http://igorvn.ucoz.ru/
Igor[Игорь] вне форума Ответить с цитированием
Старый 16.07.2016, 14:58   #9
drofus
 
Регистрация: 29.11.2010
Сообщений: 8
По умолчанию

Есть 2 функции CreateFile; AddCar; Хочу что бы в CB1 сравнивался имеющийся текст с только что напечатанным и в зависимости от него срабатывала функция
drofus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос про ComboBox Bezdar Microsoft Office Excel 3 23.04.2013 14:04
вопрос с combobox awde Общие вопросы Delphi 12 16.02.2012 08:41
Вопрос по Combobox.Items kta87 Общие вопросы Delphi 5 23.10.2011 11:01
Вопрос о combobox и listbox Disergslu Microsoft Office Excel 5 08.06.2010 10:06
Вопрос по Combobox MSD Общие вопросы Delphi 8 01.06.2010 13:56