Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/29: Рейтинг темы: голосов - 29, средняя оценка - 4.97
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85

Передача данных между формами

26.01.2017, 20:31. Показов 6152. Ответов 55
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
У меня тут образовалась одна вроде и простая проблемка, однако я в полнейшем тупике.
У меня есть 1 форма, из нее по нажатию кнопки меню вызывается другая форма на которой есть Memo1 , мне нужно сделать так: вводим данные про человека, нажимаем кнопку BitBtn1 и те данные которые мы ввели в 1 форме что бы они отображались в Memo1.
Подскажите пожалуйста, как это реализовать.
Миниатюры
Передача данных между формами  
Изображения
 
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.01.2017, 20:31
Ответы с готовыми решениями:

Передача переменных между формами
Есть задача. Программа должна работать по выбору с несколькими различными железками. Протокол для всех разный. При выборе типа железки...

Передача матриц между Формами
Извените за столь детский вопрос, но подскажите плиз. Как с Form2 передать посчитанные данные в Form3??Доступ к Form3 идет только с Form1.

Передача переменных между формами
Добрый день! Помогите, пожалуйста. В Form1 есть две переменные: string str1; string str2; Как сделать так, чтобы эти...

55
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
30.01.2017, 12:04
Студворк — интернет-сервис помощи студентам
И все равно не понятен момент: зачем это надо? Я понимаю, если бы это окно являлось протоколом тестирования, где подробно бы расписывалось, какой вопрос был отвечен правильно, а какой - нет и какой в этом случае правильный ответ. А показывать просто регистрационные данные - какой в этом сакральный смысл?
И, кстати, а что там еще за Form4?
0
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
30.01.2017, 12:21  [ТС]
Так там и нужно сделать так что бы выводилось правильные ответы и не правильные ответы, но при етом еще нужно что бы были все ети данные( Имя, Фамилия, Группа, Дата, Пол)

Добавлено через 5 минут
А Form4 там типа должны быть подсказки на вопросы.
0
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
30.01.2017, 21:16  [ТС]
Вот картинка примерно как, оно должно быть
Но у меня просто еще ("Имя", "Фамилия", "Группа", "Пол", ну и "Дата")
И мне нужно как то его реализовать.
Миниатюры
Передача данных между формами  
0
управление сложностью
 Аватар для Почтальон
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
30.01.2017, 21:32
Что-то типа такого ? Делал очень давно, так что не пинайте
EXE_TestPersonal.zip
1
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
30.01.2017, 23:15  [ТС]
Спасибо, что то похожее, но мне нужно, что то вроде етого, только на С++ Builder 6.
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
01.02.2017, 08:47
Lenok S,
ну что с тобой бедолагой делать?
если все еще актуален твой проект , после работы могу помочь с твоим горе-кодом.
с первого взгляда на код - есть куча ненужного.
и не все условия соблюдены в правильном порядке.
и вообще зачем создавать много форм?
1
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
01.02.2017, 09:26
Lenok S, посмотрев Ваш код, вспомнилась песня А.Макаревича:
Только я заявляю прямо
Это полная ерунда
ну да ладно, на основании Ваших вопросов и Вашей концепции хранить сам тест в теле программы набросаю примерчик... Если актуально, конечно.
0
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
01.02.2017, 19:17  [ТС]
lifeforce,
Все еще актуальный, если не сложно помоги пожалуйста.

Добавлено через 3 минуты

Добавлено через 10 минут
0
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
01.02.2017, 19:43  [ТС]
lifeforce,

У меня к тебе еще будет просьба, если тебе конечно не сложно помоги пожалуйста очень нужно, мне в текстовом редакторе нужно сделать:
-Удаление лишних пробелов во введенном тексте.
-Автоматическая замена малых букв на большие в начале предложения.
Вот мой проект посмотри:
Миниатюры
Передача данных между формами  
Вложения
Тип файла: rar Текстовый редактор.rar (397.8 Кб, 7 просмотров)
0
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
01.02.2017, 19:56  [ТС]
И мне нужно еще сделать такое: На основе одного из базовых классов визуальных компонентов разработать собственный компонент с новыми свойствами и методами, подскажи пожалуйста как ето реализовать??
0
01.02.2017, 20:00

