Показать сообщение отдельно
  #2  
Старый 25.11.2009, 09:21
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Писал для себя, но думаю поможет и тебе...
Код:
//функция фильтрации ввода
function TProgramm.FilterImput (Edit : TEdit ; Key : Char) : Char ;
var
vr_Pos , vrPos, vrLength, vrSelStart: byte;
const
i: byte = 1;
begin
with Edit do begin
  vrLength := Length(Text); //определяем длину текста
  vrPos := Pos(',', Text); //проверяем наличие запятой
  vr_Pos := Pos('.', Text); //проверяем наличие запятой
  vrSelStart := SelStart; //определяем положение курсора
end;
Result := key;
Case Key of
 '0'..'9': //если нажата цифра
   begin
    if (vrPos > 0) and (vrLength - vrPos > I) and (vrSelStart >= vrPos) then
      result := #0; //"погасить" клавишу
    end;
 ',','.': //если нажата точка или запятая
  begin
   if (vr_Pos>0) or (vrPos > 0) or (vrSelStart = 0) or (vrLength = 0) then
    result := #0 //"погасить" клавишу
   else
    result := '.'; //всегда заменять точку на запятую
  end;
 #8: ; //позволить удаление знаков клавишей 'Back Space'
 else
  result {Key} := #0; //"погасить" все остальные клавиши
 end;
end;
Посмотри мою реализацию Up/Down...установка часом, минут, секунд...
Код:
procedure TForm_ustan_alarm.UpDown_hourClick(Sender: TObject;
  Button: TUDBtnType);
begin
Label_hour.Caption := IntToStr(UpDown_hour.Position);
end;

procedure TForm_ustan_alarm.UpDown_minClick(Sender: TObject;
  Button: TUDBtnType);
begin
    if UpDown_min.Position < 10
        then Label_min.Caption := '0' + IntToStr(UpDown_min.Position)
        else Label_min.Caption := IntToStr(UpDown_min.Position);
end;

procedure TForm_ustan_alarm.UpDown_secClick(Sender: TObject;
  Button: TUDBtnType);
begin
    if UpDown_sec.Position < 10
        then Label_sec.Caption := '0' + IntToStr(UpDown_sec.Position)
        else Label_sec.Caption := IntToStr(UpDown_sec.Position);
end;
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием