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

Вниз

Вопрос про форму   Найти похожие ветки 

 
AndrewVolkov   (2003-07-04 12:40) [0]

Добрый день.
Помогите разобраться

Есть MDI приложение. Из главной формы я создаю SDI форму

procedure TfmMain.aAddPeopleExecute(Sender: TObject);
begin
with tfmPeople.Create(Application) do
try
Show;
finally

end;
end;


Соответственно из Project Source строка

Application.CreateForm(TfmPeople, fmPeople);

убрана.

Трабла в следующем. Если форма fmPeople создана и я хочу обратиться к какому-нибудь ее компоненту, к примеру

Value_:=fmPeople.EdName.Text;

Я получаю access violation. А если смотреть через отладчик - проблема в том что

fmPeople=nil

Отсюда и вопрос. Как к ней обратиться??? На сколько я понимаю она создается типа TfmPeople - но имя у нее уже не fmpeople


 
ЮЮ   (2003-07-04 12:49) [1]

procedure TfmMain.aAddPeopleExecute(Sender: TObject);
begin
if fmpeople = nil then fmpeople := tfmPeople.Create(Application);
fmpeople.Show;
end;


 
AndrewVolkov   (2003-07-04 12:54) [2]

А если их у меня может быть больше одной???
Как мне их тогда различать?


 
ЮЮ   (2003-07-04 13:08) [3]

А сейчас ты как их различаешь? :-)
Всё равно, по хорошему, тебе fmpeople нужна только до fmpeople.Show, а дальше она находится в "свободном плавании" и некрасиво лезть к ней Value_:=fmPeople.EdName.Text, тем более когда их несколько.
зачем в MDI приложение несколько экземпляров SDI-форм, тогда уж их и делать как MDIChild


 
Юрий Федоров   (2003-07-04 13:09) [4]

Нужно убрать глобальную переменную fmpeople нафиг.
И держать список созданных форм типа TfmPeople.
Каким образом организовать список - тут уж хозяин-барин


 
AndrewVolkov   (2003-07-04 13:18) [5]

Как МДИ она мне не нужна
На МДИ чайлде расположен список людей в гриде.
Когда на них щелкаешь, появляется эта SDI с FormStyle=fsStayOnTop
Там более подробная инфа плюс фото.
Когда щелкаешь на Фото, появляется уже Модальная СДи, где только Фото в ув. размере.

Вся фигня в том, что когда СтайонТопов делают более одного, как потом узнать у кого какая фото для увеличения. Вот я и хотел обращаться к fmPeople.Image.Picture чтобы закачать из имаджа fmPeople в имадж fmFoto


 
ЮЮ   (2003-07-04 13:23) [6]

>Вот я и хотел обращаться к fmPeople.Image.Picture чтобы закачать из имаджа fmPeople в имадж fmFoto

Всё это надо сделать в обработчике экземпляра формы TfmPeople, а затем уже показать TfmFoto, а не наоборот


 
AndrewVolkov   (2003-07-04 13:28) [7]

В смысле??
Через глобальную переменную типа TPicture??


 
ЮЮ   (2003-07-04 13:43) [8]

fmFoto ты где создаешь? Надеюсь в обработчике OnClick компонента на TfmPeople. В этот момент все компоненты формы тебе доступны безо всяких fmPeople.


 
AndrewVolkov   (2003-07-04 13:56) [9]

Чего то я стормозил. Да спасибо - все идет.
Теперь только почему - то размеры фото в пикселях нулевые, хотя фото передается...



 
AndrewVolkov   (2003-07-04 14:00) [10]

fmFoto:=TFmFoto.Create(Application);
fmFoto.FotoView.Picture:=Foto.Picture;
fmFoto.ShowModal;


procedure TfmFoto.FormActivate(Sender: TObject);
begin
ViewPicture;
end;


procedure TfmFoto.ViewPicture;
begin
try
begin
try begin
if FotoView.Picture.Height>600 then begin


Height = 0???


 
ЮЮ   (2003-07-04 14:14) [11]

М.б. FormActivate возникает до fmFoto.ShowModal, например при Create? М.б. лучше ViewPicture сделать public и

fmFoto.FotoView.Picture.assign(Foto.Picture);
fmFoto.ViewPicture;
fmFoto.ShowModal;


 
AndrewVolkov   (2003-07-04 14:20) [12]

Ну так вроде правильно.
Форму создали, картину закачали.
Так насколько я понимаю, при СшоуМодале - срабатывает Активаейт и там уже размеры картинки должны быть??? Или я чего то не так совсем уже ;-((


 
AndrewVolkov   (2003-07-04 14:24) [13]

блин, вот свинья какая, я думал, когда он будет шоу делать у него еще раз активейт отработает.
Всю свою лоховизну понял.
Всем спасибо
Сорри за долботню мою



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

Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.008 c
1-55559
Mishenka
2003-07-06 23:52
2003.07.17
Изменение значения в SpinEdit...


3-55406
Karburator
2003-06-23 21:38
2003.07.17
Определить ключевое поле


11-55489
SSCha
2002-11-13 14:43
2003.07.17
Нужен пример использования MHComPort.


1-55545
Diamond Dog
2003-07-05 18:59
2003.07.17
Проблемы с поиском Файлов


3-55393
NataliK
2003-06-23 12:47
2003.07.17
DBGridEh в Win XP и Win 98





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