Не по теме:

Цитата Сообщение от Lenok S Посмотреть сообщение
И мне нужно еще сделать такое:
это называется дайте воды напиться, а то так есть хочется, что переночевать негде :)

0
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
01.02.2017, 20:17  [ТС]
Почтальон,
Та причем здесь ето? Я говорю если можете помогите, есть ведь добрые и отзывчивые люди на земле, которые могут помочь) А вы если не можете помочь или не хотите, просто пройдите мимо.

Добавлено через 7 минут
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
01.02.2017, 20:37
Lenok S,
давай все по прядку. -текстовый редактор отдельная тема.
сейчас по теме
то что используешь несколько форм - незнаю какая идея? да ну ладно.
посмотри внимательно
1 регистрация - никуда? может еще не дошло до нее очередь?
2 на форме с вопросами - никогда не будет выбран правильный ответ!
нажатие на кнопку которая должна проверить ответ у тебя работает в обратном направлении.
смотри
C++
1
2
3
4
5
6
7
8
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
// здесь сначала проверяешь какой радиобутон был чекнут - правильно.
// но а если не чекнут никакой радиобутон?? 1 ошибка.
 if(RadioButton1->Checked==true)i=1;//перевіряємо, яка була обрана відповідь
 if(RadioButton2->Checked==true)i=2;
 if(RadioButton3->Checked==true)i=3;
 if(RadioButton4->Checked==true)i=4;
далее
здесь невозможно проверить правильность ответа! потому что проверка у тубя происходит потом после обнуления значения i
C++
1
2
 if(i==pravil_otvet)s++;//якщо вибраний і правильний збігаються, то збільшуємо суму на одиничку
 i=0;//обнулення потрібно для коректного підрахунку суми
далее
C++
1
2
3
4
5
6
7
 RadioButton1->Checked=false;//очищаємо натиснуту кнопку
 RadioButton2->Checked=false;
 RadioButton3->Checked=false;
 RadioButton4->Checked=false;
 nomer++;
 vopros();// здесь идет проверка правильности ответа НО будет проверятся все в пустую! т.е. код никуда!
 Memo1->Lines->Add(variant);// здесь для красоты можно выводить не номер а ответ!
0
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
01.02.2017, 20:58  [ТС]
Нет смотри у меня те все правильно мне просто нужно как то сделать что бы на 2 форме отображались правильные и не правильные ответы на вопросы.

Добавлено через 5 минут
А да там в Mеmо нужно выводить ответ на указанный вопрос только цифрой.
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
01.02.2017, 20:59
Цитата Сообщение от Lenok S Посмотреть сообщение
Нет смотри у меня те все правильно
вот так будет правильно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
  pravil_otvet = 0;// обнуление
 if(RadioButton1->Checked==true)i=1;//перевіряємо, яка була обрана відповідь
 else
 if(RadioButton2->Checked==true)i=2;
 else
 if(RadioButton3->Checked==true)i=3;
 else
 if(RadioButton4->Checked==true)i=4;
 else {ShowMessage("Не выбран ответ!");return;}// после выдачи сообщения оставатся на вопросе пока не будет выбран ответ.
 // если было чекнут радиобутон то
   vopros();// проверить правильность ответа.
 if(i==pravil_otvet)s++;//якщо вибраний і правильний збігаються, то збільшуємо суму на одиничку
 
 i=0;//обнулення потрібно для коректного підрахунку суми
 RadioButton1->Checked=false;//очищаємо натиснуту кнопку
 RadioButton2->Checked=false;
 RadioButton3->Checked=false;
 RadioButton4->Checked=false;
 nomer++;// переход на следующий вопрос.
 
 Memo1->Lines->Add(variant);
 
}
//---------------------------------------------------------------------------
но использование лейблов для написания ответов - лишнее!!
ведь можно напрямую использовать радиобутон для вывода примеров ответов на вопрос.
C++
1
2
3
4
5
6
7
           Form2->Label5->Caption="Хто виріс в джунглях серед диких звірів?";
           Form2->RadioButton1->Caption="Колобок";
           Form2->RadioButton2->Caption="Мауглі";
           Form2->RadioButton3->Caption="Бетмен";
           Form2->RadioButton4->Caption="Чарльз Дарвін";
           pravil_otvet=2;
                   break;
