Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.13;
Скачать: CL | DM;

Вниз

Внедрение компонента в другой компонент   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
6-39444
manner
2003-01-24 19:51
2003.03.13
Как запустить из Delphi IE с определенным URL?


3-39182
mfender
2003-02-20 16:16
2003.03.13
MS Access + Delphi


14-39581
Amit
2003-02-27 07:21
2003.03.13
Модератор откликнись please...


14-39552
Mixan
2003-02-26 20:41
2003.03.13
А как посмотреть только свои сообщения


1-39398
krotik
2003-03-03 10:26
2003.03.13
Открытие файла