Kasowanie znaków

0

Jak zrobić tak, że np. w edit1 się wpisze a to z richedit znikną wszystkie duże i małe liery a.?

0

Mam nadzieje, ze nikt mnie znowu nie wyprzedzil :|

var
i,i2 : integer;
x,s : string;
outs : string;
begin
x := lowercase(edit1.text);
for i:=0 to richedit1.lines.count - 1 do
begin
s := lowercase(richedit1.lines[i]);
outs := richedit1.lines[i];

for i2:=0 to length(s) do
if pos(x,s) > 0 then
begin
delete(outs,pos(x,s),1);
delete(s,pos(x,s),1);
end;
richedit1.lines[i] := outs;
end;

end;

0

Pochwalony! Napisz w OnChange Edit1 procedurkę usuwającą wszyskie znaki, np:

procedure TForm1.Edit1Change(Sender: TObject);
begin
Usun(Edit1.Text);
end;

procedure TForm1.Usun(Text: String);
var
LP: Integer;
Textt: String;
begin
Textt := RichEdit1.Text;
while (Pos(Text, Textt) > 0 ) do
begin
Delete(Textt, Pos(Text, Textt), Length(Text));
end;
RichEdit1.Text := Textt;

end;

i jest spox :)

0

Dla malego 'a':

while Pos('a', RichEdit.Lines.Text) 0 do
begin
RichEdit.SelStart := Pos('a', RichEdit.Lines.Text) -1;
RichEdit.SelLength := 1;
RichEdit.SelText := '';
end;

Dla duzego 'A' tak samo tylko z duzym 'A' :)

0

kitek twoja procedurka (nie sprawdzalem) usuwa chyba tylko okreslony znak a nie dodatkowo znaki duze i małe, wpsizesz "i" to ci w richedit nie usunie "I"

0

Pochwalony! Sorki, tamto rozróżnuia wielkość liter. Tu masz nierozróżniającą:

procedure TForm1.Edit1Change(Sender: TObject);
begin
Usun(Edit1.Text);
end;

procedure TForm1.Usun(Text: String);
var
LP, LP2: Integer;
Textt: String;
Wers: String;
begin
for LP := 0 to RichEdit1.Lines.Count - 1 do
begin
Wers := RichEdit1.Lines.Strings[LP];
LP2 := Pos(Text, Wers);
while (LP2 > 0) do
begin
Delete(Wers, LP2, Length(Text));
LP2 := Pos(LowerCase(Text), LowerCase(Wers));
RichEdit1.Lines.Strings[LP] := Wers;
end;
end;

end;

:)

0

Dzięki wszystkim!! Działa :-)

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