Суббота, 23 Ноября 2024, 02:50

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Delphi:Вопрос-Ответ
TimKruzДата: Суббота, 17 Декабря 2011, 20:00 | Сообщение # 141
старожил
Сейчас нет на сайте
RabbitNerd, ну тогда так:
Code
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)


RabbitNerdДата: Суббота, 17 Декабря 2011, 20:07 | Сообщение # 142
частый гость
Сейчас нет на сайте
Cпасибо, проблема решена
P.S Какой тип переменных будет совместим с Label.Caption?
Просто мне нужно привязать переменную к Label, чтобы он выводил значение этой переменной


Сообщение отредактировал RabbitNerd - Суббота, 17 Декабря 2011, 22:02
karuyДата: Воскресенье, 18 Декабря 2011, 12:58 | Сообщение # 143
заслуженный участник
Сейчас нет на сайте
TCaption = type string;
TimKruzДата: Воскресенье, 18 Декабря 2011, 14:58 | Сообщение # 144
старожил
Сейчас нет на сайте
Quote (RabbitNerd)
P.S Какой тип переменных будет совместим с Label.Caption?
Просто мне нужно привязать переменную к Label, чтобы он выводил значение этой переменной

Вообще, Label.Caption типа string. Но с использованием функций типа inttostr, floattostr, datetimetostr и других возможно "привязать" любую переменную. Т.е. просто в таймере пишешь, например, так: label1.caption:=inttostr(i); где i - любое целое число. Ну или не в таймере, можно эту строчку вставлять там, где изменяется переменная...


arysДата: Понедельник, 19 Декабря 2011, 17:41 | Сообщение # 145
почетный гость
Сейчас нет на сайте
Всем привет помогите плиз. Уже третьи день не могу найти ошибку!!! Вот прога весит всего 4кВ плиз посматрите.....

500 символов не хватит, а писать начало... нету смысла без конца..
sk0rpi0nДата: Понедельник, 19 Декабря 2011, 18:07 | Сообщение # 146
Tiberium
Сейчас нет на сайте
Quote
Уже третьи день не могу найти ошибку!!!

В чём, собственно, заключается ошибка?

Я бы сказал, что чувства красивого у вас совсем нет. Никакой "ступенчатости" в коде...




Adventures of the Purple Ball - готов.
Wanderer - готов.


Сообщение отредактировал sk0rpi0n - Понедельник, 19 Декабря 2011, 18:08
arysДата: Понедельник, 19 Декабря 2011, 18:11 | Сообщение # 147
почетный гость
Сейчас нет на сайте
Сразу предупреждаю под спойлером находится не мало количество кода

Совсем забыл про проблему... Проблема в том что (ну если посмотреть на код то станет ясно в чем проблема), Лабел2 все время показывает одно и тоже.


500 символов не хватит, а писать начало... нету смысла без конца..

Сообщение отредактировал arys - Понедельник, 19 Декабря 2011, 18:16
sk0rpi0nДата: Понедельник, 19 Декабря 2011, 18:13 | Сообщение # 148
Tiberium
Сейчас нет на сайте
Я же спросил - какая ошибка? У меня все компилируется, например.

Quote
Совсем забыл про проблему... Проблема в том что (ну если посмотреть на код то станет ясно в чем проблема), Лабел2 все время показывает одно и тоже.

А, щас.

Не
Code
if (v=1) and (b=1) and (n=1) then
    label1.caption:='20:30';
    label2.Caption:='30000тг';

А
Code
  if (v=1) and (b=1) and (n=1) then begin
    label1.caption:='20:30';
    label2.Caption:='30000тг';
  end;

И везде так надо исправить.




Adventures of the Purple Ball - готов.
Wanderer - готов.


Сообщение отредактировал sk0rpi0n - Понедельник, 19 Декабря 2011, 18:19
arysДата: Понедельник, 19 Декабря 2011, 18:18 | Сообщение # 149
почетный гость
Сейчас нет на сайте
Отредактировал см.верх

500 символов не хватит, а писать начало... нету смысла без конца..
sk0rpi0nДата: Понедельник, 19 Декабря 2011, 18:22 | Сообщение # 150
Tiberium
Сейчас нет на сайте
Ответил. См. верх.



Adventures of the Purple Ball - готов.
Wanderer - готов.
arysДата: Понедельник, 19 Декабря 2011, 18:32 | Сообщение # 151
почетный гость
Сейчас нет на сайте
begin
Все равно не получается
end.


500 символов не хватит, а писать начало... нету смысла без конца..
sk0rpi0nДата: Понедельник, 19 Декабря 2011, 18:34 | Сообщение # 152
Tiberium
Сейчас нет на сайте
Quote
Все равно не получается

У меня всё работает, когда я ставлю так, как я показал.
К сожалению, я уже удалил файлик, и залить не смогу.
Всё-таки я решил заново скачать и исправить:


Для улучшения знаний:
Когда после if не ставишь begin, но ставишь два или более действий, то условный оператор всегда выполняет только первое.




Adventures of the Purple Ball - готов.
Wanderer - готов.


