|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
в чём моя обшибка?
существует лейбл, который меняется при изменение переменной.
в общем: Код:
блаблабла procedure SpinButton1UpClick(Sender: TObject); procedure SpinButton1DownClick(Sender: TObject); блаблабла procedure TForm1.SpinButton1UpClick(Sender: TObject); begin str:= str + 1; fre:= fre - 1; end; procedure TForm1.SpinButton1DownClick(Sender: TObject); begin str:= str - 1; fre:= fre + 1; end; end. в инете нашёл шаблон, где это же действие показано, скопировал всё идентично, и всё равно не работает |
#2
|
|||
|
|||
Ну, здесь ошибки нет.
Проверь, оба ли обработчика присвоены обеим кнопкам. Может второй обработчик ты скопировал, но не назначил кнопке. И я не вижу присваивания лейблу нового значения ни в одном из обрабочтиков. |
#3
|
|||
|
|||
там лейбл обновляется таймером и выставляется значение переменной
|
#4
|
|||
|
|||
Проверь присвоение обработчиков кнопке, как написал lmikle, и если не получится выкладывай весь код. Да и зачем делать присвоение Label'у через таймер? О_о
|
#5
|
|||
|
|||
всё, разобрался, всё работает
Drozh а как ещё менять лейбл? при действие? мне это не подходит Последний раз редактировалось ctpaxm, 03.08.2010 в 15:14. |
#6
|
|||
|
|||
Просто ради интереса, почему неполучится менять лейбл в процедурах SpinButton1UpClick и SpinButton1DownClick?
|
#7
|
|||
|
|||
у меня просто очень много лейблов(для начала) которые надо менять, и для каждого лейбла прописывать действие, вместе с изменением переменной - очень муторно, проще будет написать
Код:
procedure TForm1.Timer1Timer(Sender: TObject); begin Form1.Label11.Caption:=IntToStr(str); Form1.Label12.Caption:=IntToStr(agi); Form1.Label13.Caption:=IntToStr(int); Form1.Label14.Caption:=IntToStr(uda); Form1.Label15.Caption:=IntToStr(ref); Form1.Label16.Caption:=IntToStr(mud); Form1.Label17.Caption:=IntToStr(slo); Form1.Label21.Caption:=IntToStr(elix); Form1.Label24.Caption:=IntToStr(hp); Form1.Label25.Caption:=IntToStr(mp); Form1.Label19.Caption:=IntToStr(fre); end; |
#8
|
|||
|
|||
Ну в процедурах UP и DOWN, вы меняете только два параметра, зачем тогда обновлять их все в таймере? )))
|
#9
|
||||
|
||||
Оффтоп - что за игру пишешь?
И, да, проще в процедурах ап/дауна изменять... Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#10
|
|||
|
|||
Drozh просто я не хочу обновлять лейблы при процедуре
DJ PhoeniX это не игра, а любительская прога для игры Люди выручайте, появилась ещё одна проблема: Код:
... var hp:integer; slo:integer; lvl:integer; ... hp:= 5*slo*(1+lvl/10); end; при запуске в логе пишет Error... Incompatible types: 'Integer' and 'Extended' помогите исправить Последний раз редактировалось ctpaxm, 04.08.2010 в 01:50. |
#11
|
||||
|
||||
hp:integer; - тобишь ЦЕЛОЕ
slo:integer; - и это ЦЕЛОЕ lvl:integer; - и ещ одно ЦЕЛОЕ ... hp:= 5*slo*(1+lvl/10); Разбираемся: Целое * Целое = ЦЕЛОЕ, значит умножение нам не помеха... Целое + Целое = ЦЕЛОЕ, значит сложение тоже... И что же осталось? lvl/10 .... на давай разделим 15 на 10 ...частное целое? Вот тебе и несовместимость типов |
#12
|
|||
|
|||
но мне надо разделить, и совершить все остальные действия, и если там получиться не целое число то надо округлить до целых.
кто может помочь? кароч надо сделать так, что бы переменная hp назначалась по формуле 5*slo*(1+lvl/10) и потом округлялось. |
#13
|
||||
|
||||
Round(X) - округляем
Trunc(X) - отбрасываем дробную часть |
#14
|
||||
|
||||
round(...)?
// опоздал, ибо глюк Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |