![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подстановка значений [D7, XP]
SveT © (2007-01-16 23:37:00)Здравствуйте!
Прошу помощи -
при выборе (изменении) данных (поле n1 из табл. ZZZ.db) из combobox необходимо, чтобы данные из поля n2 тойже таблицы подставлялись в label "info".
procedure TTRF_TY.ComboBox1KeyPress(Sender: TObject;
var Key: Char);
var s: string;
begin
DMFrm.HQuery.Close;
DMFrm.HQuery.SQL.Clear;
ComboBox1.SelText := '';
DMFrm.HQuery.SQL.Add('SELECT DISTINCT n1, n2 FROM "ZZZ.DB" WHERE n1 LIKE '''+ComboBox1.Text+'%''');
DMFrm.HQuery.Open;
DMFrm.HQuery.First;
s:= ComboBox1.Text;
ComboBox1.Clear;
// Info.Caption :=' - '+DmFrm.HQuery.FieldByName('n2').AsString+' - ';
While not DMFrm.HQuery.Eof do begin
ComboBox1.Items.Add(DMFrm.HQuery.FieldByName('n1').AsString);
DMFrm.HQuery.Next;
end;
ComboBox1.Text := s;
ComboBox1.SelStart := length(s);
end;
C уважением,
Svet (2007-01-17 10:07:00) [1]to Elen
Спасибо!
Elen (2007-01-17 09:54:00) [2]
> только при изменении n1 значения n2 добавляются, а не меняются.
Ну так перед этим кодом поставь
Info.Caption :=''
> изменения происходят только при ручном наборе n1, если
> выбирать курсором из предложенных значений n1, то n2 не
> меняется
Это потому что код этот в keypressed прописан, пропиши его в Change
Svet (2007-01-17 09:49:00) [3]to Elen
While not DMFrm.HQuery.Eof do begin
ComboBox1.Items.Add(DMFrm.HQuery.FieldByName('n1').AsString);
Info.Caption :=Info.Caption+' - '+DmFrm.HQuery.FieldByName('n2').AsString+' - ';
DMFrm.HQuery.Next;
end;
идея верна, только при изменении n1 значения n2 добавляются, а не меняются.
И еще - изменения происходят только при ручном наборе n1, если выбирать курсором из предложенных значений n1, то n2 не меняется.
Elen (2007-01-17 09:08:00) [4]
> необходимо, чтобы данные из поля n2 тойже таблицы подставлялись
> в label "info"
Ну наверное имеется ввиду :
While not DMFrm.HQuery.Eof do begin
ComboBox1.Items.Add(DMFrm.HQuery.FieldByName('n1').AsString);
Info.Caption :=Info.Caption+' - '+DmFrm.HQuery.FieldByName('n2').AsString+' - ';
DMFrm.HQuery.Next;
end;
Sergey13 (2007-01-17 09:04:00) [5]> [0] SveT © (16.01.07 23:37)
Почему бы не воспользоваться ориентированным на это DBLookupCombobox-ом?
SveTT (2007-01-17 09:02:00) [6].