Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1220523692
Layner
2008-09-04 14:21
2008.10.12
TDBChart - показ множества TLineSeries


6-1193813058
dddmitriyy
2007-10-31 09:44
2008.10.12
как прокликать по определленным ссылкам на сайте


2-1219920043
biver64
2008-08-28 14:40
2008.10.12
Удаление файла


3-1207807303
samalex
2008-04-10 10:01
2008.10.12
Как выделить целую и дробную части числа


2-1220071019
KIT
2008-08-30 08:36
2008.10.12
Из Interbase в Delphi 7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский