Создал Unit с новым компонентом типа TPanel с положенными на него объектами
unit SmtFltr;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, System.UITypes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.DBGrids, Data.DB,
Data.Win.ADODB, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Buttons, Vcl.Menus,Vcl.DBCtrls;
type
TPanel1 = class(TPanel)
Label1: TLabel;
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
Button3: TButton;
Panel2: TPanel;
CheckBox1: TCheckBox;
FontDialog1: TFontDialog;
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure GridTitleClick(Column: TColumn);
procedure Button3Click(Sender: TObject);
procedure Button3KeyPress(Sender: TObject; var Key: Char);
procedure Button3Exit(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure Register;
var
Panel1: TPanel1;
GrName, FldName, FldType, Fltr, FltrAdd: string;
implementation
{$R *.dfm}
procedure Register;
begin
RegisterComponents('New7', [TPanel1]);
end;
procedure TPanel1.BitBtn1Click(Sender: TObject);
Var
AGrid :TDBGrid;
begin
AGrid:=Screen.ActiveForm.FindComponent(GrName) as TDBGrid;
if Length(ComboBox1.text)>0 then
Begin
if AGrid.SelectedField.DataType=ftString then
Begin
FltrAdd:=FldName+' like %'+ComboBox1.text+'%';
End
else
FltrAdd:=ComboBox1.text;
if (CheckBox1.Checked) and (Length(Fltr)>0) then
Fltr:=Fltr+' And '+FltrAdd
Else
Fltr:= FltrAdd;
BitBtn1.Hint:='Установить фильтр '+Fltr;
ComboBox1.Text:='';
End;
AGrid.DataSource.DataSet.Filter:=Fltr;
AGrid.DataSource.DataSet.Filtered:=True;
end;
procedure TPanel1.BitBtn2Click(Sender: TObject);
...
end.
Вставляю его в существующий пакет New7 в главном меню Delphi XE3 --> Component --> Install Component ...
Компонент успешно добавляется в пакет. Пакет вместе с компонентом виден в Tool Palette.
Далее выбираю форму, куда хочу добавить новый компонент, выбираю Design закладку редактора, дважды кликаю по новому компоненту в Tool Palette и на форме появляется новый объект, состоящий
ТОЛЬКО из одной панельки.
Что пошло не так?