Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.08.2010, 03:22
ctpaxm ctpaxm вне форума
Прохожий
 
Регистрация: 09.07.2010
Сообщения: 18
Репутация: 10
По умолчанию в чём моя обшибка?

существует лейбл, который меняется при изменение переменной.
в общем:
Код:
блаблабла
    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  
Старый 03.08.2010, 05:06
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,040
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, здесь ошибки нет.
Проверь, оба ли обработчика присвоены обеим кнопкам. Может второй обработчик ты скопировал, но не назначил кнопке. И я не вижу присваивания лейблу нового значения ни в одном из обрабочтиков.
Ответить с цитированием
  #3  
Старый 03.08.2010, 13:06
ctpaxm ctpaxm вне форума
Прохожий
 
Регистрация: 09.07.2010
Сообщения: 18
Репутация: 10
По умолчанию

там лейбл обновляется таймером и выставляется значение переменной
Ответить с цитированием
  #4  
Старый 03.08.2010, 14:13
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Проверь присвоение обработчиков кнопке, как написал lmikle, и если не получится выкладывай весь код. Да и зачем делать присвоение Label'у через таймер? О_о
Ответить с цитированием
  #5  
Старый 03.08.2010, 14:50
ctpaxm ctpaxm вне форума
Прохожий
 
Регистрация: 09.07.2010
Сообщения: 18
Репутация: 10
По умолчанию

всё, разобрался, всё работает
Drozh а как ещё менять лейбл? при действие?
мне это не подходит

Последний раз редактировалось ctpaxm, 03.08.2010 в 15:14.
Ответить с цитированием
  #6  
Старый 03.08.2010, 21:44
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Просто ради интереса, почему неполучится менять лейбл в процедурах SpinButton1UpClick и SpinButton1DownClick?
Ответить с цитированием
  #7  
Старый 03.08.2010, 22:30
ctpaxm ctpaxm вне форума
Прохожий
 
Регистрация: 09.07.2010
Сообщения: 18
Репутация: 10
По умолчанию

у меня просто очень много лейблов(для начала) которые надо менять, и для каждого лейбла прописывать действие, вместе с изменением переменной - очень муторно, проще будет написать
Код:
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  
Старый 03.08.2010, 23:25
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Ну в процедурах UP и DOWN, вы меняете только два параметра, зачем тогда обновлять их все в таймере? )))
Ответить с цитированием
  #9  
Старый 03.08.2010, 23:36
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Оффтоп - что за игру пишешь?
И, да, проще в процедурах ап/дауна изменять...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #10  
Старый 04.08.2010, 00:48
ctpaxm ctpaxm вне форума
Прохожий
 
Регистрация: 09.07.2010
Сообщения: 18
Репутация: 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  
Старый 04.08.2010, 06:47
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

hp:integer; - тобишь ЦЕЛОЕ
slo:integer; - и это ЦЕЛОЕ
lvl:integer; - и ещ одно ЦЕЛОЕ
...
hp:= 5*slo*(1+lvl/10);
Разбираемся:
Целое * Целое = ЦЕЛОЕ, значит умножение нам не помеха...
Целое + Целое = ЦЕЛОЕ, значит сложение тоже...
И что же осталось? lvl/10 .... на давай разделим 15 на 10 ...частное целое?
Вот тебе и несовместимость типов
Ответить с цитированием
  #12  
Старый 04.08.2010, 15:08
ctpaxm ctpaxm вне форума
Прохожий
 
Регистрация: 09.07.2010
Сообщения: 18
Репутация: 10
По умолчанию

но мне надо разделить, и совершить все остальные действия, и если там получиться не целое число то надо округлить до целых.
кто может помочь?
кароч надо сделать так, что бы переменная hp назначалась по формуле 5*slo*(1+lvl/10) и потом округлялось.
Ответить с цитированием
  #13  
Старый 04.08.2010, 15:13
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 660
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Round(X) - округляем
Trunc(X) - отбрасываем дробную часть
Ответить с цитированием
  #14  
Старый 04.08.2010, 15:17
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

round(...)?
// опоздал, ибо глюк
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter