Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Помогите справиться с case


Автор: kulikoff 7.9.2006, 09:55
Есть такая процедурка:
Код

procedure TForm9.StringGrid1SelectCell(Sender: TObject; ACol,  ARow: Integer; var CanSelect: Boolean);

var a: real;

begin
  sLabel3.Caption:='МФО '+Form1.ADOQuery5.FieldByName('bankmfo').AsString;
  sLabel4.Caption:='ЄДРПОУ '+Form1.ADOQuery5.FieldByName('organizationzkpo').AsString;
  a:=StrToFloat(StringGrid1.Cells[2,Arow]);
  case a of
    0.005: sLabel5.Caption:='Відсоток: 0,5%';
    0.01: sLabel5.Caption:='Відсоток: 1%';
    0.02: sLabel5.Caption:='Відсоток: 2%';
  end;
end;


в case ругается 
Код

ordinal type required
. Помогите справиться с этими типами, плиз...

Автор: Elfebet 7.9.2006, 10:02
в Делфи case c таким типом не работает, в основном нужно использовать char или integer.

Добавлено @ 10:05 
в твоем случае лучше испольовать 
Код

if (a=0.005) then sLabel5.Caption:='Відсоток: 0,5%'
else if (a=0.01) then sLabel5.Caption:='Відсоток: 1%'
else if (a=0.02) then sLabel5.Caption:='Відсоток: 2%';

Автор: kulikoff 7.9.2006, 10:06
понятно, буду if юзать. Спасибо smile 

Автор: Romikgy 7.9.2006, 10:14
Код

var a: longint ;

a:=Int(1000*StrToFloat(StringGrid1.Cells[2,Arow]));
  case a of
    5: sLabel5.Caption:='Відсоток: 0,5%';
    10: sLabel5.Caption:='Відсоток: 1%';
    20: sLabel5.Caption:='Відсоток: 2%';
  end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)