Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите ожалуйста. [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:.


Наверх

Титульная страница Поиск, карта сайта Написать письмо