13.05.2012, 20:46
|
Прохожий
|
|
Регистрация: 23.12.2011
Сообщения: 8
Репутация: 10
|
|
проблемы с прогой "Кулинарная книга"
Нашел прогу "Кулинарная книга", однако когда пытаюсь запустить ее в делфи выдает ошибку "Class TpFIBDataSet not found...". В чем дело?
Код:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DBCtrls, StdCtrls, DB, FIBDataSet, pFIBDataSet,
DatM, FIBQuery, pFIBQuery, pFIBStoredProc, Addrecept,
SpravRec, Spr, RecShow, Unit2, Unit3, Avtor;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
GroupBox1: TGroupBox;
Items: TDBLookupComboBox;
ItList: TListBox;
Button1: TButton;
Button2: TButton;
Button4: TButton;
GroupBox2: TGroupBox;
DataSource1: TDataSource;
DS1: TpFIBDataSet;
Proc: TpFIBStoredProc;
Q1: TpFIBQuery;
Recepts: TDBLookupListBox;
DataSource2: TDataSource;
DS2: TpFIBDataSet;
Button3: TButton;
Q2: TpFIBQuery;
Memo1: TMemo;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
procedure Search;
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
t: Boolean;
implementation
uses Math;
{$R *.dfm}
procedure TMainForm.FormShow(Sender: TObject);
begin
DS1.Active:= true;
t:= false;
//DS2.Active:= true;
end;
procedure TMainForm.Button1Click(Sender: TObject);
var s: String;
id, i: Integer;
begin
Memo1.Clear;
Memo1.Lines.Add('Здесь будет список рецептов, которые нашла программа. '+
'При нажатии кнопки подробнее вы увидете сам рецепт');
s:= DS1.Fields[1].Value;
id:= DS1.Fields[0].Value;
for i:= 0 to ItList.Items.Count-1 do
if Integer(ItList.Items.Objects[i])= id then
begin
MessageDlg('Такой продукт уже введен!!',mtWarning, [mbOK], 0);
Exit;
end;
ItList.Items.AddObject(S,TObject(id));
end;
procedure TMainForm.Button4Click(Sender: TObject);
begin
ItList.DeleteSelected;
end;
procedure TMainForm.Search;
var i, id: Integer;
name: String;
begin
Q1.Transaction.StartTransaction;
for i := 0 to ItList.Items.Count-1 do
begin
id:= Integer(ItList.Items.Objects[i]);
name:= ItList.Items.Strings[i];
Q1.SQL.Text:= 'INSERT INTO TEMP VALUES(:ID, :N)';
Q1.ExecWP([id, name]);
end;
Q1.SQL.Text:= 'INSERT INTO RECEPT1 SELECT RECEPT.ID, RECEPT.NAME, RECEPT.TEXT, RECEPT.KOL '+
'FROM RECEPT INNER JOIN LIST ON (RECEPT.ID = LIST.ID_REC) '+
'INNER JOIN TEMP ON (TEMP.ID = LIST.ID_IT)';
Q1.ExecQuery;
DS2.Close;
DS2.ParamByName('K').Value:= ItList.Items.Count;
DS2.Open;
end;
procedure TMainForm.Button2Click(Sender: TObject);
var count: Integer;
begin
Q1.Transaction.Commit;
Search;
t:= true;
DS1.Close;
DS1.Open;
count:= DS2.RecordCount;
if count = 0 then
begin
Memo1.Clear;
Memo1.Lines.Add('Не было найдено рецептов по введенным продуктам.');
end;
end;
procedure TMainForm.N8Click(Sender: TObject);
var ref: TAddRece;
begin
ref:=TAddRece.Create(Application);
ref.Open;
Ref.Execute;
ref.Free;
end;
procedure TMainForm.N6Click(Sender: TObject);
var ref: TSpravoch;
begin
Spravoch.Show;
end;
procedure TMainForm.N7Click(Sender: TObject);
begin
SprRec.Show;
end;
procedure TMainForm.Button3Click(Sender: TObject);
var str: String;
id: Integer;
begin
Str:= DS2.Fields[2].Value;
id:= DS2.Fields[0].Value;
Form2.DS1.Close;
Form2.DS1.ParamByName('K').Value:= id;
Form2.DS1.Open;
Form2.Memo1.Clear;
Form2.Memo1.Lines.Add(str);
Form2.Show;
end;
procedure TMainForm.N10Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TMainForm.N4Click(Sender: TObject);
begin
Form4.Show;
end;
procedure TMainForm.N5Click(Sender: TObject);
begin
Application.Terminate;
end;
end.
|