Добрый вечер!
Прошу направить по правильному направлению)
Задача такая:
Есть 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.