Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Внизsetfocus Найти похожие ветки
← →
Quart (2007-11-30 10:13) [0]На форме есть dbgrid & checklistbox;
если перейти из dbgrida в checklistbox (т.е. щелкнуть мышью) , то выбрать итем чеклистбокса удается лишь только после второго нажатия.
Видимо, при первом нажатии чеклистбокс получает фокус, а потом уже можно выбирать итемы.
Пробовал:
procedure TForm1.CheckListBox1Enter(Sender: TObject);
begin
Form1.ActiveControl:=CheckListBox1;
end;
procedure TForm1.CheckListBox1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
checklistbox1.SetFocus
end;
и еще OnEnter - ничего не вышло. Подскажите, что делать?
← →
ЮЮ © (2007-11-30 10:30) [1]В новом проекте (D7) с одним dbgrid и одним checklistbox без всяких обработчиков всё работет без указанных тобою проблем.
← →
Quart (2007-11-30 10:44) [2]У меня чеклистбокс заполняется динамически-каждый раз при выборе строчки дбгрида. Может по-этому не работает..
← →
ЮЮ © (2007-11-30 10:59) [3]> Может по-этому не работает..
Мой код не приводит к таким последствиям:procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
var
i: integer;
begin
CheckListBox1.Items.BeginUpdate;
try
CheckListBox1.Items.Clear;
for i := 0 to DataSet.FieldCount - 1 do begin
CheckListBox1.Items.Insert(
CheckListBox1.Items.Count,
DataSet.Fields[i].AsString
);
end;
finally
CheckListBox1.Items.EndUpdate;
end;
end;
Показывай свой :)
← →
Quart (2007-11-30 11:27) [4]у меня обрабатывается событие:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
a:string;
i:integer;
begin
OutRect:=Rect;
if (gdselected in state) then
begin
checklistbox1.Items.Clear;
query3.active:=false;
form2.Table2.Active:=true;
a:=query2mat.Value;
query3.ParamByName("p1").AsString:=a;
query3.Active:=true;
query3.First;
if query3.RecordCount<>0 then begin
query3.First;
for i:=0 to query3.recordcount-1 do begin
checklistbox1.Items.Add(query3.fieldbyname("nomer").AsString);
query3.Next;
end;
end;
end;
end;
← →
clickmaker © (2007-11-30 17:57) [5]
> [4] Quart (30.11.07 11:27)
зачем это все писать в DrawColumnCell? Эта процедура вообще ничем не должна заниматься, кроме рисования.
Обрабатывай DataSet.AfterScroll, если надо именно "заполняется динамически-каждый раз при выборе строчки дбгрида"
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c