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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.09.2014, 22:17
MrZerO MrZerO вне форума
Прохожий
 
Регистрация: 18.04.2014
Сообщения: 20
Версия Delphi: Delphi 7
Репутация: 10
Хорошо калькулятор на Delphi 7

Доброго времени суток, как можно реализовать DecToBin калькулятор на delphi? в интернете искал, не нашел. Обьясню: есть 2 edit'та и кнопка допустим вводим число 37 в первый, и надо чтоб во 2 edit'е появлялся ответ
в 2 системе (10 0101), и на оборот.
Заранее спасибо)
Желательно код)))
Ответить с цитированием
  #2  
Старый 06.09.2014, 23:07
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Сдвиги и битовые операции. Простенький цикл из shl и and.
Что конкретно не получается сделать?
А за готовым кодом не сюда писать надо, а в спец разделы.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 06.09.2014, 23:11
MrZerO MrZerO вне форума
Прохожий
 
Регистрация: 18.04.2014
Сообщения: 20
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Сдвиги и битовые операции. Простенький цикл из shl и and.
Что конкретно не получается сделать?
А за готовым кодом не сюда писать надо, а в спец разделы.
Я понимаю, но можно код, (весь) в лс
Ответить с цитированием
  #4  
Старый 06.09.2014, 23:13
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Я понимаю, но можно код, (весь) в лс
Цитата:
А за готовым кодом не сюда писать надо, а в спец разделы.
Очевидно, не понимаете.
Для этого есть разделы "код на шару!" и "Работа".
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 06.09.2014, 23:15
MrZerO MrZerO вне форума
Прохожий
 
Регистрация: 18.04.2014
Сообщения: 20
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Очевидно, не понимаете.
Для этого есть разделы "код на шару!" и "Работа".
Ладно вопросов нет, я уважаю ваш форум, создал тему в разделе 'Код на шару' http://www.delphisources.ru/forum/sh...ad.php?t=26588
теперь вы можете с кодом помочь?
Ответить с цитированием
  #6  
Старый 07.09.2014, 02:50
Аватар для blackstrip
blackstrip blackstrip вне форума
Прохожий
 
Регистрация: 03.09.2014
Адрес: Подольск
Сообщения: 15
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от MrZerO
Доброго времени суток, как можно реализовать DecToBin калькулятор на delphi? в интернете искал, не нашел. Обьясню: есть 2 edit'та и кнопка допустим вводим число 37 в первый, и надо чтоб во 2 edit'е появлялся ответ
в 2 системе (10 0101), и на оборот.
Заранее спасибо)
Желательно код)))

Встроенных функций перевода в двоичную систему - в дельфи нет. Но можно написать свою. Или взять готовую.

Гуглим "delphi превратить число в двоичное", находим, например http://otvet.mail.ru/question/23910910

Берем оттуда функцию, дописываем к ее заголовку "TForm1." и вставляем в код unit1.pas:

Код:
function TForm1.IntToBinary(x: integer): string;
var
str: string;
begin
str:='';
while x>1 do
begin
 if x mod 2=0 then str:='0'+str else str:='1'+str;
 x:=x div 2;
end;
if x=0 then str:='0'+str else str:='1'+str;
Result:=str;
end;

Пусть на форме у нас Edit1, Edit2 и Button1. В событии по клику для Button1 пишем:
Код:
Edit2.Text := IntToBinary(StrToInt(Edit1.Text));

И еще вверху unit1.pas, там где все заголовки функций юнита описываются (включая заголовок нашей функции обработки нажатия на кнопку "procedure Button1Click(Sender: TObject);"), надо добавить заголовок функции нашей самодельной, но уже без "TForm1.":

Код:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    function IntToBinary(x: integer): string;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Итоговый код Unit1.pas (Delphi 7):

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    function IntToBinary(x: integer): string;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.IntToBinary(x: integer): string;
var
str: string;
begin
str:='';
while x>1 do
begin
 if x mod 2=0 then str:='0'+str else str:='1'+str;
 x:=x div 2;
end;
if x=0 then str:='0'+str else str:='1'+str;
Result:=str;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := IntToBinary(StrToInt(Edit1.Text));
end;

end.
Ответить с цитированием
Этот пользователь сказал Спасибо blackstrip за это полезное сообщение:
MrZerO (07.09.2014)
  #7  
Старый 07.09.2014, 13:44
MrZerO MrZerO вне форума
Прохожий
 
Регистрация: 18.04.2014
Сообщения: 20
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от blackstrip
Встроенных функций перевода в двоичную систему - в дельфи нет. Но можно написать свою. Или взять готовую.

Гуглим "delphi превратить число в двоичное", находим, например http://otvet.mail.ru/question/23910910

Берем оттуда функцию, дописываем к ее заголовку "TForm1." и вставляем в код unit1.pas:

Код:
function TForm1.IntToBinary(x: integer): string;
var
str: string;
begin
str:='';
while x>1 do
begin
 if x mod 2=0 then str:='0'+str else str:='1'+str;
 x:=x div 2;
end;
if x=0 then str:='0'+str else str:='1'+str;
Result:=str;
end;

Пусть на форме у нас Edit1, Edit2 и Button1. В событии по клику для Button1 пишем:
Код:
Edit2.Text := IntToBinary(StrToInt(Edit1.Text));

И еще вверху unit1.pas, там где все заголовки функций юнита описываются (включая заголовок нашей функции обработки нажатия на кнопку "procedure Button1Click(Sender: TObject);"), надо добавить заголовок функции нашей самодельной, но уже без "TForm1.":

Код:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    function IntToBinary(x: integer): string;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

Итоговый код Unit1.pas (Delphi 7):

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    function IntToBinary(x: integer): string;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.IntToBinary(x: integer): string;
var
str: string;
begin
str:='';
while x>1 do
begin
 if x mod 2=0 then str:='0'+str else str:='1'+str;
 x:=x div 2;
end;
if x=0 then str:='0'+str else str:='1'+str;
Result:=str;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := IntToBinary(StrToInt(Edit1.Text));
end;

end.
Спасибо вам большое)))), очень помогли
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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