Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.200.136] |
|
Страницы: (3) 1 [2] 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Чтобы избежать повторений надо данные заносить в TStringList, предварительно у него установив Sorted = True и Duplicate = dupIgnore
|
Сообщ.
#17
,
|
|
|
Да, это же еще надо удалить повторяющийся алимент...
Как бы так (без изысков с файлом типа ini и всяких там других box'ов и stringlist'ов (простите меня, за последнее, уважаемый KAV )): Создаем два файла ComboBox1.txt и ComboBox2.txt Файл ComboBox1.txt Title 1 Title 2 Повторяющийся элемент ComboBox'ов Еще один повторяющийся элемент ComboBox'ов Файл ComboBox2.txt pathname1.txt C:\temp\pathname2.txt Повторяющийся элемент ComboBox'ов Еще один повторяющийся элемент ComboBox'ов Пишем: ... //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { ComboBox1->Items->LoadFromFile("ComboBox1.txt"); ComboBox2->Items->LoadFromFile("ComboBox2.txt"); } //--------------------------------------------------------------------------- void __fastcall TForm1::ComboBox1Select(TObject *Sender) { ComboBox2->ItemIndex=ComboBox1->ItemIndex; // сравнение элементов if (ComboBox1->Text.Pos(ComboBox2->Text)) ShowMessage("Ай-я-яй!\nНа этот раз Вам не удалось избежать повторений в ComboBox'ax!"); else ShowMessage("Повторений в ComboBox'ax нет."); } //--------------------------------------------------------------------------- void __fastcall TForm1::ComboBox2Select(TObject *Sender) { ComboBox1->ItemIndex=ComboBox2->ItemIndex; // сравнение элементов if (ComboBox1->Text.Pos(ComboBox2->Text)) ShowMessage("Ай-я-яй!\nВам снова не удалось избежать повторений в ComboBox'ax!"); else ShowMessage("Повторений в ComboBox'ax нет."); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { ComboBox1->Items->Add(ComboBox1->Text); // добавляем текст ComboBox1->Items->SaveToFile("ComboBox1.txt"); // записываем в файл } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { ComboBox2->Items->Add(ComboBox2->Text); // добавляем текст ComboBox2->Items->SaveToFile("ComboBox2.txt"); // записываем в файл } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { int i; i = ComboBox1->Items->IndexOf(ComboBox2->Text); if (i >= 0) ComboBox1->Items->Delete(i); ComboBox1->ItemIndex = 0; // удаляем элемент ComboBox'a { ComboBox1->Items->SaveToFile("ComboBox1.txt"); // записываем в файл } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { int i; i = ComboBox2->Items->IndexOf(ComboBox1->Text); if (i >= 0) ComboBox2->Items->Delete(i); ComboBox2->ItemIndex = 0; // удаляем элемент ComboBox'a { ComboBox2->Items->SaveToFile("ComboBox2.txt"); // записываем в файл } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { int i; i = ComboBox1->ItemIndex; if (i >= 0) ComboBox1->Items->Delete(i); ComboBox1->ItemIndex = 0; { ComboBox1->Items->SaveToFile("ComboBox1.txt"); // записываем в файл } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button6Click(TObject *Sender) { int i; i = ComboBox2->ItemIndex; if (i >= 0) ComboBox2->Items->Delete(i); ComboBox2->ItemIndex = 0; { ComboBox2->Items->SaveToFile("ComboBox2.txt"); // записываем в файл } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button7Click(TObject *Sender) { int ix; ix = ComboBox1->Items->IndexOf(ComboBox2->Text); if (ix >= 0) ComboBox1->Items->Delete(ix); // если есть повтор ComboBox1->ItemIndex = 0; // удаляем элемент ComboBox'a { ComboBox1->Items->SaveToFile("ComboBox1.txt"); // записываем в файл } { int iy; iy = ComboBox2->Items->IndexOf(ComboBox1->Text); if (iy >= 0) ComboBox2->Items->Delete(ix); // если есть повтор ComboBox2->ItemIndex = 0; // удаляем элемент ComboBox'a { ComboBox2->Items->SaveToFile("ComboBox2.txt"); // записываем в файл } } } //--------------------------------------------------------------------------- Теперь в любом ComboBox'e выбираем Повторяющийся элемент ComboBox'ов, и ждем сообщения Вариант ComboBox2Select->ShowMessages не смог проверить, поскольку у меня было установлено ComboBox2->Enabled = false |
Сообщ.
#18
,
|
|
|
Спасибо ДОШЛО
|
Сообщ.
#19
,
|
|
|
А вообще-то можно обрабатывать и так:
void __fastcall TForm1::ComboBox1Select(TObject *Sender) { ComboBox2->ItemIndex=ComboBox1->ItemIndex; if (ComboBox1->Text.Pos(ComboBox2->Text)) { if (Application->MessageBox( "Ай-я-яй!\nОбнаружены совпадения в ComboBox'ax!\nУдалить элемент!", "Проверка сопадений", MB_OK + MB_ICONWARNING)) { ComboBox1->Items->Delete(ComboBox1->ItemIndex);// удаляем элемент ComboBox'a ComboBox1->ItemIndex = 0; } } else Application->MessageBoxA("Совпадений в ComboBox'ax нет.", "Проверка совпадений", MB_ICONASTERISK); } |
Сообщ.
#20
,
|
|
|
что за такое невыходит повторения есть |
Сообщ.
#21
,
|
|
|
PsiHo, почитай #16
|
Сообщ.
#22
,
|
|
|
Song
читал при использовании Sorted = True получается что когда ты нажал на кнопку оно отсортировало (ну это и понятно) а мне данное действие не подходит... а насчет Duplicate = dupIgnore Где оно что найти не могу может покажешь (и просьба пиши поподробнее) |
Сообщ.
#23
,
|
|
|
Цитата PsiHo, 13.04.04, 12:46 а насчет Duplicate = dupIgnore Где оно что найти не могу может покажешь (и просьба пиши поподробнее) оно у TStringList. Но без Sorted оно работать не будет. |
Сообщ.
#24
,
|
|
|
Цитата PsiHo @ 13.04.04, 06:19 что за такое невыходит повторения есть Так оно ж должно удаляться при нажатии кнопочки... Речь по-прежнему идет о сравнении двух ComboBox: ComboBox2->ItemIndex=ComboBox1->ItemIndex; В таком случае, если все это начать сортировать... Например, если в ComboBox1 после последнего итема на я добавить итем на а и отсортировать... Он же из последнего станет первым, и что тогда с чем сравнивать. Ну да, если вводить в оба бокса две идентичные строки, и потом сортировать, и отлавливать совпадения... Но это уже садомазохизм какой-то получается... И что-то мне очень сильно кажется, что Sorted = True Duplicate = dupIgnore не буде сортировать и сравнивать элементы в двух ComboBox... |
Сообщ.
#25
,
|
|
|
Old,
1) перед занесением элемента в любой список прогоняй его через TStringList. 2) Постоянно храни данные в TStringList, а после добавления просто ассигни на TComboBox.Items 3) Обрабатывай циклом в конце концов, удаляя всё вручную.. Удивлён, что такой вопрос столь долго обсуждается. |
Сообщ.
#26
,
|
|
|
Song
а што ты хотел чтобы все вопросы решался мигом или как... а насчет: Sorted = True Duplicate = dupIgnore поставил, но нефига не выходит p.s. может сам побыстрому напишеш, ась... Old да, речь идет по-прежнему о сравнении, а потом и добавке двух combobox'ов ComboBox2->ItemIndex=ComboBox1->ItemIndex; ё - мае: дык, как сделать... |
Сообщ.
#27
,
|
|
|
Цитата PsiHo, 15.04.04, 15:33 а што ты хотел чтобы все вопросы решался мигом именно. После того как поставил Sorted = True и Duplicate = dupIgnore добавляй в список две одинаковых строки. Увидишь, что вторая не добавится. |
Сообщ.
#28
,
|
|
|
Song
я же это уже писал читай #26 Цитата PsiHo, 15.04.04, 11:33 а насчет: Sorted = True Duplicate = dupIgnore поставил, но нефига не выходит напиши как именно по твоему ( ) |
Сообщ.
#29
,
|
|
|
Мда.. тяжёлый случай..
Хочешь на Дельфи? |
Сообщ.
#30
,
|
|
|
можна
а случай тяжёлый (даже очень ) |