- Код: Выделить всё
for i:=0 to Memo.Lines.Count - 1 do
begin
Memo.Lines[i] := UpperCase( Memo.Lines[i] );
end;
end;
Английский работает нормально, а вот русский не работает...
Есть ли штатные средства решения проблемы или писать табличку замены?
Модератор: Модераторы
for i:=0 to Memo.Lines.Count - 1 do
begin
Memo.Lines[i] := UpperCase( Memo.Lines[i] );
end;
end;
procedure TFormMain.Button_UpCaseClick(Sender: TObject);
var
i: integer;
SStrings: TStrings;
begin
SStrings := TStrings.Create;
SStrings := Memo.Lines;
for i:=0 to Memo.Lines.Count - 1 do
begin
Memo.Lines[i] := UTF8UpperCase( SStrings[i] );
end;
SStrings.Free;
end;
TRSteep писал(а):SStrings: TStrings;
procedure TFormMain.Button_UpCaseClick(Sender: TObject);
begin
Memo.Lines.Text := UTF8UpperCase( Memo.Lines.Text );
end;
Vadim писал(а):TRSteep писал(а):SStrings: TStrings;
1. TStrings - класс абстрактный и он Вам показал свою "кузькину мать". Использовать его самого не нужно, а лучше взять какого-нибудь егоного потомка, например TStringList, у которого все методы прописаны и поэтому есть что использовать.
2. TMemo и сам по себе содержит TStrings (свойство Lines), поэтому его и нужно использовать, либо вообще, зная из чего состоит TStrings, обходиться более простыми методами, например:
- Код: Выделить всё
procedure TFormMain.Button_UpCaseClick(Sender: TObject);
begin
Memo.Lines.Text := UTF8UpperCase( Memo.Lines.Text );
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29