![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Внедрение компонента в другой компонент [D6, D7, IB6.x]
alkmas © (2003-02-19 15:03:00)Как поместить компонент TDBLookupCombo в ячейку DBGrid.
alkmas (2003-02-20 16:51:00) [1]TDBLookupCombo необходим только для выбора.
Редактирование происходит в DBGrid.
Johnmen (2003-02-20 16:49:00) [2]А TDBLookupCombo позволяет ?
Соловьев (2003-02-20 16:47:00) [3]
> alkmas © (20.02.03 16:46)
> Все как указано в Кулибе сделано и
> Соловьев © (20.02.03 16:44)
Проверил?
alkmas (2003-02-20 16:46:00) [4]Все как указано в Кулибе сделано и
DefaultDrawing:=true;
Лукапное поле позволяет только выбирать но не редактировать
Соловьев (2003-02-20 16:45:00) [5]2 Johnmen ©
действительно :))))
Соловьев (2003-02-20 16:44:00) [6]А он подключен хоть, или ты код скопировал и все? ты Objekt Inspectore выставил?
И еще:
DefaultDrawing:=true;
alkmas (2003-02-20 16:42:00) [7]Не входит в обработчик события OnDrawDataCell.
Оно как-будто не обрабатывается.
Ни чего не пишет
Johnmen (2003-02-20 16:42:00) [8]Вообще говоря, для реализации указанного ничего не надо делать.
Разве что завести лукапное поле в НД. :)
Соловьев (2003-02-20 16:35:00) [9]А что пишет?
alkmas (2003-02-20 16:33:00) [10]Извиняюсь но выше указанный код не работает.
У кого есть другой пример.
Соловьев (2003-02-19 15:39:00) [11]Из кулиб.
procedure TForm1.FormCreate(Sender: TObject);
begin
DBLookupCombo1.Visible := False;
DBComboBox1.Visible := False;
end;
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
if (gdFocused in State) then
begin
if (Field.FieldName = DBLookupCombo1.DataField) then
begin
DBLookupCombo1.Left := Rect.Left + DBGrid1.Left;
DBLookupCombo1.Top := Rect.Top + DBGrid1.top;
DBLookupCombo1.Width := Rect.Right - Rect.Left;
DBLookupCombo1.Visible := True;
end
else if (Field.FieldName = DBComboBox1.DataField) then
begin
DBComboBox1.Left := Rect.Left + DBGrid1.Left;
DBComboBox1.Top := Rect.Top + DBGrid1.top;
DBComboBox1.Width := Rect.Right - Rect.Left;
DBComboBox1.Visible := True;
end
end;
end;
procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
If DBGrid1.SelectedField.FieldName = DBLookupCombo1.DataField then
DBLookupCombo1.Visible := false
else If DBGrid1.SelectedField.FieldName = DBComboBox1.DataField then
DBComboBox1.Visible := false;
end;
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if (key <> chr(9)) then
begin
if (DBGrid1.SelectedField.FieldName = DBLookupCombo1.DataField) then
begin
DBLookupCombo1.SetFocus;
SendMessage(DBLookupCombo1.Handle, WM_Char, word(Key), 0);
end
else if (DBGrid1.SelectedField.FieldName = DBComboBox1.DataField)
then
begin
DBComboBox1.SetFocus;
SendMessage(DBComboBox1.Handle, WM_Char, word(Key), 0);
end;
end;
end;
zx (2003-02-19 15:30:00) [12]> Я хочу самостоятельно внедрить.
давай! : )
так там глянь как сделано.
alkmas (2003-02-19 15:10:00) [13]Я хочу самостоятельно внедрить.
Мне не нужны дополнительные возможности и соответственно
увеличение размера программы.
zx (2003-02-19 15:04:00) [14]Попробуй EhLib там есть хороший Grid.