Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Edit- последовательный ввод данных / 4 сообщений из 4, страница 1 из 1
22.12.2012, 13:18
    #38089063
kab18
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Edit- последовательный ввод данных
Вобщем, хотелось бы узнать возможно ли организовать с помощью 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
22.12.2012, 13:22
    #38089067
kab18
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Edit- последовательный ввод данных
Вобщем примерно так я планировал, чтобы это выглядело. Возможно нужно использовать цикл или создавать отдельно метод, но в классах я очень плохо разбираюсь.
...
Рейтинг: 0 / 0
22.12.2012, 13:35
    #38089070
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Edit- последовательный ввод данных
kab18последовательный ввод данных наподобие, того что есть в консольных приложениях

А не проще собрать консольное приложение?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.12.2012, 16:33
    #38089713
kab18
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Edit- последовательный ввод данных
Намного легче, но пора бы уже осваивать работу с объектами. Вообщем кое-как реализовал это через рекурсивный вызов функций, но вылезла еще одна проблема, я так понимаю связанная с памятью динамических массивов, которая просто не выделяется хотя должна бы. Ниже приведена часть кода, за выделение памяти отвечает перемееная-флаг 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
Форумы / C++ [игнор отключен] [закрыт для гостей] / Edit- последовательный ввод данных / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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