Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2010, 10:22   #1
murmuno
 
Аватар для murmuno
 
Регистрация: 26.03.2010
Сообщений: 5
По умолчанию Delphi. Не получается вывести текст в Label

Глобальные переменные в Unit1:
Код:
  var
    Form1: TForm1;
    // Переменные для вывода рассчитанных значений:
    kkal, CarbMg, ProtMg, TaurMg, DRibMg, LCarnMg, CaffMg, VitCMg, InosMg,
    VitB6Mg, VitB12Mg, CarbPerc, ProtPerc, TaurPerc, DRibPerc, LCarnPerc,
    CaffPerc, VitCPerc, InosPerc, VitB6Perc, VitB12Perc: single;
Проблемный кусок:
Код:
  procedure TForm1.CountButClick(Sender: TObject);
  var
    k: single;
    f: TextFile;
  begin
    k:= strtoint(Form1.ValEdit.Text) / 100;   // константа для перевода мл -> 100мл
    case Form1.NameComB.ItemIndex of
      0 {Adrenaline Rush}: AssignFile(f, 'source\Adrenaline Rush.txt');
      1 {Adrenaline Life}: AssignFile(f, 'source\Adrenaline Life.txt');
      2 {Burn}           : AssignFile(f, 'source\Burn.txt');
      3 {кофе}           : AssignFile(f, 'source\coffee.txt');
      end;
    reset(f);
    readln(f, kkal);     kkal:= k*kkal;
    readln(f, CarbMg);   CarbMg:= k*CarbMg/1000; {г}         CarbPerc:= k*CarbPIn;
    readln(f, ProtMg);   ProtMg:= k*ProtMg/1000; {г}
    readln(f, TaurMg);   TaurMg:= k*TaurMg;                  TaurPerc:= k*TaurPIn;
    readln(f, DRibMg);   DRibMg:= k*DRibMg;                  DRibPerc:= k*DRibPIn;
    readln(f, LCarnMg);  LCarnMg:= k*LCarnMg;                LCarnPerc:= k*LCarnPIn;
    readln(f, CaffMg);   CaffMg:= k*CaffMg*1000; {мкг}
    readln(f, VitCMg);   VitCMg:= k*VitCMg*1000; {мкг}       VitCPerc:= k*VitCPIn;
    readln(f, InosMg);   InosMg:= k*InosMg*1000; {мкг}       InosPerc:= k*InosPIn;
    readln(f, VitB6Mg);  VitB6Mg:= k*VitB6Mg*1000; {мкг}     VitB6Perc:= k*VitB6PIn;
    readln(f, VitB12Mg); VitB12Mg:= k*VitB12Mg*1000000; {нг} VitB12Perc:= k*VitB12PIn;
    CloseFile(f);
    FormRes.kkalLab.Caption:= FormatFloat('0.##', kkal) + ' кКал';
    FormRes.CarbMgLab.Caption:= FormatFloat('0.##', CarbMg) + ' г';
{и т.д.}
    FormRes:= TFormRes.Create(Application);
    FormRes.ShowModal;
  end;
Объект NameComB принадлежит классу TComboBox. В зависимости от выбранного пункта должен активироваться определённый файл в папке 'source'.
По нажатию на кнопку CountBut создаётся новый диалог в модальном режиме, в нём должна высвечиваться рассчитанная информация.
На строчке
Код:
FormRes.kkalLab.Caption:= FormatFloat('0.##', kkal) + ' кКал';
компилятор выдаёт ошибку EAccessViolation "Access violation at address 0046C3A3 in module 'Project2.exe'. Read of address 000003A4".
Я не понимаю, что от меня требуется, чтобы ошибку исправить.

Последний раз редактировалось murmuno; 26.03.2010 в 10:33.
murmuno вне форума Ответить с цитированием
Старый 26.03.2010, 10:24   #2
Lauraldo
Пользователь
 
Аватар для Lauraldo
 
Регистрация: 22.03.2010
Сообщений: 53
По умолчанию

Код создания формы пишется все-таки ДО ее использования (я говорю о FormRes).
Lauraldo вне форума Ответить с цитированием
Старый 26.03.2010, 10:28   #3
murmuno
 
Аватар для murmuno
 
Регистрация: 26.03.2010
Сообщений: 5
По умолчанию

Форма описана в Unit2, а в Unit1 (из которого я скопировала код) в uses прописано, что используется Unit2.
Или что-то ещё надо?
murmuno вне форума Ответить с цитированием
Старый 26.03.2010, 10:47   #4
Lauraldo
Пользователь
 
Аватар для Lauraldo
 
Регистрация: 22.03.2010
Сообщений: 53
По умолчанию

Строки

Код:
FormRes.kkalLab.Caption:= FormatFloat('0.##', kkal) + ' кКал';
    FormRes.CarbMgLab.Caption:= FormatFloat('0.##', CarbMg) + ' г';
FormRes еще не существует. Поэтому ошибка. А потом ты решила ее все-таки создать)))
Код:
FormRes:= TFormRes.Create(Application);
Lauraldo вне форума Ответить с цитированием
Старый 26.03.2010, 10:50   #5
murmuno
 
Аватар для murmuno
 
Регистрация: 26.03.2010
Сообщений: 5
По умолчанию

Ясно. Извини, недопоняла. Спасибо большое (=
murmuno вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести версию файла в Label artemavd Общие вопросы Delphi 20 11.01.2010 15:33
не получается вывести текст sum42 Общие вопросы C/C++ 15 29.11.2008 18:55
Текст из label Domoffou Win Api 1 07.01.2008 09:49
Множества. Не получается вывести результат RECREATOR Общие вопросы Delphi 3 24.12.2007 23:31
Не получается вывести график RECREATOR Общие вопросы Delphi 7 23.12.2007 01:23