![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите ожалуйста. [D7, XP]
repus © (2007-06-11 16:35:00)Я только начал изучать Делфи, копировал код с книжки, но он не работает(( Говорит, что переменная 'k' может быть не идентифицирована((
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
ListBox1: TListBox;
Label3: TLabel;
Edit1: TEdit;
Label4: TLabel;
Button1: TButton;
procedure FormCreate(Sender:TObject);
procedure Button1Click(Sender:TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender:TObject);
begin
{ListBox1.items.add('Россия');
ListBox1.items.add('Австрия');
ListBox1.items.add('Англия');
ListBox1.items.add('Германия');
ListBox1.items.add ('Дания');
ListBox1.items.add('Исландия');
ListBox1.items.add ('Италия');
ListBox1.items.add ('Нидерланды');}
ListBox1.Itemindex:=0;
end;
procedure TForm1.Button1Click(Sender:TObject);
var
funt:real;
kg:real;
k:real;
begin
case ListBox1.Itemindex of
0:k:=0.4095; //Россия
1:k:=0.56001; //Австрия
2:k:=0.453592; //Англия
3..5,7:k:=0.5; //Германия, Дания, Исландия, Нидерланды
6:k:=0.31762; //Италия
end;
funt:=StrToFloat(Edit1.Text);
kg:=funt*k;
Label4.Caption:=Edit1.Text + ' ф. - это' + FloatToStrF(kg,ffFixed,6,3) + ' кг.';
end;
end.
Програмка должна переводить фунты в килограммы, но по разному, в зависимости от выбранной страны.
repus (2007-06-11 19:17:00) [1]все, спасибо)) разобрался, я тормоз какой-то((
я код в ручную написал, а в Events забыл поставить на OnClick - Button1Click.
Спасибо большое за помощь.
Германн (2007-06-11 19:10:00) [2]
> repus © (11.06.07 19:03) [12]
>
> когда поставил
>
> else
> k:=0;
>
> как сказали выше, предупреждения перестали появляться, но
> при при нажатии на кнопку программа не выдает никакого результата((
> просто остается такое же пустое поле((
>
Приведи ещё раз код. Уже с изменениями.
Desdechado (2007-06-11 19:09:00) [3]> просто остается такое жепустое поле
Т.е. ты ничего не вводишь и пытаешься это "ничего" перевести в кг?
repus (2007-06-11 19:03:00) [4]когда поставил
else
k:=0;
как сказали выше, предупреждения перестали появляться, но при при нажатии на кнопку программа не выдает никакого результата(( просто остается такое же пустое поле((
Германн (2007-06-11 18:54:00) [5]
> repus © (11.06.07 18:51) [10]
>
> [Warning] Unit1.pas(60): Variable 'k' might not have been
> initialized.
>
Про это предупреждение тебе уже всё сказали. Теперь рассказывай о
> repus © (11.06.07 18:31) [7]
>
> не работает((
>
repus (2007-06-11 18:51:00) [6][Warning] Unit1.pas(60): Variable 'k' might not have been initialized.
Anatoly Podgoretsky (2007-06-11 18:47:00) [7]repus © (11.06.07 16:35)
Не надо самостоятельно переводить на русский, приводи оригинал сообщения.
Плохиш (2007-06-11 18:34:00) [8]
> repus © (11.06.07 18:31) [7]
> не работает
Это не наша проблема...
repus (2007-06-11 18:31:00) [9]не работает((
Desdechado (2007-06-11 17:53:00) [10]else
k:=0;
repus (2007-06-11 17:48:00) [11]угу, разные))
а можно поподробнее, что после elseписать? просто это всего-лишь пятый урок в книге, и первый про case, поэтому я толком еще сообразить не могу((
Плохиш (2007-06-11 17:47:00) [12]
> TUser © (11.06.07 17:36) [3]
> А что, там фунты разные?
ну, дык http://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D1%82_%28%D0%B5%D0%B4%D0%B8%D0%BD%D0%B8%D1%86%D0%B0_%D0%B8%D0%B7%D0%BC%D0%B5%D1%80%D0%B5%D0%BD%D0%B8%D1%8F%29
TUser (2007-06-11 17:36:00) [13]А что, там фунты разные? (Мысль о том, что там разные килограммы я себе запретил. :))
Kostafey (2007-06-11 16:49:00) [14]Вместо Ctrl+F9 нажать F9
Плохиш (2007-06-11 16:40:00) [15]
> Говорит, что переменная 'k' может быть не идентифицирована
Это не ошибка, а предупреждение и говорит о том, что не для всех возможных вариантов ListBox1.Itemindex создана секция в case. Добавь в case секцию else, можешь даже в неё перенести всё из секции для 0:.