Jak ograniczyć ilość znaków w MEMO?

0

Witojcie ponownie :P
Mam sobie Memo i jak teraz zrobic takie cos.
Memo ma mieć ograniczone tylko 200 znaków ( tzn. że można wpisać tylko 200 znaków ). I jak wpisuje tekst to na Labelu ma mi sie pokazywac sie znaków zostało do końca.
Pozdrawiam i licze na pomoc!

0

Memo1.MaxLength:=200;

niestety, naciśnięcie Enter liczy za dwa znaki :((

W OnChange Memo:
Label1.Caption:=IntTostr(Memo1.MaxLength-Length(Memo1.Text));--Pawel

Delphi6

0

Niewiem jak ale moim zdaniem mozna by w procedurze OnChange liczyc ile
enterów zostalo wcisnietych i za kazdy dodawac +1 do zakresu znakow...
Niewiem czy to dobry pomysl ale nic innego mi do glowy nie wpadlo...niestety nie weim jak liczyc znaki w komponecie Memo :(--Ozyrys Pozdrawiam {hello}
Delphi 6

0

ozyrys, albo ty nie zrozumiales mnie, albo ja ciebie :-) --Pawel

Delphi6

0

pq napisał:
ozyrys, albo ty nie zrozumiales mnie, albo ja ciebie :-)

Moze napisalem to troche nie zrozumiale albo....nie zrozumialem cie :)
Napisales ze enter liczy za 2 znaki , wiec jezeli procedura liczyla by ile enterow znajduje sie na Memo i za kazdy enter dodawala by do Maxymalnego zakresu +1 to wyszlo by na rowno np.
(powiedzmy ze zakres = 5)

wiec moge wstawic xxx ale miejsc na 2 entery mi nie starczy

ale jezeli procedura doda +2 (za kazdy enter +1) do zakresu to

zmiesci sie i xxx i 2 entery... (bo zakres 5 +2 =7)

Za kazydy enter +1 a jezeli postawiiony juz enter zostanie skasowany to zosatnie i odjeta ta dodatkowa watrtosc. Jeszcze trzeba by zmodyfikikowac procedure wyswitlajaca liczby na Lebel'u....ale to juz inna historia ;)

Tylko problem polega na tym ze nie mam pojecia jak liczy sie znaki...

PS. Jezeli to ja ciebie nie zrozumilem to sorki...--Ozyrys Pozdrawiam {hello}
Delphi 6

0

Nie zrozumialem, ze chodzi Ci o maksymalny zakres. W ogole podoba mi sie Twoj pomysl. Entery w Memo.Text da sie policzyc, to nie jest duzy problem. Mozna by tez procedure wrzucic nie w OnChange tylko w onKeyPress i reagowac na Entery. Problem tylko z tym, ze trzebaby tez reagowac na Backspace i Delete i spawdzac, czy akurat nie usuwaja jakiegos Entera. No i jeszcze na wszystkie inne znaki sprawdzajac, czy nie sa one wstawiane zastepujac (zawierajacy Entery) tekst zaznaczony mysza... Nie, chyba liczenie Enterow po kazdym OnCghange jest sensowniejsze.

Pozdrawiam,
Pawel--Pawel

Delphi6

0

pq napisał:
...chyba liczenie Enterow po kazdym OnCghange jest sensowniejsze.

Zgadzam sie bo w tedy procedura wygladala by tak :

procedure TForm1.Memo1Change(Sender: TObject);
var
I : Integer;
begin
I := //liczba enterow w memo
Memo1.MaxLength := 200 + I;
end;

Jeszcze gdzies tu trzeba wcisnac liczenie enterow w memo...ale to pozostawiem tobie :)--Ozyrys Pozdrawiam {hello}
Delphi 6

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