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

Вниз

Передача данных   Найти похожие ветки 

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

Наверх




Память: 0.51 MB
Время: 0.018 c
2-1220417936
TRSteep
2008-09-03 08:58
2008.10.12
Отправка почты


15-1216776408
Граф3
2008-07-23 05:26
2008.10.12
Можно ли в html нарисовать график?


15-1219135239
Petr V. Abramov
2008-08-19 12:40
2008.10.12
Крупный съезд ученых-нанотехнологов


2-1220355260
vvrz
2008-09-02 15:34
2008.10.12
из Memo в Excel


15-1219428958
No_Dead
2008-08-22 22:15
2008.10.12
Регулярное выражение