![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Данная программа выдает ошибку, связанную с функцией, помогите разобраться, подобный код запускал в PascalABC, всё работает нормально, Делфи же что-то не нравится!
вот код программы: Код:
unit UnitMain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, XPMan; type TFormMain = class(TForm) LabeledEdit_Source: TLabeledEdit; LabeledEdit_Result: TLabeledEdit; Button_Encode: TButton; Button_Decode: TButton; XPManifest: TXPManifest; procedure Button_EncodeClick(Sender: TObject); procedure Button_DecodeClick(Sender: TObject); private function Encode(c: Char): Char; function Decode(c: Char): Char; { Private declarations } public { Public declarations } end; var FormMain: TFormMain; implementation {$R *.dfm} const ij: array[1..8,1..8] of Char = (('Б', 'б', 'Н', 'н', 'Е', 'е', 'О', 'о'), ('Ь', 'ь', 'Г' ,'г', '3', 'з', 'Й', 'й'), ('М', 'м', 'С', 'с', 'У', 'у', 'X', 'х'), ('Ч', 'ч', 'Щ', 'щ', 'Ъ', 'ъ', 'Ю', 'ю'), ('А', 'а', 'Д', 'д', 'Р', 'р', 'Л', 'л'), ('В', 'в', 'Ж' ,'ж', 'и', 'и', 'К', 'к'), ('П', 'п', 'Т', 'т', 'Ф', 'ф', 'Х', 'х'), ('Ш', 'ш', 'Ы', 'ы', 'Э', 'э', 'Я', 'я')); Marks: set of char = ['.', ',', '!', '?', ':', ';', '(', ')', '"', 'ё', 'Ё', '-']; var Text: String; k: Integer; function TFormMain.Encode(c: Char): Char; var i,j: Integer; begin for i:=1 to 8 do for j:=1 to 8 do if (c = ij[i,j]) then begin if (i <> 8) then Encode := ij[i+1,j] else Encode := ij[1,j]; end; if (c in Marks) then Encode := c; end; function TFormMain.Decode(c: Char): Char; var i,j: Integer; begin for i:=1 to 8 do for j:=1 to 8 do if (c = ij[i,j]) then begin if (i <> 1) then Decode := ij[i-1,j] else Decode := ij[8,j]; end; if (c in Marks) then Decode := c; end; procedure TFormMain.Button_EncodeClick(Sender: TObject); begin Text := LabeledEdit_Source.Text; for k := 1 to Length(Text) do Text[k] := Encode(Text[k]); LabeledEdit_Result.Text := Text; end; procedure TFormMain.Button_DecodeClick(Sender: TObject); begin Text := LabeledEdit_Source.Text; for k := 1 to Length(Text) do Text[k] := Decode(Text[k]); LabeledEdit_Result.Text := Text; end; end. lmikle: пользуемся тегами!!! А вот ошибка: [Error] UnitMain.pas: Left side cannot be assigned to Возникает в двух местах, я их подчеркнул! Последний раз редактировалось lmikle, 16.02.2012 в 20:15. |
#2
|
|||
|
|||
![]() Версия дельфи какая? Попробуй описать Text как AnsiString.
И еще, имя Text лучше не использовать, может быть фактически зарезервированным словом, хотя в Дельфи вроде было TextFile. |
#3
|
||||
|
||||
![]() только что же ответил на этот вопрос. дубль что-ли?
Пишу программы за еду. __________________ |