Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Форма и ее компоненты, Как управлять элементами формы из другог 
V
    Опции темы
Agosh
Дата 23.5.2007, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.5.2007

Репутация: нет
Всего: нет



Допустим я создал новый проект, на форме расположил лейбл.
Затем создал новый юнит (Unit2).
В этом юните я хочу сделать процедуру, которая изменяет заголовок лейбла.
Эта процедура вызывается из (Unit1).
Вопрос - как это сделать????
PM MAIL   Вверх
Klin
Дата 23.5.2007, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Поиск. Пользуемся поиском.

вначале "проинклудим вторую форму"
Код

 #include "Unit2.h"


ну а это, к примеру в событии кнопки
Код

 Form2->Label1->Caption = "MyLabel";
 Form2->Caption = "MyForm";
 Form2->Show();


Добавлено через 5 минут и 26 секунд
А вообще, можно было и в FAQ заглянуть  smile 


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Agosh
Дата 24.5.2007, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.5.2007

Репутация: нет
Всего: нет



Цитата

вначале "проинклудим вторую форму"

Не-е-е-ет!!!!!
Нету ни какой второй формы!!
Форма одна единственная.
Но управляеть ее лейблом надо из второго юнита.
PM MAIL   Вверх
Palladin
Дата 24.5.2007, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Ты сам то понял что сказал, как может не быть второй формы если ты хочеш управлять лейблом расположенным на юнит2 с юнит1????  smile

Добавлено через 3 минуты и 35 секунд
А ну короче вроде догнал, вообще влюбом случае надо проинклудить в той форме в которой будет писатся код, юнит с которого будеш юзать лейбл,т.е. я так понял на первой форме лейбл лежит, а со второго юнита хочеш лейблом управлять который лежит ан первой тогда, пише к примеру:
Код

////////////////////////////////////////////////////////////////////////////////
#include "Unit1.h"
///////////////////////////////////////////////////////////////////////////////
//потом гденитьв коде
Form1->Label1->Caption="Эта команда написана во втором юните, хотя изменения LAbel1 видны на 1 форме";
//и т.п. 
/////////////////////////////////////////////////////////////////////////////////



--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Klin
Дата 24.5.2007, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



А все равно инклудить придется smile

1) инклудим unit2 в главном
2) инкудим unit1 в unit2
3) Изменяем надпись

в главном
Код

 #include "Unit2.h"


в unit2
Код


void ChangeLabel()
{
 ((TForm1*)Application->MainForm)->Label1->Caption = "MyCaption";
};


Годится для главной формы.

Это сообщение отредактировал(а) Klin - 25.5.2007, 10:55


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Palladin
Дата 24.5.2007, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Если наооборот, то инклудь нужную форму в том юните где нада smile 



--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Agosh
Дата 25.5.2007, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 23.5.2007

Репутация: нет
Всего: нет



СПС!
PM MAIL   Вверх
lenin_yo
Дата 25.5.2007, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 20.5.2007

Репутация: нет
Всего: нет



Еще в главный юнит(где вызов) надо добавить прототип вызываемой функции,а иначе ругается.
PM MAIL   Вверх
Klin
Дата 25.5.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(lenin_yo @  25.5.2007,  02:10 Найти цитируемый пост)
Еще в главный юнит(где вызов) надо добавить прототип вызываемой функции,а иначе ругается.

не надо.

Добавлено @ 10:59
Agosh, возможно вам лучше сделать по другому, поскольку эта функция работает только с главной формой. Если ппоявиться вторая, если не в этом проекте так в следующем smile то лучше переделать функцию так:

Код

void ChangeLabel(TForm *form)
{
 ((TForm*)form)->Label1->Caption = "MyCaption";
};


Добавлено через 6 минут и 56 секунд
имхо инклудить используемую форму не надо.

Добавлено через 9 минут и 49 секунд
и возможно, придется изменять используемый тип: TForm - TForm1 и т.п.

Это сообщение отредактировал(а) Klin - 25.5.2007, 10:59


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0506 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.