Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.30;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.028 c
7-98900
Е-Моё имя
2003-08-17 18:41
2003.10.30
GetProcAddress и kernel32.dll


1-98565
VladTen
2003-10-20 08:43
2003.10.30
Помогите с истинным распроложением файла по ссылке.


6-98771
Finger
2003-09-04 12:04
2003.10.30
MAC


1-98656
Dimedrol
2003-10-17 10:43
2003.10.30
Как скопировать в буфер Unicod-овскую строку ?


14-98798
Дурик
2003-10-13 08:16
2003.10.30
Шо такое сабж?