Сообщение отредактировал sk0rpi0n - Понедельник, 19 Декабря 2011, 18:39
arysДата: Понедельник, 19 Декабря 2011, 18:48 | Сообщение # 153
почетный гость
Сейчас нет на сайте
sk0rpi0n,
Большое спосибо!! Все работает!!! И за совет +


500 символов не хватит, а писать начало... нету смысла без конца..
TimKruzДата: Понедельник, 19 Декабря 2011, 19:41 | Сообщение # 154
старожил
Сейчас нет на сайте
Quote (sk0rpi0n)
Для улучшения знаний:

Многие операторы (for, while, if, варианты case, else, и прочее) Pascal/Delphi обрабатывают только одну команду/оператор. В тех случаях, когда нужно использовать более одного, в том месте, где допускается только один, нужно воспользоваться операторными скобками "begin..end". Компилятор понимает весь код, заключённый между ними, как один оператор.
arys, пользуйся отладчиком и внимательнее читай книги по Паскалю.


sk0rpi0nДата: Понедельник, 19 Декабря 2011, 20:00 | Сообщение # 155
Tiberium
Сейчас нет на сайте
Quote
Многие операторы (for, while, if, варианты case, else, и прочее) Pascal/Delphi обрабатывают только одну команду/оператор. В тех случаях, когда нужно использовать более одного, в том месте, где допускается только один, нужно воспользоваться операторными скобками "begin..end". Компилятор понимает весь код, заключённый между ними, как один оператор.

Да, это грамотней, чем у меня. biggrin




Adventures of the Purple Ball - готов.
Wanderer - готов.
vicu2010Дата: Понедельник, 19 Декабря 2011, 21:12 | Сообщение # 156
Сейчас нет на сайте
Арифметическое перенаполнение, хотел сделать ещё проще, но тоэе выкидывало эту-же ошибку, разделил всё по переменным и опять таки выкидывает((

В данной программе я хочу узнать сколько в Н дней/недель секунд, минут, часов. Последний врайтлайн можно не смотреть, там тупо коментарий).

Я с паскалем не работал, в школе мы в флеш да одноклассниках игрались... а терь захотелось калькулятор сделать, но пока опробываю функции и остановился на данной программе)

Добавлено (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
TimKruzДата: Понедельник, 19 Декабря 2011, 21:28 | Сообщение # 157
старожил
Сейчас нет на сайте
vicu2010, русская версия? surprised
...Короче, я ошибки лучше всего на английском распознаю, вот. biggrin Привычка...
У тебя ошибка из-за того, что в F пытаешься поместить число, которое больше допустимого диапазона типа integer, а в компиляторе, по-видимому, включена опция отслеживания переполнения переменных. В общем, используй вместо integer longint. Или, если нужны ооочень большие числа, попробуй определить свой тип.

***
...Всё дело в том, что Турбо Паскале максимальное число типа integer = 32767, а максимальное число типа longint = 2147483647. (можешь это узнать, обратившись к стандартным константам maxint и maxlongint) В Delphi, конечно, типы по-больше. (integer = longint, плюс есть int64, вообще огромный)




Сообщение отредактировал TimKruz - Понедельник, 19 Декабря 2011, 21:32
vicu2010Дата: Понедельник, 19 Декабря 2011, 22:11 | Сообщение # 158
Сейчас нет на сайте
Quote (TimKruz)
vicu2010, русская версия? surprised

да))
Quote (TimKruz)
У тебя ошибка из-за того, что в F пытаешься поместить число, которое больше допустимого диапазона типа integer, а в компиляторе, по-видимому, включена опция отслеживания переполнения переменных. В общем, используй вместо integer longint. Или, если нужны ооочень большие числа, попробуй определить свой тип.

попробую лонгтип)

Добавлено (19.12.2011, 21:35)
---------------------------------------------
работает)

Добавлено (19.12.2011, 22:11)
---------------------------------------------
А как вытащить файл проекта из паскаля на локальный диск и потому его туда обратно сунуть?



Программист Ruby on Rails / COBOL | Веб-дизайнер(Bootstrap, HTML5, JS) | Викверс на Construct 2 / Classic
TimKruzДата: Понедельник, 19 Декабря 2011, 22:32 | Сообщение # 159
старожил
Сейчас нет на сайте
Quote (vicu2010)
А как вытащить файл проекта из паскаля на локальный диск и потому его туда обратно сунуть?

Посмотри папку bin (там по-умолчанию) сохраняются файлы паскаля в формате *.pas (они простые текстовые). Либо выбери "сохранить как" и сохрани там, где удобно. (".." - на уровень вверх) В принципе, с помощью файлового менеджера Турбо Паскаля можно открыть любой файл на диске.


vicu2010Дата: Понедельник, 19 Декабря 2011, 22:34 | Сообщение # 160
Сейчас нет на сайте
Quote (TimKruz)
В принципе, с помощью файлового менеджера Турбо Паскаля можно открыть любой файл на диске.

та включил я его, там какие-то диски Y)) Спасибо, помог)))



Программист Ruby on Rails / COBOL | Веб-дизайнер(Bootstrap, HTML5, JS) | Викверс на Construct 2 / Classic
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг