![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Добрый вечер!
Прошу направить по правильному направлению) Задача такая: Есть Combobox1 Список для Combobox1 берется из файла ComboBoxList.txt Есть два Image: - Image2 - картинка минуса, т.е. как бы кнопка "удалить" - Image1 - картинка плюса, т.е. как бы кнопка "добавить" Есть 2 Memo - Memo1 - для загрузки списка из файла в Мемо - Memo2 - для загрузки списка из файла в Мемо Суть: При входе загружается список в ComboBox1 При выходе список сохраняется в ComboBoxList.txt Например мы пишем слово в ComboBox1 далее - нажимаем на Image1 (+), если такого слова нет в списке, тогда добавляем в список, сохраняем в файл ComboBoxList.txt и загружаем из этого файла новый список в ComboBox1, в противном случае ничего не происходит - нажимаем на Image2 (-), если такое слово есть в списке, тогда удаляем его из списока, сохраняем в файл ComboBoxList.txt и загружаем из этого файла новый список в ComboBox1, в противном случае ничего не происходит Теперь самое интересное необходимо реализовать условие появления картинок Image1 (+) и Image2 (-) в зависимости от того есть введенное слово (или выбранное слово) в списке или нет его. Пример: Список: 1 2 3 4 5 1) вводим значение 6 - в результате появляется Image1 (+) и мы можем добавить это значение в наш список. 2) вводим/выбираем значение 3 - в результате появляется Image2 (-) и мы можем удалить это значение из нашего список. Надеюсь я доходчиво объяснил ситуацию ![]() Вот кусок кода, который уже работает но без реализации последних 2-х улови появления нужных картинок Image1 (+) и Image2 (-) Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg; type TForm1 = class(TForm) ComboBox1: TComboBox; Button1: TButton; Image1: TImage; Image2: TImage; Memo1: TMemo; Memo2: TMemo; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Image1Click(Sender: TObject); procedure Image2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {$R WindowsXP.res} procedure TForm1.Button1Click(Sender: TObject); begin ComboBox1.Items.SaveToFile('ComboBoxList.txt'); close; end; procedure TForm1.FormCreate(Sender: TObject); begin Combobox1.Items.LoadFromFile('ComboBoxList.txt'); end; procedure TForm1.Image1Click(Sender: TObject); var list:string; q:integer; //счетчик цикла begin list:=ComboBox1.Text; Memo1.Lines.LoadFromFile('ComboBoxList.txt'); //загрузка файла в Memo for q:=0 to Memo1.Lines.Count-1 do //цикл до последней строки Memo if Memo1.Lines[q]=list then exit; if Memo1.Lines[q]<>list then Combobox1.Items.Add(list); Combobox1.Items.SaveToFile('ComboBoxList.txt');//сохранение содержимого Memo в файл Memo1.Lines.LoadFromFile('ComboBoxList.txt'); //загрузка файла в Memo ShowMessage('Вы добавили строку'+' '+ComboBox1.Text+' '+'в список!'); end; procedure TForm1.Image2Click(Sender: TObject); var i:integer; //счетчик цикла begin Memo1.Lines.LoadFromFile('ComboBoxList.txt'); //загрузка файла в Memo for i:=0 to Memo1.Lines.Count-1 do //цикл до последней строки Memo if Memo1.Lines[i]=Combobox1.Text then begin Memo1.Lines.Delete(i); //проверка условия и удаление строки Memo1.Lines.SaveToFile('ComboBoxList.txt');//сохранение содержимого Memo в файл Combobox1.Items.LoadFromFile('ComboBoxList.txt'); ShowMessage('Вы удалили строку '+' '+ComboBox1.Text+' '+'из списка!'); end; if Memo1.Lines[i]<>Combobox1.Text then exit; end; End. Последний раз редактировалось Vovich, 19.11.2010 в 21:17. |
#2
|
||||
|
||||
![]() Надо чтоб при вводе текста в MEMO на ходу менялись Image'ы?
Тогда по событию MEMO OnChange надо смотреть, есть ли имеющаяся строка в CB, и в зависимости от этого выставлять значения ImageX.Visible в True/False. А лучше использовать для этих целей TEdit. jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
![]() Цитата:
Я так и делал) но видимо что-то напутал с условиями и у меня отображались либо 2 сразу либо один. перепробовал практически все события((( понимаю что это принципе просто реализовать, но к сожаления не могу... |
#4
|
||||
|
||||
![]() Ну два не могут никак - надо всегда делать сразу
Код:
Image1.Visible:=true; Image2.Visible:=false; ![]() jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
|||
|
|||
![]() Шота я туплю
![]() Код:
procedure TForm1.ComboBox1Change(Sender: TObject); var t:integer; begin Memo2.Lines.LoadFromFile('ComboBoxList.txt'); for t:=0 to Memo2.Lines.Count-1 do if Memo2.Lines[t]=Combobox1.Text then begin Image1.Visible:=true; Image2.Visible:=false; end; if Memo2.Lines[t]<>Combobox1.Text then begin Image1.Visible:=false; Image2.Visible:=true; end; end; при вводе нового значения которого нет в списке минус так и остается висеть... |
#6
|
||||
|
||||
![]() Стоп. Сча перечитаю все сначала.
так... Код:
procedure TForm1.ComboBox1Change(Sender: TObject); var t:integer; fl:boolean; begin Memo2.Lines.LoadFromFile('ComboBoxList.txt'); fl:=false; for t:=0 to Memo2.Lines.Count-1 do if Memo2.Lines[t]=Combobox1.Text then begin fl:=true; break; end; if fl then Image1.Visible:=true; Image2.Visible:=false; end else begin Image1.Visible:=false; Image2.Visible:=true; end; end; jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 19.11.2010 в 22:36. |
#7
|
|||
|
|||
![]() могу скинуть сам проджект...
|
#8
|
||||
|
||||
![]() Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#9
|
|||
|
|||
![]() не получается
Вот ошибки появляются (первые две не значительные) ![]() а понял там еще begin нужен, спасибо ! |
#10
|
||||
|
||||
![]() а ты направил обрабочик события на эту процедуру?
а то не втупляю, что значит "Undeclared Identifier: Image1" можно впринципе попробовать Код:
for t:=0 to Memo2.Lines.Count-1 do BEGIN if Memo2.Lines[t]=Combobox1.Text then begin fl:=true; break; end; END; А еще нашел у себя Код:
if fl then BEGIN Image1.Visible:=true; Image2.Visible:=false; end jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 19.11.2010 в 22:51. |
#11
|
|||
|
|||
![]() Да вот этот го begin'a и не хватало! Спасибо!
Последний раз редактировалось Vovich, 19.11.2010 в 22:54. |