Как создать несколько условий в команде Case? - PullRequest
0 голосов
/ 16 апреля 2019

Пример:

var
 Msg: Cardinal;
case Msg of
      WM_CHAR:
      WM_KEYDOWN:
      WM_KEYUP:
        begin
         // Do something
        end;

    end;

Ответы [ 2 ]

6 голосов
/ 16 апреля 2019

Используйте запятые для разделения меток:

var
  Msg: Cardinal;
... 
case Msg of
  WM_CHAR,
  WM_KEYDOWN,
  WM_KEYUP:
    begin
      // Do something
    end;
end;

Как упоминалось @SertacAkyuz, если значения являются последовательными, вы можете сделать что-то вроде:

case Msg of
  WM_KEYDOWN .. WM_CHAR: // range 
    begin
      // Do something
    end;
end;
0 голосов
/ 16 апреля 2019

Если вы хотите, чтобы "Do Something" выполнялся во всех трех случаях, вы должны разделить метки случая запятой:

var
  Msg: Cardinal;

case Msg of
  WM_CHAR,
  WM_KEYDOWN,
  WM_KEYUP:
        begin
         // Do something
        end;
end;
...