![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.11.2012
Сообщений: 12
|
![]()
уважаемые программисты,специалисты )
помогите пожалуйста преобразовать программу с Дельфи в Паскаль unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TMainForm = class(TForm) Panel1: TPanel; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; Button8: TButton; Button9: TButton; Button10: TButton; Button11: TButton; Button12: TButton; Button13: TButton; Button14: TButton; Button15: TButton; Button16: TButton; Button17: TButton; Button18: TButton; Button19: TButton; Text: TEdit; Button20: TButton; Button21: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button17Click(Sender: TObject); procedure Button18Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button14Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button11Click(Sender: TObject); procedure Button16Click(Sender: TObject); procedure Button15Click(Sender: TObject); procedure Button19Click(Sender: TObject); procedure Button20Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button21Click(Sender: TObject); procedure TextChange(Sender: TObject); procedure Panel1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; Const HexTab : array[0..15] of char = ('0','1','2','3','4','5','6','7', '8','9','A','B','C','D','E','F'); var MainForm: TMainForm; LastAdd:string; PosR:integer; Res : Array[1..17] of integer; I : Integer; S : String; F : Text; flag:boolean; PosR1 : Integer; implementation {$R *.dfm} Procedure Sum(V : String); { Процедура, которая прибавляет к результату новое значение } Var A : Byte; PosR : Integer; Begin For I := 1 to Length(V) do { Переводим все буквы в верхний регистр и ищем ошибки } Begin If V[i] in['a'..'f'] then Dec(V[i],32); { Если этот симвл - маленькая буква, то уменьшаем ее значение на 32 (переводим в верхний регистр) } If not(V[i] in['0'..'9','A'..'F']) then { Если это не шестнадцатиричное значение, то ошибка } Begin WriteLn(V,' is not hex!'); Exit; End; End; For I := Length(V) downto 1 do Begin If V[i]>'9' then A := Ord(V[i])-48-7 else A := Ord(V[i])-48; PosR := 16-Length(V)+I; { Выщитываем текущую позицию в массиве Res } Res[PosR] := Res[PosR] + A; { Прибавляем значение к текущей позиции } //uhuihiu If Res[PosR]>15 then { ГДе то в этой части кода находится баг } Begin Res[PosR-1] := Res[PosR-1] + 1; { Увеличиваем на 1 старшую позицию } Res[PosR] := Res[PosR] - 16; { А в этой оставляем только остаток } End; End; For I := 16 downto 2 do Begin If Res[I]>15 then Begin Res[I-1] := Res[I-1] + 1; Res[I] := Res[I] - 16; End; End; End; Procedure UnSum(V : String); { Процедура, которая вычитает из результата новое значение } Var A,j : integer; Begin For I := 1 to Length(V) do { Переводим все буквы в верхний регистр и ищем ошибки } Begin If V[i] in['a'..'f'] then Dec(V[i],32); { Если этот симвл - маленькая буква, то уменьшаем ее значение на 32 (переводим в верхний регистр) } If not(V[i] in['0'..'9','A'..'F']) then { Если это не шестнадцатиричное значение, то ошибка } Begin WriteLn(V,' is not hex!'); Exit; End; End; |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 12.11.2012
Сообщений: 12
|
![]()
For I := Length(V) downto 1 do
Begin If V[i]>'9' then A := Ord(V[i])-48-7 else A := Ord(V[i])-48; if(Res[PosR] >= A) then begin Res[PosR] := Res[PosR] - A; end else begin Res[PosR] :=Res[PosR] + 16; Res[PosR] := Res[PosR] - A; for j := PosR-1 downto 1 do begin if(Res[j]>0)then begin Res[j]:=Res[j]-1; break; end else begin Res[j]:=15; end; end; end; PosR:=PosR - 1; End; End; procedure TMainForm.Button10Click(Sender: TObject); begin Text.Text:=Text.Text + 'D'; LastAdd:='D'; end; procedure TMainForm.Button11Click(Sender: TObject); begin LastAdd:='7'; Text.Text:=Text.Text + '7'; end; procedure TMainForm.Button12Click(Sender: TObject); begin LastAdd:='6'; Text.Text:=Text.Text + '6'; end; procedure TMainForm.Button13Click(Sender: TObject); begin LastAdd:='5'; Text.Text:=Text.Text + '5'; end; procedure TMainForm.Button14Click(Sender: TObject); begin LastAdd:='4'; Text.Text:=Text.Text + '4'; end; procedure TMainForm.Button15Click(Sender: TObject); begin LastAdd:='9'; Text.Text:=Text.Text + '9'; end; procedure TMainForm.Button16Click(Sender: TObject); begin LastAdd:='8'; Text.Text:=Text.Text + '8'; end; procedure TMainForm.Button17Click(Sender: TObject); var DelOp:string; begin if((LastAdd = '+') or (LastAdd = '-')) then begin DelOp:=Text.Text; delete(DelOp, length(DelOp), 1); Text.Text := DelOp; end; Text.Text:=Text.Text + '+'; LastAdd:='+'; end; procedure TMainForm.Button18Click(Sender: TObject); var DelOp:string; begin if((LastAdd = '+') or (LastAdd = '-')) then begin DelOp:=Text.Text; delete(DelOp, length(DelOp), 1); Text.Text := DelOp; end; Text.Text:=Text.Text + '-'; LastAdd:='-'; end; procedure TMainForm.Button19Click(Sender: TObject); var i,k,j,znak:integer; F,Digit:string; flag_sim:boolean; begin if(Text.Text = '')then begin ShowMessage('Введите пример для рассчета!'); end else if(Text.Text='0') then begin Text.Text:='0'; end else begin znak:=0; PosR:=16; For i := 1 to 17 do Res[i] := 0; { Обнуляем результат } F:=Text.Text; k:=1; if(F[1] = '+')then znak:=1; if(F[1] = '-')then znak:=2; if(znak<>0) then inc(k); While k<=Length(F) do Begin if(F[k]='+') then begin break; end; if(F[k]='-') then begin break; end; Digit:=Digit+F[k]; inc(k); End; if(znak <> 2) then Sum(Digit); if(znak = 2) then UnSum(Digit); j:=0; While k<=Length(F) do Begin PosR:=16; Digit:=''; while(true) do begin if(k>Length(F)) then begin break;end; if((F[k]='+') ) then begin j:=1;inc(k);break; end; if((F[k]='-') ) then begin j:=2;inc(k);break; end; inc(k); end; while(true) do begin if(k>Length(F)) then begin break;end; if((F[k]='+') ) then begin break; end; if((F[k]='-') ) then begin break; end; Digit:=Digit+F[k]; inc(k); end; if(j=1)then begin Sum(Digit);end; if(j=2)then begin UnSum(Digit);end; End; S := ''; For I := 1 to 16 do Begin S := S + HexTab[Res[i]]; { Перевести из вида целого числа 0..15 в строковый вид '0'..'F' } End; While (S<>'') and (S[1]='0') do Delete(S,1,1); { Убираем все нули из начала } Text.Text:=''; ShowMessage('Ответ: ' + S); end; end; procedure TMainForm.Button1Click(Sender: TObject); begin LastAdd:='A'; Text.Text:=Text.Text + 'A'; end; procedure TMainForm.Button20Click(Sender: TObject); begin Text.Text:='0'; end; procedure TMainForm.Button21Click(Sender: TObject); var DelOp:string; begin DelOp:=Text.Text; delete(DelOp, length(DelOp), 1); Text.Text := DelOp; end; procedure TMainForm.Button2Click(Sender: TObject); begin LastAdd:='B'; Text.Text:=Text.Text + 'B'; end; procedure TMainForm.Button3Click(Sender: TObject); begin LastAdd:='C'; Text.Text:=Text.Text + 'C'; end; procedure TMainForm.Button4Click(Sender: TObject); begin LastAdd:='3'; Text.Text:=Text.Text + '3'; end; procedure TMainForm.Button5Click(Sender: TObject); begin LastAdd:='2'; Text.Text:=Text.Text + '2'; end; |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 12.11.2012
Сообщений: 12
|
![]()
procedure TMainForm.Button6Click(Sender: TObject);
begin LastAdd:='1'; Text.Text:=Text.Text + '1'; end; procedure TMainForm.Button7Click(Sender: TObject); begin LastAdd:='E'; Text.Text:=Text.Text + 'E'; end; procedure TMainForm.Button8Click(Sender: TObject); begin LastAdd:='0'; Text.Text:=Text.Text + '0'; end; procedure TMainForm.Button9Click(Sender: TObject); begin LastAdd:='F'; Text.Text:=Text.Text + 'F'; end; procedure TMainForm.FormCreate(Sender: TObject); begin Text.Text:=''; end; procedure TMainForm.TextChange(Sender: TObject); begin end; procedure TMainForm.Panel1Click(Sender: TObject); begin end; end. |
![]() |
![]() |
![]() |
#4 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,864
|
![]()
Размер оплаты?
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Обалдеть... Я бы сказал что это не возможно...
I'm learning to live...
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,184
|
![]()
возможно все.... может ей только сами функции и алгоритм работы... без интерфейса? .. .а если конечно же весь интерфейс еще в Паскаль .. то это пипец как долго и не нужно никому... когда в делфях все уже есть
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 22.04.2011
Сообщений: 10
|
![]()
619544736 пишите обсудим
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 16.06.2007
Сообщений: 0
|
![]()
ICQ: 324-783-266
e-mail: Petrovi486@gmail.com Делаю быстро, качественно, не дорого. Предоплаты не требую!!! Свяжитесь со мной, тут нужно обсудить некоторые моменты |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 04.07.2012
Сообщений: 32
|
![]()
mansmi@rambler.ru
пишите если еще актуально |
![]() |
![]() |
![]() |
#10 |
Новичок
Джуниор
Регистрация: 10.11.2012
Сообщений: 0
|
![]()
Обращайся,сделаю быстро
icq 3176006 e-mail ; liljob@ukr.net |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
перевести программу рисования графиков с Pascal на Delphi | DooD | Помощь студентам | 5 | 19.05.2011 23:15 |
нужно перевести программу из Turbo Pascal в Delphi | Insensible Doll | Помощь студентам | 3 | 27.05.2010 13:41 |
записать программу с Pascal на Delphi | aiktz | Помощь студентам | 3 | 05.02.2010 19:30 |
перевести программу из Pascal с использованием компонента Stringgrid в delphi. | evrey | Компоненты Delphi | 4 | 02.06.2008 18:57 |
ПОМОГИТЕ ПЕРЕДЕЛАТЬ ПРОГРАММУ ИЗ PASCAL В DELPHI | Solny6ko YasnoE | Помощь студентам | 11 | 11.08.2007 15:24 |