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

Вниз

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

Наверх




Память: 0.45 MB
Время: 0.039 c
2-1195914602
savyhinst
2007-11-24 17:30
2007.12.23
GIF


2-1195897949
WebSQLNeederr
2007-11-24 12:52
2007.12.23
Использование ini для загрузки настроек програмы


4-1180815593
Arexander
2007-06-03 00:19
2007.12.23
Консоль на форме в PageControl. Как задать координаты размещения?


2-1196067619
webpauk
2007-11-26 12:00
2007.12.23
Блокировка компьютера


2-1196074220
WFS
2007-11-26 13:50
2007.12.23
Дайте плз ссылку на статью о работе Delphi7 с MSWord 2003





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский