IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Калькулятор
Catty
сообщение 19.03.2005 16:18
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

Репутация: -  3  +


rolleyes.gif я только вотъ начала осваивать делфи, нам задали сделать калькулятор, я почти доделала только вот такая проблемма : нужно разработать кнопку Backspace(удаляет последнюю цифру)
я написала так
Код

s:=Edit1.text;
Delete(s,length(s),1);

почему-то никак не реагирует... huh.gif
и еще вопрос как можно сделать, что бы цифры вводились не с начала строки, а с конца(как в стандартном калкуляторе 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!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.03.2005 16:26
Сообщение #2


Гость






Цитата(Catty @ 19.03.05 15:18)
почему-то никак не реагирует...

Ну, скорее всего, потому что ты забыла вернуть измененное значение назад в Edit1:
Код
s:=Edit1.text;
Delete(s,length(s),1);
Edit1.text := s;
 К началу страницы 
+ Ответить 
Catty
сообщение 19.03.2005 17:55
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 239
Пол: Женский
Реальное имя: Юлия

Репутация: -  3  +


!! lol.gif
спасибо!
а как начсет второго вопроса?
И еще вопрос:
Заголовок обработчина для события OnKeyDown
Допустим я хочу что бы при нажатии клавиши Backspace на клаве, срабатывала кнопка на калькуляторе. В книге я прочла что нужно сделать что то вроде этого, вот только не знаю, как перейти к определенной кнопке, что нуно поставить вместо ".........."
Код

procedure TForm1.Edit1Mouseup(Sender: TObject; var Key:word;Shift:TShiftState);
begin
if (Key=8) then
...............
end;

:flowers:

Сообщение отредактировано: Catty - 19.03.2005 18:14


--------------------
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!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.03.2005 19:30
Сообщение #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
сообщение 19.03.2005 23:15
Сообщение #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!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
P@sh@
сообщение 21.03.2005 6:41
Сообщение #6


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


Catty
а зачем вообще TEdit использовать? если вводить цифры с помощью кнопочек, то лучше поставить обычный TLabel, а еще лучше TStaticText - его и оформить покрасивее можно и выравнивание вправо есть
а для кнопочек на форме удобно использовать ActionList с "горячими клавишами"

Сообщение отредактировано: P@sh@ - 21.03.2005 6:58
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 21:02
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"