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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2014, 11:39   #1
Spiritas
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию Проблема в порядке сохранение вопроса в ini

Итого: Пытаюсь сделать чтобы при нажатии на кнопку программа сохраняла в ini файл
Но он сохраняет не на кликнутом в листбоксе вопросе, а просто сохраняет на последний вопрос допустим
[QuestCount]
value=123
то есть присваивает неправильные значение в ini

нужно чтоб он присваивал допустим если я выберу 1 вопрос на листбоксе

[quest1]
quest=214
answer1=ничего нет
answer2=ничего нет
answer3=ничего нет
answer4=ничего нет
prav=ничего нет

а он присваивает

[quest123]
quest=21445
answer1=ничего нет
answer2=ничего нет
answer3=ничего нет
answer4=ничего нет
prav=ничего нет
Spiritas вне форума Ответить с цитированием
Старый 16.05.2014, 11:40   #2
Spiritas
Пользователь
 
Регистрация: 05.12.2010
Сообщений: 22
По умолчанию

Код:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Menus,iniFiles, ComCtrls, unit4, jpeg, ExtCtrls;

type
  TForm3 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    Memo4: TMemo;
    Memo5: TMemo;
    Memo6: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    ListBox1: TListBox;
    StatusBar1: TStatusBar;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    Label7: TLabel;
    Button1: TButton;
    Image1: TImage;
    Memo7: TMemo;
    procedure N1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  inif:TIniFile;
  IntNextQuest:integer;
  s:string;
implementation

{$R *.dfm}

procedure TForm3.N1Click(Sender: TObject);
var
i,j:integer;
begin
if OpenDialog1.Execute then
  begin
    IntNextQuest:=1;
    ListBox1.Items.Clear;
    IniF:= TIniFile.Create (OpenDialog1.FileName);
    Memo1.Clear;
    Memo2.Clear;
    Memo3.Clear;
    Memo4.Clear;
    Memo5.Clear;
    Memo6.Clear;
    Memo7.Clear;
    StatusBar1.Panels.Clear;
    StatusBar1.Panels.Add.Text:='Всего вопросов:';
    StatusBar1.Panels[0].Width:=100;
    StatusBar1.Panels.Add.Text:=(inif.ReadString('QuestCount','value',''));
    Memo1.Lines.Add(inif.ReadString('quest'+inttostr(IntNextQuest ),'quest','ничего нет'));
    Memo2.Lines.Add(inif.ReadString('quest'+inttostr(IntNextQuest),'answer1','ничего нет'));
    Memo3.Lines.Add(inif.ReadString('quest'+inttostr(IntNextQuest),'answer2','ничего нет''));
    Memo4.Lines.Add(inif.ReadString('quest'+inttostr(IntNextQuest),'answer3',ничего нет'));
    Memo5.Lines.Add(inif.ReadString('quest'+inttostr(IntNextQuest),'answer4','ничего нет'));
    Memo6.Lines.Add(inif.ReadString('quest'+inttostr(IntNextQuest),'prav','ничего нет'));
    Memo7.Lines.Add(inif.ReadString('Timer','time',''));

try
IntNextQuest:=0;
  j := strtoint(inif.ReadString('QuestCount','value','')) - 1;
  Listbox1.Items.Clear;
  for i:=0 to j do
  begin
  inc(IntNextQuest);
  s:= inif.ReadString('quest'+inttostr(IntNextQuest ),'quest','ничего нет');
  if s <> '' then Listbox1.Items.Add(s);
  end;
finally
//  iniF.Free;
end;
end;
end;

procedure TForm3.ListBox1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ListBox1.Items.Count - 1 do
    if listbox1.Selected[i] then
    Begin
      Memo1.Text := inif.ReadString('quest'+inttostr(i + 1),'quest','ничего нет');
      Memo2.Text := inif.ReadString('quest'+inttostr(i + 1),'answer1','ничего нет');
      Memo3.Text := inif.ReadString('quest'+inttostr(i + 1),'answer2','ничего нет');
      Memo4.Text := inif.ReadString('quest'+inttostr(i + 1),'answer3','ничего нет');
      Memo5.Text := inif.ReadString('quest'+inttostr(i + 1),'answer4','ничего нет');
      Memo6.Text := inif.ReadString('quest'+inttostr(i + 1),'prav','ничего нет');
    end;
end;

procedure TForm3.Button1Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to ListBox1.Items.Count - 1 do
    if listbox1.Selected[i] then
IniF.WriteString('quest'+inttostr(IntNextQuest),'quest',Memo1.Text);
IniF.WriteString('quest'+inttostr(IntNextQuest),'answer1',Memo2.Text);
IniF.WriteString('quest'+inttostr(IntNextQuest),'answer2',Memo3.Text);
IniF.WriteString('quest'+inttostr(IntNextQuest),'answer3',Memo4.Text);
IniF.WriteString('quest'+inttostr(IntNextQuest),'answer4',Memo5.Text);
IniF.WriteString('quest'+inttostr(IntNextQuest),'prav',Memo6.Text);
inif.WriteString('Timer','time','');
end;
end.

Последний раз редактировалось Spiritas; 16.05.2014 в 11:44.
Spiritas вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение настроек в ini файле Nipel Общие вопросы Delphi 4 17.03.2012 18:55
Сохранение списка в ini файл Vladya Помощь студентам 2 28.07.2010 16:30
сохранение настроек в ini IpCod Общие вопросы Delphi 14 05.10.2009 23:01
Сохранение из ListBox в *.ini файл xLoMMx C++ Builder 11 26.08.2009 14:00
Сохранение StringGrid, создание .ini! Nemesisking Общие вопросы Delphi 5 24.09.2007 08:23