Jak zrobić tak, że np. w edit1 się wpisze a to z richedit znikną wszystkie duże i małe liery a.?
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;
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 :)
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' :)
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"
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;
:)
Dzięki wszystkim!! Działa :-)