![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| mmv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.1.2004 Где: г. Воронеж Репутация: нет Всего: нет |
Как сделать, чтобы действия, одинаковые для одинаковых компонентов различных форм выполнялись одной процедурой? Например, есть Image1 на каждой из форм Form1, Form2, Form3. Нужно загрузить в них картинку. Но, например, так как я было написал, выполнить нельзя. А как можно?
procedure Fill (F : TForm); begin With F do Image1.Picture.LoadFromFile('1.jpg'); end; |
|||
|
||||
| Полудненко Олег |
|
|||
|
Українець ![]() ![]() Профиль Группа: Участник... Сообщений: 556 Регистрация: 13.8.2003 Репутация: 1 Всего: -11 |
Поидее надо юзать FindComponenet
|
|||
|
||||
| mmv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.1.2004 Где: г. Воронеж Репутация: нет Всего: нет |
Если на одной форме – можно. Например, назначением в массив.
For i := 1 to 10 do MyImage[i]:=FindComponent(Format('Image%d',[i])) as TImage; Но это же не совсем то. Неужели нельзя сделать как-то иначе? |
|||
|
||||
| Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
-------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
| mmv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.1.2004 Где: г. Воронеж Репутация: нет Всего: нет |
Если я правильно понял, здесь I - название Image? По-моему, так мы получим 'Undeclared identifier'.
|
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Можно, например, так сделать:
Это сообщение отредактировал(а) <Spawn> - 29.1.2004, 07:23 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Можно сделать сохранения нужных указателей на экземпляры TImage в массиве, но если формы будут динамически создаваться\уничтожаться, то прийдется этот массив динамически корректировать.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Петрович |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Может чего и не понял, но автору похоже требуется следующее:
Соответственно в форме 1:
в форме 48:
Это сообщение отредактировал(а) Петрович - 29.1.2004, 08:18 -------------------- Все знать невозможно, но хочется |
||||||
|
|||||||
| Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
Да. Правильно понял. <Spawn> Неплохой вариант, но Я так не люблю писать.... -------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
| oomneeq |
|
|||
|
Unregistered |
IMHO, общевата формулировочка для хорошего ответа Одинаковй класс или одинаковое имя? Может я угадаю хоть приблизиттельно твою нужду >Например, есть Image1 на каждой из форм Form1, Form2, Form3 При таком раскладе стОит создать общий предок TFormWithAnImage, содержащий Image а формы Form1, Form2, Form3 унаследовать от него (хоть напрямую, хоть через друг дружку) через визюальное наслед-е форм. В этой TFormWithAnImage определяшь свою Fill в разделе public после этого любой Form1, Form2, Form3 знают FIll и могут его вызвать. Соответственно если передавать кудато параметр как TFormWithAnImage то также можно обращаться к евойному FIll Более того, если речь к примеру только об одинаковом имаже для всех форм, н то можно в общем предке оперделить ImageList и сразу прописать в нем нужные имажи, тогда при наследовании одинаовый имаж будет у всех автоматычно. Сорри если не угадал хода мыслей или изложил тривиальности |
|||
|
||||
| mmv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.1.2004 Где: г. Воронеж Репутация: нет Всего: нет |
[QUOTE=Петрович,29.1.2004, 08:18]
Простите за, очевидно, глупый вопрос. А куда я должен поместить саму процедуру Fill, чтобы таким образом ее вызывать? |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
А куда угодно. В данном случае она не требует ссылки ни на одну форму, ведь она оперирует тем компонентом который ей передаст вызывающий. Т.е. если хочешь, можешь поместить ее в отдельный модуль, и сослаться на него в модулях форм, а можешь сапихнуть в модуль одной из форм, тогда ссылку на него надо будет добавить в список uses остальных форм. Естественно, в том модуле где ты ее разместишь, не забудь вставить определение этой функции в интерфейсную часть. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| mmv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.1.2004 Где: г. Воронеж Репутация: нет Всего: нет |
Может, я что-то не понимаю, но если я поместил этот код в unit1 (Form1), то вызывать я его буду как
А ведь процедура передает только TImage. |
|||
|
||||
| Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
Если ты его поместил в класс формы, то да.
А если просто как отдельную процедуру, то нет. Тогда нужно так:
И причем еще нужно указывать, к какой форме принадлежит Image: procedure TForm2.Button1Click(Sender: TObject); begin unit1.Fill(Form1.Image1); end; procedure TForm2.Button1Click(Sender: TObject); begin unit1.Fill(Form2.Image1); end; -------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
| mmv |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.1.2004 Где: г. Воронеж Репутация: нет Всего: нет |
Спасибо, Morpheus, это я что-то протормозил.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |