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

Вниз

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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
14-55755
Morfey
2003-06-28 03:11
2003.07.17
В чате просили исходник...


14-55805
Мазут Береговой
2003-06-30 10:54
2003.07.17
К спецам по играм


6-55681
Adventure
2003-05-12 10:59
2003.07.17
Загрузка файла на веб сервер.....


1-55552
DrDrew
2003-07-05 17:41
2003.07.17
Как пропатчить процесс в памяти ?


14-55766
MBo
2003-06-28 10:40
2003.07.17
Выбрать стратегию...