я написала так
Код
s:=Edit1.text;
Delete(s,length(s),1);
почему-то никак не реагирует...
и еще вопрос как можно сделать, что бы цифры вводились не с начала строки, а с конца(как в стандартном калкуляторе Windows)??
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Калькулятор |
Catty |
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 239 Пол: Женский Реальное имя: Юлия Репутация: 3 |
я только вотъ начала осваивать делфи, нам задали сделать калькулятор, я почти доделала только вот такая проблемма : нужно разработать кнопку Backspace(удаляет последнюю цифру)
я написала так Код s:=Edit1.text; Delete(s,length(s),1); почему-то никак не реагирует... и еще вопрос как можно сделать, что бы цифры вводились не с начала строки, а с конца(как в стандартном калкуляторе Windows)?? -------------------- For every evil under the sun
There is a remedy or there is none If there is one - try to find it If there is none - never mind it! |
volvo |
Сообщение
#2
|
Гость |
Цитата(Catty @ 19.03.05 15:18) почему-то никак не реагирует... Ну, скорее всего, потому что ты забыла вернуть измененное значение назад в Edit1: Код s:=Edit1.text; Delete(s,length(s),1); Edit1.text := s; |
Catty |
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 239 Пол: Женский Реальное имя: Юлия Репутация: 3 |
!!
спасибо! а как начсет второго вопроса? И еще вопрос: Заголовок обработчина для события OnKeyDown Допустим я хочу что бы при нажатии клавиши Backspace на клаве, срабатывала кнопка на калькуляторе. В книге я прочла что нужно сделать что то вроде этого, вот только не знаю, как перейти к определенной кнопке, что нуно поставить вместо ".........." Код procedure TForm1.Edit1Mouseup(Sender: TObject; var Key:word;Shift:TShiftState); begin if (Key=8) then ............... end; :flowers: Сообщение отредактировано: Catty - -------------------- For every evil under the sun
There is a remedy or there is none If there is one - try to find it If there is none - never mind it! |
volvo |
Сообщение
#4
|
Гость |
Цитата как можно сделать, что бы цифры вводились не с начала строки, а с конца(как в стандартном калкуляторе Windows)?? Для этого можешь пользоваться вот такой процедурой: Код procedure RJustifyEdit(var ThisEdit : TEdit); var Left, Width : Integer; GString : String; Rgn : TRect; TheCanvas : TControlCanvas; begin TheCanvas := TControlCanvas.Create; try TheCanvas.Control := ThisEdit; GString := ThisEdit.Text; Rgn := ThisEdit.ClientRect; TheCanvas.FillRect(Rgn); Width := TheCanvas.TextWidth(GString); Left := Rgn.Right - Width - 1; TheCanvas.TextRect(Rgn, Left, 0, GString); finally TheCanvas.Free; end; end; ... // Вот так можешь вызывать: procedure TForm1.bspsClick(Sender: TObject); begin s:=Edit1.text; Delete(s,length(s),1); Edit1.text := s; RJustifyEdit(Edit1) end; ... Цитата(Catty @ 19.03.05 16:55) Допустим я хочу что бы при нажатии клавиши Backspace на клаве, срабатывала кнопка на калькуляторе. Наверное, вот так (только не забудь установить для формы KeyPreview := True): Код procedure TForm1.bspsClick(Sender: TObject); begin s:=Edit1.text; Delete(s,length(s),1); Edit1.text := s; end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); begin if key = #8 then bspsClick(sender); end; |
Catty |
Сообщение
#5
|
Бывалый Группа: Пользователи Сообщений: 239 Пол: Женский Реальное имя: Юлия Репутация: 3 |
пасибо! :flowers:
-------------------- For every evil under the sun
There is a remedy or there is none If there is one - try to find it If there is none - never mind it! |
P@sh@ |
Сообщение
#6
|
Бывалый Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: 2 |
Catty
а зачем вообще TEdit использовать? если вводить цифры с помощью кнопочек, то лучше поставить обычный TLabel, а еще лучше TStaticText - его и оформить покрасивее можно и выравнивание вправо есть а для кнопочек на форме удобно использовать ActionList с "горячими клавишами" Сообщение отредактировано: P@sh@ - |
Текстовая версия | 20.05.2024 7:06 |