Проблема с Case
edit1.text в case но у меня чето не получается... не знаю как правельно это сделать...
Я делаю та
Case edit1.text of
'hello' : Memo1.lines.add('Привет');
end;
но это не правельно... подскажите пожалуйста как решить данную проблему...
Спасибо!
вроде все правильно.в какой строке ошибка?
Цитата: Eksell
Case edit1.text of
'hello' : Memo1.lines.add('Привет');
end;
!
А мне кажется с текстом проблема будет...
Лучше If Then использовать
P.S. integer and char - читайте ошибки при компиляции и понимайте
Цитата: Eksell
Всем привет. Дело в том что я пытаюсь добавить например
edit1.text в case но у меня чето не получается... не знаю как правельно это сделать...
Я делаю та
Case edit1.text of
'hello' : Memo1.lines.add('Привет');
end;
но это не правельно... подскажите пожалуйста как решить данную проблему...
Спасибо!
edit1.text в case но у меня чето не получается... не знаю как правельно это сделать...
Я делаю та
Case edit1.text of
'hello' : Memo1.lines.add('Привет');
end;
но это не правельно... подскажите пожалуйста как решить данную проблему...
Спасибо!
посмотри в хелпе, какие типы нельзя использовать: string нельзя
используй оператор if для своей задачи
А вообще мне нужно сделать программу каторая так сказать должна обьщатся с пользователем... т.е. задавать вопросы ему...
Это курсовая работа на тему спорта... т.е. она должна определить какой вид спорта подходит для данного человека... задавая ему вопросы...
методом исключения...
Например выводит такие вопросы :
1: Какой вид спорта ты предпочитаешь, Физический или Логический...
Если пользователь ответит например Физический тогда программа задает следующий вопрос :
2: Хотите играть Руками, ногами, и т.д....
Если пользователь ответит например "Ногами" тогда она задает следующий вопрос... и методом исключения она в конце сообщает для какого спорта ты годишься... вот... примерно так...
Подскажите как лучше это сделать, как использовать оператор "case" в данной программе... посоветуйте как лучше всего поступить...
Если не трудно, дайте небольшой примерчик... )
Очень нужно, помогите пожалуйста... начинающему программисту...
Вот схема того что я пытаюсь сотворить http://worldofdelphi.narod.ru/kurs.jpg
Спасибо заранее!
Мдя... И не лень же человеку...
Цитата: Hydra
И ты всю логику программы switch'ами делаешь =8-O
Мдя... И не лень же человеку...
Мдя... И не лень же человеку...
А по другому я не знаю как эту задачу решить...
Посоветуйте пожалуйста как легче и лучше сделать это...
Значит у меня есть форма, в низу у меня Edit а выше Memo
Значит программа должна задавать вопросы, т.е. выводить их в
Мемо, по очередно и ждать ответа пользователя (в Edit) (Я чуть ниже давал ссылку на схему алгоритма)...
Я делаю так :
...
Const
Comp = 'Alloc: ';
keywords: array [1..8] of string = ('физический','логический','одиночный','командный','a.m','вода','лёд','отлетика');
...
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
i: integer;
s: string;
begin
if Key = #13 then
begin
s := Edit1.text;
i := 1;
while (s <> keywords) and (i <= length(keywords)) do
inc(i);
case i of
1: begin // If "Fizic" then
Memo1.Lines.Add(Comp+'Предпочитаете : одиночный, командный или A.M?');
case i of // If "одиночный" then
3: begin
Memo1.Lines.Add(Comp+'На воде, на льду или отлетику?');
case i of // If "вода" then
6: begin
Memo1.Lines.Add(Comp+'Ты хорош для "Плаванья"!');
end;
end;
case i of // If "Лёд" then
7: begin
Memo1.Lines.Add(Comp+'Ты хорош для "Катания на льду"!');
end;
end;
case i of
8: begin
Memo1.Lines.Add(Comp+'Ты хорош для "бега"!');
end;
end;
end;
end;
end;
end;{case}
end;
но чтото не то... не работает это правельно...
Подскажите, в чем ошибка и как лучше сделать
Спасибо заранее! )
Посоветуйте пожалуйста как легче и лучше сделать это...[/QUOTE]
Кодируй ответы пользователя целыми числами, строки ваабще не трогай, только пропиши их в графичесом интерфейсе и все.
var
S: string;
begin
S := Edit1.Text;
case TNumericChoiceParent(GetEnumValue(TypeInfo(TNumericChoiceParent), 'ncp_' + S)) of
ncp_Fizic: memo1.Lines.Add('Что выбираешь, A, B?');
end;
case TNumericChoiceParent(GetEnumValue(TypeInfo(TNumericChoiceParent), 'ncp_' + S)) of
ncp_A: begin
memo1.Lines.Add('Что выбираешь, B, C, D?');
case TNumericChoiceParent(GetEnumValue(TypeInfo(TNumericChoiceParent), 'ncp_' + S)) of
ncp_B: memo1.Lines.Add('...');
ncp_C: memo1.Lines.Add('...');
ncp_D: memo1.Lines.Add('...');
end;
end;
end;
end;
Вроде все прально... ) Но почему не работает Case где 3 варианта (B,C,D)? Подскажите пожалуйста... и как сделать так чтоб заработала (без If'а)
Спасибо! )
хз,у меня когда то давно так же как у тябя было,все работало )