1
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
01.02.2017, 21:10  [ТС]
А там, де регистрация мы в начале регистрируем пользователя который будет проходить етот тест, а потом когда он уже зарегистрировался мы даем ему собственно и проходить етот тест. А когда он его пройдет он сможет посмотреть свой результат.

Добавлено через 8 минут
C++
1
else {ShowMessage("Не выбран ответ!");return;}// после выдачи сообщения оставатся на вопросе пока не будет выбран ответ.
мне нужно так что бы если человек не знает ответа на етот вопрос что бы он мог перейти к второму вопросу..
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
01.02.2017, 21:31
Цитата Сообщение от Lenok S Посмотреть сообщение
мне нужно так что бы если человек не знает ответа на етот вопрос что бы он мог перейти к второму вопросу..
тогда лучше добавить еще одну кнопку " пропустить вопрос".
а в конце свича лучше будет если обнулить вопросы .
C++
1
2
3
4
5
6
7
8
9
10
11
        case 40:
           Form2->Label5->Caption="";
           Form2->Label1->Caption="";
           Form2->Label2->Caption="";
           Form2->Label3->Caption="";
           Form2->Label4->Caption="";
           BitBtn1->Enabled=false;
           RadioButton1->Enabled=false;//робимо кнопки "не нажимаемыми", щоб користувач натиснув на "завершити тест"
           RadioButton2->Enabled=false;
           RadioButton3->Enabled=false;
           RadioButton4->Enabled=false;
Добавлено через 15 минут
а самая большая ошибка еще в начале после нажатия на кнопку регистрация
на форме 1 заполнение капшинов лейблов - вопрос
C++
1
Form2->Label5->Caption="Як називають манекенницю супер-класу?";
и ответ идет с нулевого case у которого ответ
на вопрос
C++
1
2
 case 0:
           Form2->Label5->Caption="Хто виріс в джунглях серед диких звірів?";
???

Добавлено через 1 минуту
пробуй пройди тест на свои же вопросы! и получишь случайный набор типа правильных ответов.
1
-1 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 85
01.02.2017, 22:00  [ТС]
Спасибо, сейчас попробую что то на колдовать, а что там с текстовым редактором? Еще не смотрел что там у меня можно сделать.

Добавлено через 2 минуты
А да кстати, а как можно забрать етот вопрос? Совсем
C++
1
2
 case 0:
           Form2->Label5->Caption="Хто виріс в джунглях серед диких звірів?";
Добавлено через 20 минут
lifeforce,

я понимаю что текстовый редактор ето уже 2 тема, но мне очень нужно реализовать удаление лишних пробелов во введенном тексте. Большую букву в начале текста я сделала, только когда я перехожу на 2 рядок и ввожу текст на початку предложения остается маленькая буква.
0
 Аватар для lifeforce
266 / 211 / 89
Регистрация: 27.09.2010
Сообщений: 1,234
02.02.2017, 00:00
Сейчас закончим с темой
в форме 1
это совсем не нужно.
закоментируй
C++
1
//extern int pravil_otvet;//змінна, для зберігання правильної відповіді на питання
т.к. в форме 2 опять ему присваиваешь значение 0.
в форме 2 надо поменять в начале перед формой
поменяй
C++
1
int s=0, i=0, pravil_otvet, nomer=0;//s-сума правильних відповідей, i-допоміжна змінна, nomer-номер поточного питання
на
C++
1
2
3
4
int s=0,//s-сума правильних відповідей
    i=0,//i-допоміжна змінна
 pravil_otvet,//
  nomer=-1;// nomer-номер поточного питання
