Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
Вниз
Передача данных Найти похожие ветки
← →
Dagir © (2008-09-04 09:56) [0]Здравствуйте! Столкнулся вот с чем: Форма1 - главная, на ней TreeView, IBQuery(несколько-для дерева, DBGrid-а и т.д),
dataSet(тоже несколько) и DBGrid. Кликаем на TreeView и в DBGrid-е появляется список. Форма2-фактически сторока
ввода параметров расширенного поиска, так вот при нажатии кнопки "наити" на этой форме, данные которые были получены
нужно передать в IBQuery формы1, в нем уже прописан текст запроса для DBGreed - а, но передать - то я как раз ничего
не могу кто - нить подскажет как это сделать, может на примерах хоть покажете?
(форма2 вызывается кнопкой в форме1. Если нужны куски кода говорите какие.)
← →
Сергей М. © (2008-09-04 09:58) [1]
> форма2 вызывается кнопкой в форме1. Если нужны куски кода
> говорите какие
Вот кусок этого самого "вызывается" и покажи ..
← →
oldman © (2008-09-04 09:59) [2]unit form1
uses form2
form1.ченадо:=form2.ченадо
← →
Dagir © (2008-09-04 10:12) [3]форма1
procedure TMainFrame.btnFilterExClick(Sender: TObject);
begin
AdvancedSearchShow;
end;
форма2
procedure AdvancedSearchShow;
begin
with TAdvancedSearchForm.Create(Application) do
begin
BBB;
Show;
end;
end;
function TAdvancedSearchForm.BBB: Boolean;
var
fhh:TMainFrame;
begin
fhh:=TMainFrame.Create(nil);
try
with fhh.IBQParam do
begin
SQL.Clear;
SQL.Add("select distinct PAR_NAME, PAR_ID from PAR where PAR_NAME <> :str order by PAR_NAME ");
ParamByName("str").AsString := "";
Open;
First;
while not Eof do
begin
ComboBox1.Items.AddObject( FieldByName("PAR_NAME").AsString,
Pointer( FieldByName("PAR_ID").AsInteger) );
Next;
end;
Close;
end;
finally
fhh.free;
end;
end;
← →
Плохиш © (2008-09-04 10:16) [4]
> Dagir © (04.09.08 09:56)
1. У формы2 создаются требуемые свойства, через которые форма1 может установить и получить требуемые параметры.
2. Так же у формы2 создаётся событие, которое будет выполняться формой2 при нажатии в ней кнопки "наити". В форме1 создаётся метод, который при вызове ею формы2 будет присвоено выше указанному событию.
← →
Сергей М. © (2008-09-04 10:17) [5]Так ..
И где в этом коде собственно проблема ?
← →
Сергей М. © (2008-09-04 10:21) [6]Где-то я это уже видел) ..
> Dagir © (04.09.08 10:12) [3]
TMainFrame - это класс основной формы ?
А почему она обзывается фреймом ?
Форма эта уже существует, так за каким же лешим ты создаешь еще одну форму такого же класса
> fhh:=TMainFrame.Create(nil);
?
← →
Dagir © (2008-09-04 10:31) [7]Сергей М. Frame потому что Frame на форме. А создается заново, потому что, если на прямую обращяться к ней то воспользоваться ее компонентами не получится.
← →
Dagir © (2008-09-04 10:32) [8]Плохиш. А пример можешь какой - нить, а то я в общем виде так особо не понимаю. заранее спасибо
← →
Сергей М. © (2008-09-04 10:36) [9]
> создается заново, потому что, если на прямую обращяться к ней то воспользоваться ее компонентами не получится
Чтой-то вдруг ?
И вообще осознаешь при этом, что создавая 2-й экземпляр объекта-фрейма, ты тем самым создаешь отдельный экз-р объекта IBQuery и обращаешься именно к нему, а не к оригинальному объекту, о котором собственно и идет речь в вопросе ?
← →
Сергей М. © (2008-09-04 10:41) [10]
procedure AdvancedSearchShow;
begin
with TAdvancedSearchForm.Create(Application) do
begin
BBB(MyIBQuery);
..
end;
end;
function TAdvancedSearchForm.BBB(AQuery: TIBQuery): Boolean;
begin
with AQuery do
..
end;
Так сойдет ?
← →
Плохиш © (2008-09-04 10:45) [11]
> Dagir © (04.09.08 10:32) [8]
> Плохиш. А пример можешь какой - нить
Соурскод VCL полон примерами.
PS. После того маразма из [3] и объяснения из [7] объяснения нужно начинать с самых основ, описанных в любой книжке.
← →
Dagir © (2008-09-04 10:46) [12]Сергей М. Но ведь IBQuery который в фрейме связан с DBGrid-ом, как я потом выведу все на таблицу?
← →
Сергей М. © (2008-09-04 10:53) [13]
> IBQuery который в фрейме связан с DBGrid-ом
А по барабану с чем он связан !
Ты же утверждаешь, что "на прямую воспользоваться ее компонентами не получится" - вот тебе код, демонстрирующий что твое утверждение ложно ..
> как я потом выведу все на таблицу
Что "все" ? Что значит "выведу" и на какую такую "таблицу" ?
← →
Dagir © (2008-09-04 11:13) [14]ну я получаю критерии поиска, запрашиваю соответствующие данные в базе, через IBQuery, он через DataSet выводит все на DBGrid. Все это должно работать.
← →
Сергей М. © (2008-09-04 11:23) [15]
> через IBQuery, он через DataSet выводит все на DBGrid
Это как это ?
IBQuery и так уже есть наследник TDataset, что еще за прокладка в виде непонятного "DataSet" у тебя фигурирует между IBQuery и DBGrid ?
← →
Dagir © (2008-09-04 11:24) [16]это я просто так не хорошо выразился, все так как ты и говоришь
← →
Сергей М. © (2008-09-04 11:26) [17]Надо понимать, проблема рассосалась и вопрос исчерпан ?)
← →
Dagir © (2008-09-04 11:27) [18]ну, будем посмотреть
← →
Сергей М. © (2008-09-05 19:54) [19]
> Dagir © (04.09.08 11:27) [18]
Привет "другу" Fynjy)
← →
Anatoly Podgoretsky © (2008-09-05 19:58) [20]> Dagir (04.09.2008 10:31:07) [7]
У тебя наверно и метки и кнопки на форме есть, тогда TMainLabelFrameButton
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.049 c