2017-02-15 10 views
-2

Хорошо так, я постоянно получаю ошибку {тип выражения должен быть БУЛЕВЫ}Я имею вопрос Загрузка фотографии в Delphi с помощью «IF» и «ТОГДА» команды

мой код

procedure TForm1.RadioGroup1Click(Sender: TObject); 
begin 
    If (RadioGroup1.ItemIndex := 0) 
    Then (Image1.Picture.LoadFromFile ('Plus.jpg')); 
end; 

имеют ту же ошибку, используется ли я: Then (Image1.Picture.LoadFromFile (Plus.jpg)); Then := (Image1.Picture.LoadFromFile (Plus.jpg));

`Then = (Image1.Picture.LoadFromFile (Plus.jpg));` 
+0

Ошибка после «Затем» –

+2

: = является оператором присвоения. Используйте plain = для сравнения. –

+1

'If (RadioGroup1.ItemIndex = 0)' -> '=' является сравнение, ': =' является присваиванием –

ответ

2
If (RadioGroup1.ItemIndex := 0) 

Вы используете :=, который является оператором присваивания. Вы ищете сравнение равенства, =. Как это:

If (RadioGroup1.ItemIndex = 0) 

Это довольно необычный стиль, чтобы написать Then на новой линии. Я бы отформатировал ваш код следующим образом:

if RadioGroup1.ItemIndex = 0 then 
    Image1.Picture.LoadFromFile('Plus.jpg'); 

Я также удалил несколько паразитов.

+0

Теперь он работает, спасибо –

+0

В этом случае параны в 'if'-clause излишни, но некоторые могут настаивать на их наличии в любом случае, чтобы сделать тест легко расширяемым для чего-то вроде' if (RadioGroup1.ItemIndex = 0) и (Image1 <> nil) then'. Я лично предпочитаю ваш стиль, т. Е. Удаляю их, если они не нужны. –