![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос от новичка. [D7, XP]
Дмитрий © (2009-04-14 17:51:00)Всем привет! Имеется такой вопрос:
Я разработал простенькую програмку "Флаги" в, которой имеется два Radiobuttona, две кнопки "показать", "выход" и один Image.
Суть программы заключается в том, что необходимо показать флаг той страны которую я выбрал в соответсвующем Radiobutton при нажатии на кнопку "Показать", а если страна не выбрана при щелчке по кнопке "Показать" вывести Message:"Выбирите сперва страну!".
Вот мой код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Jpeg;
type
TForm1 = class(TForm)
Image1: TImage;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if RadioButton1.Checked= True then Image1.Picture.LoadFromFile('russian.jpg') else ShowMessage ('Выбирите сперва страну');
if RadioButton2.Checked= True then Image1.Picture.LoadFromFile('ukraine.jpg') else ShowMessage ('Выбирите сперва страну');
end;
end.
Так вот, когда я выбирираю страну и нажимаю кнопку "Показать"
то флаг показывается, но следом и сообщение мое вылетает.Где тут у меня в коде логика нарушена? Подскажите пожайлуста. Заранее благодарю!
P.S.В Делфи, да и вообще в программировании я новичек, поэтому и вопросы такие - ламерские.
Denis__ (2009-04-14 18:26:00) [1]Если при первом входе поставить на Россию, то Украина обидится. А если на Украину - то Россия. Непорядок. А появится там usa.jpg и все, кирдык. Начнется война за права... им только повод дай.
Ega23 (2009-04-14 18:23:00) [2]
> Ega23, наверное чтобы все были изначально в равных условиях%)
> демократия рулит! А то большая тяга сразу жмакнуть по баттону=)
Я бы ри выход сохрнял, при входе - восстанавливал.
Дмитрий (2009-04-14 18:22:00) [3]Ясно всем спасибо за ответ!
Denis__ (2009-04-14 18:21:00) [4]Ega23, наверное чтобы все были изначально в равных условиях%) демократия рулит! А то большая тяга сразу жмакнуть по баттону=)
Denis__ (2009-04-14 18:19:00) [5]Или вообще заюзайте TRadioGroup и обращайтесь по индексу.
case RadioGroup1.ItemIndex of
0 : Image1.Picture.LoadFromFile('russian.jpg');
1 : Image1.Picture.LoadFromFile('ukraine.jpg');
2 : Image1.Picture.LoadFromFile('zimbabve.jpg')
//...
else
ShowMessage ('Страна не выбрана');
end;
Ega23 (2009-04-14 18:18:00) [6]Тольо мне непонятно, почему нельзя принудитльно default поствить.
Denis__ (2009-04-14 18:15:00) [7]
> В Делфи, да и вообще в программировании я новичек
А причем тут программирование? Это логика на уровня детсада.
Denis__ (2009-04-14 18:13:00) [8]
> if RadioButton1.Checked= True
> if RadioButton2.Checked= True
Ну наверное один из них все-таки включен? Вот тогда показывается сообщение, а затем Флаг(или наоборот)
Сделайте так
if RadioButton1.Checked then
Image1.Picture.LoadFromFile('russian.jpg')
else
if RadioButton2.Checked then
Image1.Picture.LoadFromFile('ukraine.jpg')
else
ShowMessage ('Выбeрите сперва страну');
Ega23 (2009-04-14 18:10:00) [9]
if not (RadioButton1.Checked or RadioButton2.Checked) then
begin
ShowMessage ('Выбирите сперва страну');
Exit;
end;