Zmiana tekstu w onChange w TRichEdit

Odpowiedz Nowy wątek
2006-08-17 23:46
0

Pisze klienta irca i mam problemik. Chce aby użytkownik miał możliwość włączania/wyłączania znaczników czasowych. Aby ułatwić sobie życie nie chce sprawdzać tego przy każdej zmianie treści TRichEdit, więc w onChange naskrobałem coś takiego:

rchOutput.Lines[rchOutput.Lines.Count - 1] := '[tu czas] ' + rchOutput.Lines[rchOutput.Lines.Count - 1];

Dodaje wszystko pięknie tylko zawsze generuje błąd:
"RichEdit line insertion error."
Pytanie brzmi jak zmienić treść TRichEdit w onChange bez wywoływania błędu?


Pozostało 580 znaków

2006-08-18 12:34
slawa
0

To proste. Jeśli w zdarzeniu onChange dla richedita wprowadzas zmiany w richedicie to rekurencyjnie w nieskonczonosc wywoluje sie zdarzenie onChange.

Pozostało 580 znaków

2006-08-18 12:57
0

Wiem o tym. Chce zrobić tak, aby po zmianie w RichEdicie nie nastąpiło to zdarzenie.


Pozostało 580 znaków

2006-08-18 13:17
0

to moze weź daj inne zdarzenie np. onkeypress


Piszę proste programy i stronki internetowe na zlecenie, zaliczenie...
Delphi, Pascal, C++, HTML, CSS, JAVASCRIPT, MySQL, PHP
Kontakt: gg:1477872 e-mail: [email protected]

Pozostało 580 znaków

2006-08-18 13:24
0

Kto powiedział, że zmieniam wartość poprzez klawiature? :>
A tak w ogóle to poradziłem już sobie. Oznaczyłem komentarzem linie w unicie RichEdita która wyświetlała błąd ;)


Pozostało 580 znaków

2006-08-18 15:48
0

A jak kiedyś ta linijka będzie ci potrzebna? :P

Spróbuj tak:

rchOutput.OnChange := nil;
rchOutput.Lines[rchOutput.Lines.Count - 1] := '[tu czas] ' + rchOutput.Lines[rchOutput.Lines.Count - 1];
rchOutput.OnChange := rchOutputChange;

Program to zbiór zer i jedynek ułożonych tak, żeby denerwować użytkownika.

Pozostało 580 znaków

2006-08-18 19:16
0

@_Nex_
Niestety Twój sposób nie działa. Pozostaje mi ten "mniej elegancki". :)


Pozostało 580 znaków

2006-08-19 07:14
0
PiXel napisał(a)

@_Nex_
Niestety Twój sposób nie działa. Pozostaje mi ten "mniej elegancki". :)

Nie działa, bo nie potrafisz z niego skożystać. Sposób jest dobry. Napisałbyś coś więcej, a nie tylko że 'nie dizała'. A tak w ogóle OnChange to zle miejsce na tego typu operacje. Wrzuć ten fragment w funkcje odpowiedzialną za dodanie całej lini do rich edit. Jeśli nie masz takiej - stwórz.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0