Menu

  • Aktuality
  • Lietanie
  • Elektrotechnika
    • AVR procesory
    • Rôzne zapojenia
    • Chémia a DPS
  • Programovanie
    • C# .NET
    • AVR GCC
    • Delphi
    • C/C++
  • Konštrukcie
  • DVB-T Brezno
  • Portfolio a kontakt

Substitúcia textu na obrázky (smiles v texte)

Každý, kto robil len s free componentami a potreboval text premeniť priamo na obrázok (napríklad smajlíky) sa stretol s problémom, ako to vlastne vyriešiť. Ja som to vyriešil nasledovne. Potrebujete len komponentu TRichView, ktorá sa dá zadarmo stiahnuť.


Kód:

 
var reOut: TRichView; 
sa: array of String[6];
//smiles v textovej forme {max 6 znakov na smila}
 
procedure formatujtext(text:String);
var s, L: longint;
      j,k:byte;
      sTEMP: String;
      hit:boolean;
begin
  s:=0;
  L:= Length (text);
  sTemp:'';
  / / bez smajlov
 if  not fileexists'smiles.cfg') then
   begin
   reout.AddText(text,0);
   reout.Format;
   exit;
   end;
// so smajlami
with reout do
while s<=L-1 do //vsetky znaky otestuj
begin
   hit:=false; //ak sa trafil do nejakeho smila
   for k:=0 to length(sa)-1 do //vsetky smily v poli
   if not hit then
   for j:= 1 to length(sa[k]) do //celu dlzku retazca popisujuceho smile
   begin
    if (s+j)>strlen(pchar(text)) then //ochrana proti preteceniu
    break;
    if (sa[k][j] <> text[s+j]) then
    begin
     BREAK;
    end;
    if (j = length(sa[k])) then
    begin
      AddText(sTemp,0);
      sTemp:'';
      addbullet(k,ilsmiles,false);
      s:=s+length(sa[k])-1;
      hit:=true;
     end;
   end;
   if not hit then
   sTemp:=sTemp+Text[s+1];
   s:=s+1;
   end;
  reout.AddText(sTemp,0); //ak ostalo daco za smilom
  reout.format;
end;

in-page-blade(geshi-syntax-highlighter)

Doplňujúce info

© Chefo 2012