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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2012, 12:47   #1
Avillen
 
Регистрация: 16.07.2011
Сообщений: 9
Восклицание Запись данных CheckListBox в файл

На форме есть ComboBox, содержащий 20 различных вариантов, и есть CheckListBox, данные которого меняются в зависимости от элемента ComboBox (при чём, количество элементов CheckListBox различное для каждого значения ComboBox, и при этом фиксированное).

Пример:
если в ComboBox выбран элемент Компьютеры, то в CheckListBox появляются элементы монитор, принтер, клава, мышь и т.д. - допустим всего 15 элементов,
а если в ComboBox выбран элемент Авто, то в CheckListBox появляются Toyota, Honda, Mazda и т.д. - всего 20 элементов

Так вот, собственно, проблема состоит в том, как записать название элемента ComboBox и названия соответствующих выделенных элементов CheckListBox в файл.

В файле должно получиться примерно следующее:
Компьютеры
Монитор
Клава
Мышь
Авто
Honda
Mazda
Монитор
Принтер
Мышь
Авто
Toyota
Avillen вне форума Ответить с цитированием
Старый 23.10.2012, 13:29   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а в какой файл (INI, текстовый, csv, бинарный, XML и т.п.)?

И вообще, давайте исходный код Вашей формы. помозгуем вместе над сохранением/восстановлением...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.10.2012, 13:52   #3
Avillen
 
Регистрация: 16.07.2011
Сообщений: 9
По умолчанию

формат файла dat текстовый.[IMG]D:\1.jpg[/IMG]
Код:
unit catalog;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, CheckLst;
type
TFormCatalog = class(TForm)
name: TLabel;
city: TLabel;
street: TLabel;
building: TLabel;
housing: TLabel;
office: TLabel;
phone: TLabel;
fax: TLabel;
email: TLabel;
page: TLabel;
activity: TLabel;
product: TLabel;
timetable: TLabel;
cbb_city: TComboBox;
cbb_street: TComboBox;
medt_building: TMaskEdit;
medt_housing: TMaskEdit;
medt_office: TMaskEdit;
medt_phone: TMaskEdit;
medt_fax: TMaskEdit;
lbl_mobile_phone: TLabel;
medt_mobile_phone: TMaskEdit;
cbb_name: TComboBox;
edt_email: TEdit;
edt_page: TEdit;
cbb_activity: TComboBox;
chk1: TCheckBox;
chk2: TCheckBox;
chk3: TCheckBox;
chk4: TCheckBox;
chk5: TCheckBox;
chk6: TCheckBox;
chk7: TCheckBox;
medt1: TMaskEdit;
medt2: TMaskEdit;
medt3: TMaskEdit;
medt4: TMaskEdit;
medt5: TMaskEdit;
medt6: TMaskEdit;
medt7: TMaskEdit;
btn_new: TButton;
btn_save: TButton;
chklst_product: TCheckListBox;
btn_next: TButton;
btn_previous: TButton;
procedure cbb_activityChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
end;
var
  FormCatalog: TFormCatalog;
implementation
type
  TCatalog=record
    C_name: string[50];
    C_city: string[20];
    C_street: string[20];
    C_building: string[3];
    C_housing: string[2];
    C_office: string[4];
    C_phone: string[20];
    C_fax: string[20];
    C_mobile_phone: string[20];
    C_email: string[20];
    C_page: string[20];
    C_activity: string[20];
    C_product: string[20];
    C_timetable1: string[15];
    C_timetable2: string[15];
    C_timetable3: string[15];
    C_timetable4: string[15];
    C_timetable5: string[15];
    C_timetable6: string[15];
    C_timetable7: string[15];
end;

var
 CatalogFile: file of TCatalog;
 CatalogData: TCatalog;
 pos1: integer;

