Форум: "Базы";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
ВнизВнедрение компонента в другой компонент Найти похожие ветки
← →
alkmas (2003-02-19 15:03) [0]Как поместить компонент TDBLookupCombo в ячейку DBGrid.
← →
zx (2003-02-19 15:04) [1]Попробуй EhLib там есть хороший Grid.
← →
alkmas (2003-02-19 15:10) [2]Я хочу самостоятельно внедрить.
Мне не нужны дополнительные возможности и соответственно
увеличение размера программы.
← →
zx (2003-02-19 15:30) [3]> Я хочу самостоятельно внедрить.
давай! : )
так там глянь как сделано.
← →
Соловьев (2003-02-19 15:39) [4]Из кулиб.
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;
← →
alkmas (2003-02-20 16:33) [5]Извиняюсь но выше указанный код не работает.
У кого есть другой пример.
← →
Соловьев (2003-02-20 16:35) [6]А что пишет?
← →
alkmas (2003-02-20 16:42) [7]Не входит в обработчик события OnDrawDataCell.
Оно как-будто не обрабатывается.
Ни чего не пишет
← →
Johnmen (2003-02-20 16:42) [8]Вообще говоря, для реализации указанного ничего не надо делать.
Разве что завести лукапное поле в НД. :)
← →
Соловьев (2003-02-20 16:44) [9]А он подключен хоть, или ты код скопировал и все? ты Objekt Inspectore выставил?
И еще:
DefaultDrawing:=true;
← →
Соловьев (2003-02-20 16:45) [10]2 Johnmen ©
действительно :))))
← →
alkmas (2003-02-20 16:46) [11]Все как указано в Кулибе сделано и
DefaultDrawing:=true;
Лукапное поле позволяет только выбирать но не редактировать
← →
Соловьев (2003-02-20 16:47) [12]
> alkmas © (20.02.03 16:46)
> Все как указано в Кулибе сделано и
> Соловьев © (20.02.03 16:44)
Проверил?
← →
Johnmen (2003-02-20 16:49) [13]А TDBLookupCombo позволяет ?
← →
alkmas (2003-02-20 16:51) [14]TDBLookupCombo необходим только для выбора.
Редактирование происходит в DBGrid.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.03.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c