Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Combobox+Memo


Автор: Anakin 25.10.2007, 10:49
Всем драсте.
Мусолить не буду перейду сразу к делу..
Использую Mysql сервер, для связи с ним использую компонент MYDAC
есть таблица с названием ttask
в ней поля:
ID= Счетчик, индексное поле.
task= поле максимальное хранение текста 255 символов.
ntask= поле с максимальным вводом символов 20

На форме стоит:
Combobox= в котором должны отображтся поля ntask
Memo=тут отображаетса поле task
Edit1= тут поле ID
Необходимо чтобы при выборе в комбобоксе данных в мемо заносились данных и в Edit
выше описал что за что отвечает.
вот сам попробовал на мудрить почитал статьи на форуме и в этоге получилось такая байда:

Код

procedure Tfrmtask.FormShow(Sender: TObject);
begin
  MainForm.maccess.Close;
  MainForm.maccess.SQL.Clear;
  MainForm.maccess.SQL.Add('SELECT ID,ntask FROM ttask;');
  MainForm.maccess.Open;
  cbtask.Clear;
  while not MainForm.maccess.Eof do
  begin
    cbtask.Items.AddObject(MainForm.maccess.Fields.Fields[1].AsString, Pointer(MainForm.maccess.Fields.Fields[0].AsInteger));
    MainForm.maccess.Next;
  end;
end;


Бокс заполняетса данными что мне нужна. а вот незнаю как теперь заполнить данные в Мемо и в ЕДИТ
Подскажите плизз...
Структыру таблицы такая.
ID  | task         | ntask  |
=================
1   | sometext | Name1|
2   |sometext2| name2 |

Автор: Rodman 25.10.2007, 10:57
Код

procedure Tfrmtask.FormShow(Sender: TObject);
begin
  MainForm.maccess.Close;
  MainForm.maccess.SQL.Clear;
  MainForm.maccess.SQL.Add('SELECT ID,ntask FROM ttask;');
  MainForm.maccess.Open;
  cbtask.Clear;
  while not MainForm.maccess.Eof do
  begin
    cbtask.Items.AddObject(MainForm.maccess.Fields.Fields[1].AsString, Pointer(MainForm.maccess.Fields.Fields[0].AsInteger));
    MainForm.maccess.Next;
  end;
end;

procedure TForm1.cbtaskChange(Sender: TObject);
begin
  MainForm.maccess.Close;
  MainForm.maccess.SQL.Clear;
  MainForm.maccess.SQL.Add('SELECT ID,ntask, task FROM ttask WHERE (ID=:Prm);');
  MainForm.maccess.Parameters.ParamByName('Prm').Value:=IntToStr(integer(cbtask.Items.Objects[cbtask.ItemIndex]));
  MainForm.maccess.Open;
  Edit1.Clear;
  Memo1.Clear;
  Edit1.Text:=MainForm.maccess.Fields.Fields[0].AsString;
  Memo1.Text:=MainForm.maccess.Fields.Fields[2].AsString;
end;
вот так, если я правильно понял все!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)