Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495

Создание массива компонентов edit, его инициализация и передача в функцию. Что я делаю не правильно?

20.02.2013, 10:08. Показов 2454. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. В общем, хочу написать функцию очистки Edit-ов. У меня в проекте есть отдельный юнит где я прописываю все собственноручно написанные функции. И вот, чтобы на каждой форме где нужно очищать Edit не писать один и тот же код, решил написать функцию которая будет принимать массив из edit и очищать их, и чтобы эту функцию можно было вызвать из любой формы(для этого и пиши в отдельном юните и везде где нужно его подключаю).
Вот код, с помощью которого я пытаюсь реализовать задуманное:

Здесь я создаю сам массив:
C++
1
TEdit *edt[3];
Здесь я инициализирую массив:
C++
1
2
3
4
5
6
7
    void __fastcall TformCardCustomers::FormActivate(TObject *Sender)
{
    //При открытии формы, заполняем массив edit-ов
    edt[0] = edFio;
    edt[1] = edAddress;
    edt[2] = edTelephone;
}
Здесь я её вызываю
C++
1
2
3
4
5
6
7
void __fastcall TformCardCustomers::FormClose(TObject *Sender, TCloseAction &Action)
 
{
    CleaningEdit(*edt,sizeArEdt);//Функция очистки Edit-ов, из MyFunction
    //При закрытии формы, отключаемся от таблицы Car
    DataModule1->ADODataSetCar->Close();
}
А вот сама функция
C++
1
2
3
4
5
6
7
void CleaningEdit(TEdit *edt, int size)
{
    for (int i = 0; i < size; i++)
    {
        edt[i].Clear();
    };
}
Программа компилируется успешно. Но тогда, когда эта функция должна сработать, т.е. при закрытии формы, выскакивает такая ошибка:


Подскажите пожалуйста, как мне правильно реализовать задуманное? И если не сложно объяснить мои ошибки
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.02.2013, 10:08
Ответы с готовыми решениями:

Создание динамического массива и его инициализация в конструкторе класса
A1uk, ПравилаИзначальное название темы: &quot;Помогите исправить код&quot;. Доброго времени суток. Помоги отредактировать задачу... Необходимо...

Передача записей из таблицы БД в поле Edit c применением компонентов CheckBox
Доброго времени суток, Всем! На форме размещены следующие компоненты: checkbox – 5 шт., edit – 1 шт. и DBGrid – 1 шт.(отображающий...

Передача массива в функцию и использование его внутри функции
Добрый день. Подскажите как реализовать следующее: Есть функция class kmvclass { public static string f_nnauth_get() { ...

8
 Аватар для Sonyk91
111 / 111 / 13
Регистрация: 01.10.2012
Сообщений: 2,228
20.02.2013, 10:24
Прикрепи проект... Посмотрю...
1
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
20.02.2013, 10:25
C++
1
2
3
4
5
6
7
8
9
10
///...
CleaningEdit(edt,sizeArEdt);//Функция очистки Edit-ов, из MyFunction
///...
void CleaningEdit(TEdit **edt, int size)
{
    for (int i = 0; i < size; i++)
    {
        edt[i]->Clear();
    };
}
1
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
20.02.2013, 10:29  [ТС]
Code
1
[ILINK32 Error] Error: Unresolved external 'CleaningEdit(Stdctrls::TEdit *, int)' referenced from C:\USERS\LOSTY\DOCUMENTS\RAD STUDIO\PROJECTS\AUTOREPAIR\DEBUG\WIN32\СARDCOSTUMER.OBJ
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
20.02.2013, 10:31
Наверно еще в хидере надо объявление этой ф-ции поправить
C++
1
void CleaningEdit(TEdit **edt, int size)
1
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
20.02.2013, 10:32  [ТС]
Цитата Сообщение от Sonyk91 Посмотреть сообщение
Прикрепи проект... Посмотрю...
AutoRepair.rar
0
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
20.02.2013, 10:34  [ТС]
Точно, извиняюсь) спасибо за помощь. Не могли бы объяснить пожалуйста, почему в функцию приходится передавать двойной указатель?
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
20.02.2013, 10:42
1. Не надо вкладывать в архив временные файлы.
2. Объявляя массив вы имеете тип указателя на первый элемент. Например
C++
1
2
3
int d[3]; /// массив чисел, тут d имеет тип int*
int* d1[3]; /// массив указателей на числа, тут d1 имеет тип int**
TEdit *edt[3]; /// массив указателей на едиты, тут d1 имеет тип TEdit **
2
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
20.02.2013, 11:26  [ТС]
Понял. Большое спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.02.2013, 11:26
Помогаю со студенческими работами здесь

Передача указателя из функции в функцию двумерного массива и его вывод на экран
Я, пишу морской бой для академии, в написании, нужно использовать указатели. Я столкнулся с проблемой, когда нужно передать указатель...

Массив. Создание массива в первой форме и передача его же в остальные
Как это сделать? Вот так я создала массив в первой форме: private void button7_Click(object sender, EventArgs e) ...

Передача массива символов в функцию strlen после создания его функцией sprintf
Если вводится 1 символ, выводится &quot;8&quot;, 2 символа - &quot;9&quot;. И так далее. Почему? Это нормально? Задание требует преобразование long double в...

динамическое создание двумерного массива и передача его как параметр функции
Здравствуйте, подскажите пожалуйста, как можно передать параметром динамически созданный массив в функцию. Желательно пример. Буду очень...

Что я делаю не правильно?
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std; int main() { enum...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru