Ну раз idd у тебя ftInteger, то нужно наверно так:
Код:
Query2.ParamByName('idd').Value:= StrToInt(DBEdit4.Text);
И что вообще за бред? Ты задал параметр, затем открыл кверик (хотя возможно он уже открыт=/), сделал грид видимым зачем то, если потом ты опять закрываешь-открываешь этот многострадальный кверик.
Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
if Query2.Active then //если открыт, то
Query2.Close; //закрываем
Query2.ParamByName('idd').Value:= StrToInt(DBEdit4.Text); //задаем значение параметра
Query2.Open; //получаем результат запроса
DBGrid4.Visible:=true; //отображаем грид
end;