Rich Edit i grafika

0

ktoś wie może co zrobić by po wpisaniu takiego tekstu &ltobrazek&gt w richedit tekst został podmieniony na obrazek obrazek.jpg ?

0

Z tego co wiem to do RichEdit nie jest łatwo wstawć obrazek (ale podobno idzie).

Użyj FatMemo (z torry.net) albo RXRichEdit z bibliotekiRX (jednak do RXR nie wiem jeszcze jak wstawic obrazek ale idzie :), a w FatMemo jest bardzo prosto)--Delphi 6 Personal

0

a musi być, że od razu po wpisaniu będzie wstawiał obrazek??

0

ReNe to jak wstawic obrazek?
--------BLOK REKLAMOWY------
kanał : #4programmers.net
server: warszawa.ircnet.pl
------BLOK REKLAMOWY------

0

Do FatMemo???
Jeśli tak to:

var
S, S2 : String;
L : TFatLine;
P : TFatPart;
Pozycja : Integer;

begin
S:=Edit1.Text; *Tekst który zostanie zmieniony np. "zdkfjashk &ltobrazek&gt dxcvx"
L:=FatMemo.Lines.AddNew; * Tworzenie nowej lini
Pozycja:=Pos('&ltobrazek&gt', S); * Szukanie ciągu "&ltobrazek&gt"

while Pozycja &gt 0 do *jeśli jest taka pozycja to...
begin
S2:=Copy(S,0,Pozycja-1); *kopiuje wszysko co jest przed pozycją
Delete(S, 1, Pozycja+Length('&ltobrazek&gt')-1); *usuwa wszystko od poczatku do końca ciągu "&ltobrazek&gt"
P:=L.Add;
P.Text:=S2; *dodaje do lini skopiowany poczatek
P := L.Add;
P.Bitmap := Grafika.Picture.Bitmap; * dodaje grafike
Pozycja:=Pos('&ltobrazek&gt', S); *szuka dalej
end;
P:=L.Add;
P.Text:=S; * dodaje to co zostało :)

nie wiem czy to jest na 100% dobrze bo pisze to nie mając FatMemo :P ale powinno być ok :)

=== A jak chodzi ci o emotki (tylko sie domyslam) to ten kod nie bedzie najlepszy. Sam kiedyś mialem taki problem i LKS pomogl mi tak : :)

var
S : String;
L : TFatLine;
P : TFatPart;
i : Integer;
begin
L := Chat.Lines.AddNew;
S := Edit1.Text;

for i := 1 to Length(S) do
begin
if (S[i] &lt&gt ':')and(S[i] &lt&gt Char(#0)) then
begin
P := L.Add;
P.Text := S[i];
end
else
begin
if S[i+1] = ')' then
begin
P := L.Add;
P.Bitmap := ImgSmile.Picture.Bitmap;
Delete(S, i, 1);
end
else
if S[i+1] = 'P' then
begin
P := L.Add;
P.Bitmap := Jezyk.Picture.Bitmap;
Delete(S, i, 1);
end
else
if S[i] &lt&gt Char(#0) then
begin
P := L.Add;
P.Text := S[i];
end;
end;
end;
end;

--
Delphi 6 Personal

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