procedure TFormCatalog.cbb_activityChange(Sender: TObject);
begin
  chklst_product.Clear;
  case cbb_activity.ItemIndex of
    0:
      begin
        chklst_product.Items.Add('1');
        chklst_product.Items.Add('2');
        chklst_product.Items.Add('3')
      end;
    1:
      begin
        chklst_product.Items.Add('q');
        chklst_product.Items.Add('w');
        chklst_product.Items.Add('e')
      end;
    2:
      begin
        chklst_product.Items.Add('r');
        chklst_product.Items.Add('t');
        chklst_product.Items.Add('y')
      end;
    3:
      begin
       chklst_product.Items.Add('u');
        chklst_product.Items.Add('i');
        chklst_product.Items.Add('o')
      end;
    4:
      begin
        chklst_product.Items.Add('p');
        chklst_product.Items.Add('[');
        chklst_product.Items.Add(']')
      end;
    5:
      begin
        chklst_product.Items.Add('a');
        chklst_product.Items.Add('s');
        chklst_product.Items.Add('d')
      end;
end;

procedure TFormCatalog.FormCreate(Sender: TObject);
begin
  FormCatalog.cbb_name.Text:=CatalogData.C_name;
  FormCatalog.cbb_city.Text:=CatalogData.C_city;
  FormCatalog.cbb_street.Text:=CatalogData.C_street;
  FormCatalog.medt_building.Text:=CatalogData.C_building;
  FormCatalog.medt_housing.Text:=CatalogData.C_housing;
  FormCatalog.medt_office.Text:=CatalogData.C_office;
  FormCatalog.medt_phone.Text:=CatalogData.C_phone;
  FormCatalog.medt_fax.Text:=CatalogData.C_fax;
  FormCatalog.medt_mobile_phone.Text:=CatalogData.C_mobile_phone;
  FormCatalog.edt_email.Text:=CatalogData.C_email;
  FormCatalog.edt_page.Text:=CatalogData.C_page;
  FormCatalog.cbb_activity.Text:=CatalogData.C_activity
end;

end.
Avillen вне форума Ответить с цитированием
Старый 23.10.2012, 13:57   #4
Avillen
 
Регистрация: 16.07.2011
Сообщений: 9
По умолчанию

На форме название фирмы, город, улица, дом, корпус здания, офис, телефон,факс, мобильный, e-mail, интернет адрес, вид деятельности, в зависимости от которого свой список продукции (CheckListBox), 7 CheckBox-ов соответствующих дням недели и 7 MaskEdit со значением времени работы в эти дни (для каждого дня свой)
Avillen вне форума Ответить с цитированием
Старый 23.10.2012, 16:59   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

чем дальше, тем больше у меня возникают сомнения в том, что Вы просите действительно то, что Вам нужно...

попробуйте такой код на кнопке "Сохранить чекбоксы":
Код:
procedure TForm2.btSaveClick(Sender: TObject);
var i : integer;
    ts : TStringList;
    s, sFileName : string;

begin
   ts := TStringList.Create;
   ts.Append('пункт cbb_activity = '+cbb_activity.Text);
   for i := 0 to chklst_product.Items.Count - 1 do begin
     s := chklst_product.Items[i];
     if chklst_product.Checked[i] then s := s + '[x]'
     else s := s + '[ ]';
     ts.Append(s)
   end;
   sFileName := ExtractFilePath(Application.ExeName)+'saved.dat';
   ts.SaveToFile(sFileName);
   FreeAndNil(ts);
   ShowMessage('файл '+sFileName+' успешно создан.')
end;
Вложения
Тип файла: rar Example.rar (1.8 Кб, 12 просмотров)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись данных данных из ListBox в файл Jrcfyf C# (си шарп) 3 20.01.2012 15:44
Запись данных в файл Pti44ka Помощь студентам 5 10.12.2009 20:09
запись данных в файл Real Injenegr Помощь студентам 2 23.07.2009 03:21
Запись данных в файл на С# fractal Помощь студентам 15 17.02.2009 22:14
запись данных в файл Артэс Общие вопросы C/C++ 13 09.06.2007 22:01