Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Вниз

ShowModal и locate   Найти похожие ветки 

 
Belkova ©   (2005-05-05 10:06) [0]

Мастера Delphi! Подскажите пожалуйста. Вызываю форму с DBGrideh, и нужно, чтобы курсор стоял на определеной записи. Раньше делала так. Form1.Show;
    IBQuery.Locate();
проблем не было.
сейчас Form1.ShowModal;
    IBQuery.Locate();
не ищет. Помогите, пожалуйста.


 
Max Zyuzin ©   (2005-05-05 10:08) [1]

Попробуй операторы местами поменять :) поможет


 
Johnmen ©   (2005-05-05 10:08) [2]

Естественно. Ведь шоумодал, там и "стоит", пока форма не закроется, а уж потом локейт.
Поменяй местами....


 
Rule ©   (2005-05-05 10:09) [3]

а потомучто пока у тебя твоя форма1 не закроется, он искать не будет, тебе надо сделать так:
IBQuery.Locate();
Form1.ShowModal;

и при чем здесь DBGrideh?


 
Rule ©   (2005-05-05 10:10) [4]

Rule ©   (05.05.05 10:09) [3]
на секунду от остальных опаздал :-)


 
Belkova ©   (2005-05-05 10:12) [5]

Все равно не ищет. Местами поменяла.


 
Johnmen ©   (2005-05-05 10:13) [6]

Тогда в 17 строке
:)


 
Belkova ©   (2005-05-05 10:19) [7]

Всем спасибо. Все получилось.


 
msguns ©   (2005-05-05 11:02) [8]

>Belkova ©   (05.05.05 10:19) [7]

Для взаимодействия различных частей приложения (Например, Гл.формы с дочерними) часто требуется передавать в создаваемые формы данные. Однако не всегда получается "мирно" сделать это по типу
with TChildForm.Create(Self) do
  begin
   Par1 := ...;
   Par2 := ...;
   Par3 := ...;
   Show;
  end;
, т.к. в случае MDI приложения "дочка" показывается сразу после конструктора, не дожидаясь шоу, поэтому если в событии
FormCreate или FormShow написать
 ... := Par1;
 ... := Par2;
  ...
, то в левой части вместо значений, "присвоенных" Гл.формой, будут нули или бланки.

Можно, конечно, переопределить конструктор, но не всегда это приемлимо, да и требует времени и квалификации. Поэтому для передачи значений можно использовать "буферные" поля (объекты), отведенные в "постоянно живущих" формах или датамодулях.
Главная перед созданием "дочки" записывает в буфер вх.параметры, после чего создает форму.
"Дочка" первым делом (в FormCreate, например) переписывает содержимое буфера (Гл.Форма, как и датамодуль, ей должны быть "видимы") в свои поля, обеспечивая таким образом как бы реентерабельность (т.е. независимость работы от кол-ва созданных экземпляров объекта-формы). После чего делает то, что должна делать. При необходимости она передает результаты свой работы в вызывающий модуль, ипользуя тот же буфер.

Т.е. что-то похожее на интерфейс, только сильно упрощенный ;))


 
KSK   (2005-05-05 12:12) [9]

можно использовать событие FormShow

procedure TForm1.FormShow(Sender: TObject);
begin
IBQuery.Locate();
end;



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
14-1117114879
lookin
2005-05-26 17:41
2005.06.14
Оформление сайта


4-1113589617
ComPort
2005-04-15 22:26
2005.06.14
Срочно нужна помощь, трабла с COM портом...


11-1099342586
Yasha
2004-11-01 23:56
2005.06.14
SystemDcu Replacement For Delphi 7 system.pas not found


14-1116760890
ferr
2005-05-22 15:21
2005.06.14
ВУЗЫ России.


4-1114551913
Mad proger
2005-04-27 01:45
2005.06.14
Неудобства BDE





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский