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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 12.05.2017, 23:15
crazyman crazyman вне форума
Новичок
 
Регистрация: 22.04.2012
Сообщения: 99
Репутация: 10
По умолчанию SpinEdit или UpDown

Есть несколько Edit с числовыми значениями и SpinEdit помогите обработать нажатия кнопок SpinEdit так, чтобы менялись значения Edit
Во вложении я сделал на обычных кнопках, можно ли сделать это же на SpinEdit или на UpDown???
Вложения
Тип файла: zip spinedit.zip (3.5 Кбайт, 1 просмотров)
Ответить с цитированием
  #2  
Старый 12.05.2017, 23:36
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Для вашего примера, добавьте на форму SpinEdit1 и задайте в форм криэйт
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 SpinEdit1.Button.OnUpClick:= Button1Click;
 SpinEdit1.Button.OnDownClick := Button2Click;
end;
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
crazyman (12.05.2017)
  #3  
Старый 12.05.2017, 23:43
crazyman crazyman вне форума
Новичок
 
Регистрация: 22.04.2012
Сообщения: 99
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Для вашего примера, добавьте на форму SpinEdit1 и задайте в форм криэйт
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 SpinEdit1.Button.OnUpClick:= Button1Click;
 SpinEdit1.Button.OnDownClick := Button2Click;
end;
Хотелось бы реализовать используя только спинэдит т.е. обработать нажатия только этих двух маленьких кнопочек
Ответить с цитированием
  #4  
Старый 12.05.2017, 23:46
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от crazyman
Хотелось бы...обработать нажатия только этих двух маленьких кнопочек
Так удалите баттоны, а их обработчики оставьте, делов-то
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
crazyman (13.05.2017)
  #5  
Старый 12.05.2017, 23:46
crazyman crazyman вне форума
Новичок
 
Регистрация: 22.04.2012
Сообщения: 99
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Так удалите баттоны, а их обработчики оставьте, делов-то
Почему не меняется валуе спинэдита? И заданые макс и мин валуе не работают?

Последний раз редактировалось crazyman, 12.05.2017 в 23:56.
Ответить с цитированием
  #6  
Старый 13.05.2017, 00:41
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Не меняется, правильно, поскольку переназначаются стандартные обработчики, поэтому требуется это делать самостоятельно, вот примерный код после издевательств над вашей сборкой
Код:
...
SpinEdit1: TSpinEdit;
    procedure SpinEditUp(Sender: TObject);
    procedure SpinEditDown(Sender: TObject);
...
procedure TForm1.SpinEditUp(Sender: TObject);
begin
SpinEdit1.Value:= SpinEdit1.Value+1;
Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1);
Edit2.Text:=IntToStr(StrToInt(Edit2.Text)+1);
Edit3.Text:=IntToStr(StrToInt(Edit3.Text)+1);
Edit4.Text:=IntToStr(StrToInt(Edit4.Text)+1);
end;

procedure TForm1.SpinEditDown(Sender: TObject);
begin
SpinEdit1.Value:= SpinEdit1.Value-1;
Edit1.Text:=IntToStr(StrToInt(Edit1.Text)-1);
Edit2.Text:=IntToStr(StrToInt(Edit2.Text)-1);
Edit3.Text:=IntToStr(StrToInt(Edit3.Text)-1);
Edit4.Text:=IntToStr(StrToInt(Edit4.Text)-1);
end;
а maxVal и minVal работают в любом случае
Ответить с цитированием
  #7  
Старый 13.05.2017, 08:29
crazyman crazyman вне форума
Новичок
 
Регистрация: 22.04.2012
Сообщения: 99
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Не меняется, правильно, поскольку переназначаются стандартные обработчики, поэтому требуется это делать самостоятельно, вот примерный код после издевательств над вашей сборкой
Код:
...
SpinEdit1: TSpinEdit;
    procedure SpinEditUp(Sender: TObject);
    procedure SpinEditDown(Sender: TObject);
...
procedure TForm1.SpinEditUp(Sender: TObject);
begin
SpinEdit1.Value:= SpinEdit1.Value+1;
Edit1.Text:=IntToStr(StrToInt(Edit1.Text)+1);
Edit2.Text:=IntToStr(StrToInt(Edit2.Text)+1);
Edit3.Text:=IntToStr(StrToInt(Edit3.Text)+1);
Edit4.Text:=IntToStr(StrToInt(Edit4.Text)+1);
end;

procedure TForm1.SpinEditDown(Sender: TObject);
begin
SpinEdit1.Value:= SpinEdit1.Value-1;
Edit1.Text:=IntToStr(StrToInt(Edit1.Text)-1);
Edit2.Text:=IntToStr(StrToInt(Edit2.Text)-1);
Edit3.Text:=IntToStr(StrToInt(Edit3.Text)-1);
Edit4.Text:=IntToStr(StrToInt(Edit4.Text)-1);
end;
а maxVal и minVal работают в любом случае
Да,но как остановить изменения эдитов при достижениии макс валуе или мин валуе
Ответить с цитированием
  #8  
Старый 13.05.2017, 09:25
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от crazyman
Да,но как остановить изменения эдитов при достижениии макс валуе или мин валуе
У самого SpinEdit изменения прекращаются автоматом, а для остальных требуется проверка
Код:
procedure TForm1.SpinEditUp(Sender: TObject);
begin
 SpinEdit1.Value:= SpinEdit1.Value + SpinEdit1.Increment;
  if not (SpinEdit1.Value = SpinEdit1.MaxValue) then
   begin
    ...
   end;
end;

procedure TForm1.SpinEditDown(Sender: TObject);
begin
 SpinEdit1.Value:= SpinEdit1.Value - SpinEdit1.Increment;
 if not (SpinEdit1.Value = SpinEdit1.MinValue) then
  begin
   ...
  end;
end;
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
crazyman (13.05.2017)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter