Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DBGrid и RxLookupComboBox

10K
26 мая 2006 года
kraw
6 / / 19.06.2005
Здравствуйте эксперты. Хочу в чтобы в DBGrid'е (Delhi5) после добавления
новой записи и при установке на определенную ячейку программно выпадал
список RxLookupComboBox (RxLib 2.75). В коде написанном ниже идет непопадание
окошка RxLookupComboBox при раскрытии списка в строку DBGrid'a
(в столбец попадаю). Где я неправ?

. . .
type
TMyDBGrid = class(TDBGrid)
public
function CellRect(ACol, ARow: Longint): TRect;
end;

var
Form1: TForm1;
RowNo: integer;
. . .

procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if (Column.Field.FieldName = 'NameEd') and
(gdFocused in State) then begin
RxDBLookupCombo1.Left := Rect.Left + DBGrid2.Left;
RxDBLookupCombo1.Top := Rect.Top + DBGrid2.Top;
RxDBLookupCombo1.Width := Rect.Right - Rect.Left;
RxDBLookupCombo1.Visible := True;
end;
if Column.Field.FieldName = 'NameEd' then
RowNo := Rect.Bottom div TStringGrid(DBGrid2).DefaultRowHeight;
end;

. . .

procedure TFSpDieta.DBGrid2ColEnter(Sender: TObject);
var Rec: TRect;
begin
if DBGrid2.SelectedField.FieldName = 'NameEd' then
if Length(RxDBLookupCombo1.Text)=0 then begin
Rec := TMyDBGrid(DBGrid2).CellRect(DBGrid2.SelectedIndex+1,RowNo);
RxDBLookupCombo1.Left:=Rec.Left;
RxDBLookupCombo1.Top:=DBGrid2.Top+Rec.Top;
if not RxDBLookupCombo1.Visible then
RxDBLookupCombo1.Visible:=True;
RxDBLookupCombo1.Perform(WM_LBUTTONDOWN, 0, 0);
RxDBLookupCombo1.Perform(WM_LBUTTONUP, 0, 0);
end;
end;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог