powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Edit- последовательный ввод данных
4 сообщений из 4, страница 1 из 1
Edit- последовательный ввод данных
    #38089063
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем, хотелось бы узнать возможно ли организовать с помощью Edit и Label, последовательный ввод данных наподобие, того что есть в консольных приложениях, то есть через Edit осуществляется ввод данных, через Label запрос, причем при нажатии клавиши Enter или какой либо кнопки Button запрос и считываемая перемннная меняются. Просидел долгое время написал нечто мозгоразрывное, но неработающее:
Код: plaintext
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.
void __fastcall TForm1::Input(TObject *Sender, char &Key)
{
float xn,xk,hx;
if (Key==VK_RETURN)
{
if (RadioGroup1->ItemIndex==0)
{
float hx1=1e-10;
if (xk1!=1e-10 && xn1!=1e-10 && hx1==1e-10)
{
Label2->Caption="значение шага:";
hx=StrToFloat(Edit1->Text);
Edit1->Text="";}
float xk1=1e-10;
if (xk1==1e-10 && xn1!=1e-10)
{
Label2->Caption="X конечное:";
xk=StrToFloat(Edit1->Text);
Edit1->Text="";
xk1=xk;}
float xn1=1e-10;
if (xn1==1e-10)
{xn=StrToFloat(Edit1->Text);
xn1=xn;
Edit1->Text="";}
}
}
}
...
Рейтинг: 0 / 0
Edit- последовательный ввод данных
    #38089067
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вобщем примерно так я планировал, чтобы это выглядело. Возможно нужно использовать цикл или создавать отдельно метод, но в классах я очень плохо разбираюсь.
...
Рейтинг: 0 / 0
Edit- последовательный ввод данных
    #38089070
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kab18последовательный ввод данных наподобие, того что есть в консольных приложениях

А не проще собрать консольное приложение?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Edit- последовательный ввод данных
    #38089713
kab18
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Намного легче, но пора бы уже осваивать работу с объектами. Вообщем кое-как реализовал это через рекурсивный вызов функций, но вылезла еще одна проблема, я так понимаю связанная с памятью динамических массивов, которая просто не выделяется хотя должна бы. Ниже приведена часть кода, за выделение памяти отвечает перемееная-флаг f. Почему этого не происходит ума не приложу.
Код: plaintext
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
void __fastcall TForm1::masX(TObject *Sender, char &Key)
{
if (Key==VK_RETURN && (Edit4->Text>"" && Edit4->Text[1]>' ')
&& (Edit4->Text[1]>='0' && Edit4->Text[1]<='9') && i==-1)
{
n=StrToInt(Edit4->Text)+1;
switch(f)
{
case 1:
X=(float*)calloc(n,sizeof(float));
break;
case 2:
Y=(float*)calloc(n,sizeof(float));
break;
case 3:
Z=(float*)calloc(n,sizeof(float));
break;
}
i=0;
masX(Sender,Key);
}
if (Key==VK_RETURN && (Edit4->Text>"" && Edit4->Text[1]>' ') && ((Edit4->Text[1]>='0'
&& Edit4->Text[1]<='9') || Edit4->Text[1]=='-') && i>=0 && i<n)
{
if (i<n-1)
{
switch(f)
{
case 1:
Label9->Caption="значение аргумента X";
Label9->Caption=Label9->Caption+(i+1)+':';
X[i]=StrToFloat(Edit4->Text);
break;
case 2:
Label9->Caption="значение аргумента Y";
Label9->Caption=Label9->Caption+(i+1)+':';
Y[i]=StrToFloat(Edit4->Text);
break;
case 3:
Label9->Caption="значение аргумента Z";
Label9->Caption=Label9->Caption+(i+1)+':';
Z[i]=StrToFloat(Edit4->Text);
break;
}
}
}

void __fastcall TForm1::Button3Click(TObject *Sender)
{
switch(f)
{
case 1:
switch(RadioGroup2->ItemIndex)
{
case 0:
Label2->Caption="начальное значение Y:";
Label5->Caption="конечное значение Y:";
f=2;
Notebook1->PageIndex=1;
break;
case 1:
i=-1;
Label9->Caption="количество аргументов Y:";
f=2;
Notebook1->PageIndex=2;
break;
}
break;
case 2:
switch(RadioGroup3->ItemIndex)
{
case 0:
Label2->Caption="начальное значение Z:";
Label5->Caption="конечное значение Z:";
f=3;
Notebook1->PageIndex=1;
break;
case 1:
i=-1;
Label9->Caption="количество аргументов Z:";
f=3;
Notebook1->PageIndex=2;
break;
}
break;
}
}
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Edit- последовательный ввод данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]