procedure TForm1.Timer1Timer(Sender: TObject); begin if strtoint(Label1.Caption)<12 then Label1.Caption:=inttostr(strtoint(Label1.Caption)+1) else begin Label1.Caption:='0'; Label2.Caption:=inttostr(strtoint(Label2.Caption)+1); end; end;
Больше label'ов - делаешь несколько конструкций if, вложенных друг в друга. (следующую проверку нужно делать перед увеличением значения Label2)
Cпасибо, проблема решена P.S Какой тип переменных будет совместим с Label.Caption? Просто мне нужно привязать переменную к Label, чтобы он выводил значение этой переменной
Сообщение отредактировал RabbitNerd - Суббота, 17 Декабря 2011, 22:02
P.S Какой тип переменных будет совместим с Label.Caption? Просто мне нужно привязать переменную к Label, чтобы он выводил значение этой переменной
Вообще, Label.Caption типа string. Но с использованием функций типа inttostr, floattostr, datetimetostr и других возможно "привязать" любую переменную. Т.е. просто в таймере пишешь, например, так: label1.caption:=inttostr(i); где i - любое целое число. Ну или не в таймере, можно эту строчку вставлять там, где изменяется переменная...
Всем привет помогите плиз. Уже третьи день не могу найти ошибку!!! Вот прога весит всего 4кВ плиз посматрите..... 500 символов не хватит, а писать начало... нету смысла без конца..
var Form1: TForm1; r1,r2,r3,c1,c2,c3: string; mn,vt,nr:string; m,t,v,b,n:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin mn:=combobox1.items[combobox1.itemindex]; if (mn='Îñêåìåí') then v:=1 ELSE if (mn='Àñòàíà') then v:=2 else if (mn='Àëìàòà') then v:=3 else
if (mn='') then label1.caption:='Âûáåðèòå èç ñïèñêà'; if (mn='') then label2.caption:='Âûáåðèòå èç ñïèñêà';
vt:=combobox2.Items[combobox2.itemindex]; if (vt='ñàìîëåò') then b:=1 else if (vt='ïîåçä') then b:=2 else if (vt='êàòåð') then b:=3 else if (vt='') then label1.caption:='Âûáåðèòå èç ñïèñêà'; if (vt='') then label2.caption:='Âûáåðèòå èç ñïèñêà';
nr:=combobox3.Items[combobox3.itemindex]; if (nr='1') then n:=1 else if (nr='2') then n:=2 else if (nr='3') then n:=3 else if (nr='') then label1.caption:='Âûáåðèòå èç ñïèñêà'; if (nr='') then label2.caption:='Âûáåðèòå èç ñïèñêà';
if (v=1) and (b=1) and (n=1) then label1.caption:='20:30'; label2.Caption:='30000òã';
if (v=1) and (b=1) and (n=2) then label1.Caption:='22:00'; label2.Caption:='25000òã';
if (v=1) and (b=1) and (n=3) then label1.Caption:='23:30'; label2.Caption:='25000òã';
if (v=1) and (b=2) and (n=1) then label1.Caption:='20:20'; label2.Caption:='25000òã';
if (v=1) and (b=2) and (n=2) then label1.Caption:='21:20'; label2.Caption:='20000òã';
if (v=1) and (b=2) and (n=3) then label1.Caption:='23:20'; label2.Caption:='20000òã';
if (v=1) and (b=3) and (n=1) then label1.Caption:='21:00'; label2.Caption:='35000òã';
if (v=1) and (b=3) and (n=2) then label1.Caption:='22:20'; label2.Caption:='30000òã';
if (v=1) and (b=3) and (n=3) then label1.Caption:='23:50'; label2.Caption:='30000òã';
if (v=2) and (b=1) and (n=1) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=2) and (b=1) and (n=2) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=2) and (b=1) and (n=3) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=2) and (b=2) and (n=1) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=2) and (b=2) and (n=2) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=2) and (b=2) and (n=3) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=2) and (b=3) and (n=1) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=2) and (b=3) and (n=2) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=2) and (b=3) and (n=3) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=3) and (b=1) and (n=1) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=3) and (b=1) and (n=2) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=3) and (b=1) and (n=3) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=3) and (b=2) and (n=1) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=3) and (b=2) and (n=2) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=3) and (b=2) and (n=3) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=3) and (b=3) and (n=1) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=3) and (b=3) and (n=2) then label1.Caption:='18:20'; label2.Caption:='2503òã';
if (v=3) and (b=3) and (n=3) then label1.Caption:='18:20'; label2.Caption:='2503òã';
end;
end.
Совсем забыл про проблему... Проблема в том что (ну если посмотреть на код то станет ясно в чем проблема), Лабел2 все время показывает одно и тоже. 500 символов не хватит, а писать начало... нету смысла без конца..
Сообщение отредактировал arys - Понедельник, 19 Декабря 2011, 18:16
У меня всё работает, когда я ставлю так, как я показал. К сожалению, я уже удалил файлик, и залить не смогу. Всё-таки я решил заново скачать и исправить:
var Form1: TForm1; r1,r2,r3,c1,c2,c3: string; mn,vt,nr:string; m,t,v,b,n:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin mn:=combobox1.items[combobox1.itemindex]; if (mn='Оскемен') then v:=1 ELSE if (mn='Астана') then v:=2 else if (mn='Алмата') then v:=3 else
if (mn='') then label1.caption:='Выберите из списка'; if (mn='') then label2.caption:='Выберите из списка';
vt:=combobox2.Items[combobox2.itemindex]; if (vt='самолет') then b:=1 else if (vt='поезд') then b:=2 else if (vt='катер') then b:=3 else if (vt='') then label1.caption:='Выберите из списка'; if (vt='') then label2.caption:='Выберите из списка';
nr:=combobox3.Items[combobox3.itemindex]; if (nr='1') then n:=1 else if (nr='2') then n:=2 else if (nr='3') then n:=3 else if (nr='') then label1.caption:='Выберите из списка'; if (nr='') then label2.caption:='Выберите из списка';
if (v=1) and (b=1) and (n=1) then begin label1.caption:='20:30'; label2.Caption:='30000тг'; end;
if (v=1) and (b=1) and (n=2) then begin label1.Caption:='22:00'; label2.Caption:='25000тг'; end;
if (v=1) and (b=1) and (n=3) then begin label1.Caption:='23:30'; label2.Caption:='25000тг'; end;
if (v=1) and (b=2) and (n=1) then begin label1.Caption:='20:20'; label2.Caption:='25000тг'; end;
if (v=1) and (b=2) and (n=2) then begin label1.Caption:='21:20'; label2.Caption:='20000тг'; end;
if (v=1) and (b=2) and (n=3) then begin label1.Caption:='23:20'; label2.Caption:='20000тг'; end;
if (v=1) and (b=3) and (n=1) then begin label1.Caption:='21:00'; label2.Caption:='35000тг'; end;
if (v=1) and (b=3) and (n=2) then begin label1.Caption:='22:20'; label2.Caption:='30000тг'; end;
if (v=1) and (b=3) and (n=3) then begin label1.Caption:='23:50'; label2.Caption:='30000тг'; end;
if (v=2) and (b=1) and (n=1) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=2) and (b=1) and (n=2) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=2) and (b=1) and (n=3) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=2) and (b=2) and (n=1) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=2) and (b=2) and (n=2) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=2) and (b=2) and (n=3) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=2) and (b=3) and (n=1) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=2) and (b=3) and (n=2) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=2) and (b=3) and (n=3) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=3) and (b=1) and (n=1) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=3) and (b=1) and (n=2) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=3) and (b=1) and (n=3) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=3) and (b=2) and (n=1) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=3) and (b=2) and (n=2) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=3) and (b=2) and (n=3) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=3) and (b=3) and (n=1) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end; if (v=3) and (b=3) and (n=2) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end;
if (v=3) and (b=3) and (n=3) then begin label1.Caption:='18:20'; label2.Caption:='2503тг'; end; end;
end.
Для улучшения знаний: Когда после if не ставишь begin, но ставишь два или более действий, то условный оператор всегда выполняет только первое.
Многие операторы (for, while, if, варианты case, else, и прочее) Pascal/Delphi обрабатывают только одну команду/оператор. В тех случаях, когда нужно использовать более одного, в том месте, где допускается только один, нужно воспользоваться операторными скобками "begin..end". Компилятор понимает весь код, заключённый между ними, как один оператор. arys, пользуйся отладчиком и внимательнее читай книги по Паскалю.
Многие операторы (for, while, if, варианты case, else, и прочее) Pascal/Delphi обрабатывают только одну команду/оператор. В тех случаях, когда нужно использовать более одного, в том месте, где допускается только один, нужно воспользоваться операторными скобками "begin..end". Компилятор понимает весь код, заключённый между ними, как один оператор.
Арифметическое перенаполнение, хотел сделать ещё проще, но тоэе выкидывало эту-же ошибку, разделил всё по переменным и опять таки выкидывает((
В данной программе я хочу узнать сколько в Н дней/недель секунд, минут, часов. Последний врайтлайн можно не смотреть, там тупо коментарий).
Я с паскалем не работал, в школе мы в флеш да одноклассниках игрались... а терь захотелось калькулятор сделать, но пока опробываю функции и остановился на данной программе)
Добавлено (19.12.2011, 21:12) --------------------------------------------- Попробывал заменить типа b:=(a*24); на b:=(round(a*24));, но всёравно выкидывает(( Программист Ruby on Rails / COBOL | Веб-дизайнер(Bootstrap, HTML5, JS) | Викверс на Construct 2 / Classic
Сообщение отредактировал vicu2010 - Понедельник, 19 Декабря 2011, 21:14
vicu2010, русская версия? ...Короче, я ошибки лучше всего на английском распознаю, вот. Привычка... У тебя ошибка из-за того, что в F пытаешься поместить число, которое больше допустимого диапазона типа integer, а в компиляторе, по-видимому, включена опция отслеживания переполнения переменных. В общем, используй вместо integer longint. Или, если нужны ооочень большие числа, попробуй определить свой тип.
*** ...Всё дело в том, что Турбо Паскале максимальное число типа integer = 32767, а максимальное число типа longint = 2147483647. (можешь это узнать, обратившись к стандартным константам maxint и maxlongint) В Delphi, конечно, типы по-больше. (integer = longint, плюс есть int64, вообще огромный)
Сообщение отредактировал TimKruz - Понедельник, 19 Декабря 2011, 21:32
У тебя ошибка из-за того, что в F пытаешься поместить число, которое больше допустимого диапазона типа integer, а в компиляторе, по-видимому, включена опция отслеживания переполнения переменных. В общем, используй вместо integer longint. Или, если нужны ооочень большие числа, попробуй определить свой тип.
Добавлено (19.12.2011, 22:11) --------------------------------------------- А как вытащить файл проекта из паскаля на локальный диск и потому его туда обратно сунуть?
Программист Ruby on Rails / COBOL | Веб-дизайнер(Bootstrap, HTML5, JS) | Викверс на Construct 2 / Classic
А как вытащить файл проекта из паскаля на локальный диск и потому его туда обратно сунуть?
Посмотри папку bin (там по-умолчанию) сохраняются файлы паскаля в формате *.pas (они простые текстовые). Либо выбери "сохранить как" и сохрани там, где удобно. (".." - на уровень вверх) В принципе, с помощью файлового менеджера Турбо Паскаля можно открыть любой файл на диске.
В принципе, с помощью файлового менеджера Турбо Паскаля можно открыть любой файл на диске.
та включил я его, там какие-то диски Y)) Спасибо, помог))) Программист Ruby on Rails / COBOL | Веб-дизайнер(Bootstrap, HTML5, JS) | Викверс на Construct 2 / Classic