и в
C++
1
void __fastcall TForm2::vopros()
добавь вначале еще
C++
1
2
3
4
5
6
7
8
9
switch(nomer)
{
  case -1:
           pravil_otvet=1;//присвоюємо номер правильної відповіді
           break;
 
  case 0:
           Form2->Label5->Caption="Хто виріс в джунглях серед диких звірів?";
           Form2->Label1->Caption="Колобок";
и теперь все вопросы и ответы будут совпадать с результатом.

Добавлено через 2 минуты
Цитата Сообщение от Lenok S Посмотреть сообщение
но мне очень нужно реализовать удаление лишних пробелов во введенном тексте
в смысле лишние пробелы? убрать совсем? или оставить только один?

Добавлено через 6 минут
да совсем забыл еще и в
C++
1
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
надо добавить еще второй раз vopros();
после правильного ответа.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
  pravil_otvet = 0;// обнуление
  i=0;
 if(RadioButton1->Checked==true)i=1;//перевіряємо, яка була обрана відповідь
 else
 if(RadioButton2->Checked==true)i=2;
 else
 if(RadioButton3->Checked==true)i=3;
 else
 if(RadioButton4->Checked==true)i=4;
 else 
// здесь можно поменять функцию на вопрос типа " игнорировать вопрос?" или "попытаться ответить на вопрос?"
{ShowMessage("Не выбран ответ!");return;}// после выдачи сообщения оставатся на вопросе пока не будет выбран ответ.
 // если было чекнут радиобутон то
 vopros();// проверить правильность ответа.
 if(i==pravil_otvet){s++;//якщо вибраний і правильний збігаються, то збільшуємо суму на одиничку
   Memo1->Lines->Add("OK!");
 }
 
 i=0;//обнулення потрібно для коректного підрахунку суми
 RadioButton1->Checked=false;//очищаємо натиснуту кнопку
 RadioButton2->Checked=false;
 RadioButton3->Checked=false;
 RadioButton4->Checked=false;
 nomer++;// переход на следующий вопрос.
 vopros();// установить новый вопрос.
 Memo1->Lines->Add(variant);
 
}
//-
Добавлено через 5 минут
убрать пробелы и оставить только один можно так

C++
1
string->Text = StringReplace(string->Text, "  ", " ", TReplaceFlags() << rfReplaceAll);// здесь два пробела заменяться на один. эта операция будет продолжена пока в тексте будет больше или равно двум пробелам (результат будет только один пробел)
Добавлено через 17 минут
на счет программы текстовый редактор прокоментируй все действия в проге. мне анализировать все что там хотела сделать , мне как то лень.
видел что там есть правило - если после точки есть пробел.
- а если нет пробела тогда что?
1
Модератор
 Аватар для D1973
9915 / 6452 / 2455
Регистрация: 21.01.2014
Сообщений: 27,386
Записей в блоге: 3
02.02.2017, 09:37
Lenok S, вот посмотрите, что получилось:
Что сделано:
1. Регистрация пользователя. Непонятно, зачем указывать пол, наверное для того, чтобы при тестировании девушкам начислять бонусный балл (это тоже сделано, ради прикола)
2. Случайный порядок вопросов
3. Отсчет времени (20 сек. на вопрос)
4. Протокол прохождения теста в "реальном времени". Видно, на какой вопрос как ответил тестируемый


5. Вывод итогов тестирования


6. Полный протокол теста. Его можно посмотреть только по окончании тестирования, если при показе итогов был выбран режим "Вернуться в окно регистрации". Если тестируется несколько человек не закрывая программы - в лог записываются результаты всех тестируемых


Что не сделано (но легко делается)
1. Перемешивание вариантов ответов
2. Запрет закрытия программы самим тестируемым, без ввода пароля администратора
3. Просмотр полного лога только при вводе пароля администратора.
4. Настройки программы (изменить время или вообще отключить таймер, задать\\убрать пароль администратора, хранение лога после закрытия программы). Но это уже без лишних файлов не обойтись.

Ну и Ваш язык, я думаю, Вы сами переведете.
Вложения
Тип файла: rar Test.rar (33.6 Кб, 12 просмотров)
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.02.2017, 09:37
Помогаю со студенческими работами здесь

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

Передача данных между приложениями
Нужно из одного приложения передать строку в другое.Как это реализовать? Искал много было типа WM_COPYDATA и не разобрался. Если можно...

Передача данных из БД между динамическими Child окнами в MDI приложении
Есть родительская форма Form1. Из нее динамически создается дочерняя Form2. В этой форме есть запрос ADOQuery. Для редактирования данных...

переключение между формами
есть главная форма Main (окно программы) и есть форма Auth (авторизация в программе), которая должна появляться первой, а форма Main должна...

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru