Показать сообщение отдельно
  #4  
Старый 29.01.2016, 22:13
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Развлекайтесь:
Код:
unit Unit8;

interface

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

type
  TForm8 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    CodeTable: TRadioGroup;
    procedure Memo1Change(Sender: TObject);
    procedure CodeTableClick(Sender: TObject);
  private

  public
    { Public declarations }
  end;

const
  ACodeTable: Array[0..1,1..33,1..2] of String = ((('а','a'),('б','b'),('в','v'),('г','g'),('д','d'),('е','e'),('ё','jo'),('ж','zh'),
                                                  ('з','z'),('и','i'),('й','j'),('к','k'),('л','l'),('м','m'),('н','n'),
                                                  ('о','o'),('п','p'),('р','r'),('с','s'),('т','t'),('у','uh'),('ф','f'),
                                                  ('х','h'),('ц','ch'),('ч','ch'),('ш','sh'),('щ','shh'),('ъ','#'),('ы','y'),
                                                  ('ь',''''),('э','je'),('ю','ju'),('я','ja')),
                                                 (('а','ka'),('б','zu'),('в','ru'),('г','ji'),('д','te'),('е','ku'),('ё','ku'),('ж','su'),
                                                  ('з','z'),('и','ki'),('й','ki'),('к','me'),('л','ta'),('м','rin'),('н','to'),
                                                  ('о','mo'),('п','no'),('р','shi'),('с','ari'),('т','chi'),('у','do'),('ф','lu'),
                                                  ('х','ri'),('ц','mi'),('ч','ke'),('ш','hi'),('щ','hi'),('ъ',''),('ы',''),
                                                  ('ь','zuk'),('э','mei'),('ю','fu'),('я','na')));

var
  Form8: TForm8;

implementation

{$R *.dfm}

procedure TForm8.CodeTableClick(Sender: TObject);
begin
 Memo1Change(Memo1)
end;

procedure TForm8.Memo1Change(Sender: TObject);
Var i,j: Integer;
    EncodeText: String;
    Skipped: Boolean;
begin
 if Sender = Memo1
 then begin
      EncodeText := '';
      for i := 1 to Length(Memo1.Text)
      do begin
         Skipped := True;
         for j := 1 to Length(ACodeTable[CodeTable.ItemIndex])
         do if Memo1.Text[i] = ACodeTable[CodeTable.ItemIndex,j, 1]
            then begin
                 EncodeText := EncodeText + ACodeTable[CodeTable.ItemIndex, j, 2];
                 Skipped := False;
                 Break;
                 end;
         if Skipped
         then EncodeText := EncodeText + Memo1.Text[i];
         end;
      Memo2.Text := EncodeText;
      end
 else begin

      end;
end;

end.
Код:
object Form8: TForm8
  Left = 0
  Top = 0
  Caption = 'Form8'
  ClientHeight = 339
  ClientWidth = 584
  Color = clBtnFace
  DoubleBuffered = True
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Memo1: TMemo
    Left = 8
    Top = 47
    Width = 568
    Height = 138
    TabOrder = 0
    OnChange = Memo1Change
  end
  object Memo2: TMemo
    Left = 8
    Top = 191
    Width = 568
    Height = 138
    Lines.Strings = (
      '')
    TabOrder = 1
  end
  object CodeTable: TRadioGroup
    Left = 8
    Top = 0
    Width = 153
    Height = 41
    Caption = #1042#1099#1073#1086#1088' '#1082#1086#1076#1080#1088#1086#1074#1082#1080
    Columns = 2
    ItemIndex = 0
    Items.Strings = (
      'Translit'
      #1071#1087#1086#1085#1089#1082#1080#1081)
    TabOrder = 2
    OnClick = CodeTableClick
  end
end
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием