Новичок
Профиль
Группа: Участник
Сообщений: 2
Регистрация: 14.5.2012
Репутация: нет Всего: нет
|
Необходимо построить многоаспектную систему информации. Программа готова, но: она должна классифицировать по двум признакам, а у меня по 3... И еще что-то у меня с флагами запутано - вывод идет, если признаки начать выбирать от ComboBox3 к ComboBox1... Помогите исправить эти пункты! Мозг уже не варит. Код | unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Button2: TButton; ComboBox1: TComboBox; ComboBox2: TComboBox; Memo1: TMemo; Memo2: TMemo; ComboBox3: TComboBox; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure ComboBox3Change(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; mas:array[0..9,0..2] of string; i,j,k,n:integer; combx1,combx2,combx3,combx1_1,combx2_2,combx3_3:Boolean; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin combx1:=false; combx2:=False; combx3:=false; mas[i,0]:=Edit1.text+' '; mas[i,1]:=Edit2.text+' '; mas[i,2]:=Edit3.text+' '; for k:=0 to i-1 do begin if ((mas[i,0][1])=(mas[k,0][1])) then combx2:=true; if ((mas[i,1])=(mas[k,1])) then combx1:=true; if ((mas[i,2])=(mas[k,2])) then combx3:=true; end; if combx2=False then ComboBox1.Items.Add(mas[i,0][1]); if combx1=False then ComboBox2.Items.Add(mas[i,1]); if combx3=False then ComboBox3.Items.Add(mas[i,2]); if i=1 then ComboBox1.ItemIndex:=0; ComboBox2.ItemIndex:=0; ComboBox3.ItemIndex:=0; Inc(i); Inc(k); end; procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Clear; for k:=0 to i do Memo1.Lines.Add(mas[k,0]+' '+mas[k,1]+' '+mas[k,2]); end; procedure TForm1.ComboBox1Change(Sender: TObject); begin combx3_3:=True; Memo2.Clear; if combx1_1 then for k:=0 to i-1 do if (ComboBox1.Text=mas[k,0][1]) and (ComboBox2.Text=(mas[k,1]))then Memo2.Lines.Add(mas[k,0]+' '+mas[k,1]+' '+mas[k,2]); if combx2_2 then for k:=0 to i-1 do if (ComboBox3.Text=mas[k,2]) and (ComboBox1.Text=(mas[k,0][1]))then Memo2.Lines.Add(mas[k,0]+' '+mas[k,1]+' '+mas[k,2]); combx2_2:=False; combx3_3:=False; end; procedure TForm1.ComboBox2Change(Sender: TObject); begin combx1_1:=True; Memo2.Clear; if combx3_3 then for k:=0 to i-1 do if ((ComboBox2.Text)=mas[k,1]) and ((ComboBox1.Text)=mas[k,0][1])then Memo2.Lines.Add(mas[k,0]+' '+mas[k,1]+' '+mas[k,2]); if combx2_2 then for k:=0 to i-1 do if ((ComboBox3.Text)=mas[k,2]) and ((ComboBox1.Text)=mas[k,0][1])then Memo2.Lines.Add(mas[k,0]+' '+mas[k,1]+' '+mas[k,2]); combx2_2:=False; combx3_3:=False; end; procedure TForm1.ComboBox3Change(Sender: TObject); begin combx2_2:=True; Memo2.Clear; if combx3_3 then for k:=0 to i-1 do if ((ComboBox3.Text)=mas[k,2]) and ((ComboBox1.Text)=mas[k,0][1])then Memo2.Lines.Add(mas[k,0]+' '+mas[k,1]+' '+mas[k,2]); if combx1_1 then for k:=0 to i-1 do if ((ComboBox3.Text)=mas[k,2]) and ((ComboBox2.Text)=mas[k,1][1])then Memo2.Lines.Add(mas[k,0]+' '+mas[k,1]+' '+mas[k,2]); combx1_1:=False; combx2_2:=False; end; end.
|
Присоединённый файл ( Кол-во скачиваний: 1 )
Project1.rar 0,21 Kb
|