Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
ВнизRichEdit Найти похожие ветки
← →
DimaK (2003-10-19 16:03) [0]Ребята, помогите плиз с кодом, необходимо програмно определить последний символ (букву) в RichEdit и удалить ее.
← →
Palladin (2003-10-19 16:05) [1]Кодом не помогу, намек сделаю.
TRichEdit.Lines
TRichEdit.Lines.Count
SetLength (как вариант Delete если уж сложно додуматся до SetLength)
← →
Dimak (2003-10-19 17:22) [2]Блин, не получается, можно по подробнее, плиз!
← →
DimaK (2003-10-19 17:22) [3]Удалено модератором
← →
DimaK (2003-10-19 17:23) [4]Удалено модератором
← →
Palladin (2003-10-19 17:55) [5]А что именно не получается? Ты не можешь продумать последовательность действий используя приведенную мной информацию? Тогда см. http://delphimaster.net/view/1-1066568028/
← →
DimaK (2003-10-19 18:10) [6]Извеняюсь, машина подвисла, и получилось несколько сообщений :(
У меня такая проблема, есть 2 RichEdit, один как бы окно ввода, другой - окно вывода. Работаю с COM портом, что пишу в RichEdit2, обрабатывается (компонент ComDrv32) и пишется в RichEdit1 для отправки в порт, но когда я затираю символ (BackSpase), то в RichEdit1 пишется фигня,и естественно, эта фигня при нажатии на Enter посылается в порт и возникает ошибка, поэтому и хотельсь бы при нажатии на BackSpase в RichEdit1 просто затереть последний символ.
← →
Anatoly Podgoretsky (2003-10-19 18:19) [7]Тяюело жить бех пистолета.
← →
DimaK (2003-10-19 18:29) [8]Да, ТЯЮЕЛО!!! :)
А можно помочь, без издевательств?
← →
Anatoly Podgoretsky (2003-10-19 18:37) [9]А тебе уже ответили в [1]
Может тебе не помощь нужна, а надо написать программу?
← →
DimaK (2003-10-19 18:54) [10]Да не надо мне писать прогу, у меня почти работает, не пойму почему и где глюк есть. Пишу так:
var Stpos, Pos, Endpos: Integer;
if Key=chr(8) then // Если нажат BackSpase
begin
Stpos:=0;
with RichEdit1 do
begin
Endpos:=Length(RichEdit1.Text)-Stpos;
Pos:=Endpos-1;
// SetFocus;
SelStart:=Pos;
SelLength:=Endpos;
RichEdit1.ReadOnly:=False;
RichEdit1.ClearSelection;
RichEdit1.ReadOnly:=True;
end;
end
else // Передаем введенные данные в компонент
CommDrv32.SendChar(Key);
← →
Palladin (2003-10-19 19:38) [11]вот что значит через заднее место...
stpos:=Lines.Count-1;
Lines[stpos]:=Copy(Lines[stpos],1,Length(Lines[stpos])-1);
← →
DimaK (2003-10-19 20:13) [12]Спасибо, вроде работает.
И еще один вопрос, а как заставить RichEdit писать только большие буквы не прибегая к принудительному включению Caps Lock?
← →
DimaK (2003-10-19 23:14) [13]Похоже никто не знает :(
Ладно, спасибо за помощь!
← →
Song (2003-10-19 23:16) [14]2DimaK © (19.10.03 20:13) [12]
onKeyPress / onChange
← →
DimaK (2003-10-19 23:19) [15]Это я понял, а дальше, UpperCase как правильно описать?
← →
Song (2003-10-19 23:23) [16]S:=UpperCase(S);
Это для англ.
Для русского AnsiUpperCase()
← →
DimaK (2003-10-19 23:45) [17]Воопще-то я писал так:
procedure TForm1.RichEdit1Change(Sender: TObject);
begin
RichEdit1.Text:=UpperCase(RichEdit1.Text);
end;
Все работает, только на оборот.
← →
Anatoly Podgoretsky (2003-10-19 23:54) [18]То есть хочешь сказать, что превращает в малые :-)
← →
DimaK (2003-10-20 00:04) [19]Смешно... :)
Напиши и попробуй.
← →
Плохиш_ (2003-10-20 00:37) [20]>DimaK © (20.10.03 00:04) [19]
Ещё как смешно :-))))
А позицию курсора за тебя кто сохранять будет ;-))))
← →
Palladin (2003-10-20 02:12) [21]
> DimaK © (20.10.03 00:04) [19]
Слушай... не зачем пробовать очевидные вещи.
А вот еще одна очевидная вещь: не кажется ли тебе что ты выбрал немного не подходящее и слишком ресурсоемкое событие для обработки? Прочитай внимательно Song © (19.10.03 23:16) [14]
Еще одна подсказка
function AnsiUpCase(c:char):char;
var
b:byte absolute c;
begin
if c="ё" then result:="Ё" else
if b in [224..255] then result:=chr(b-32)
else result:=UpCase(c);
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c