Einzelnen Beitrag anzeigen

Moin

Registriert seit: 16. Dez 2003
Ort: Dresden
57 Beiträge
 
Delphi 7 Enterprise
 
#1

MEMO: KonvertierungsFunktion funzt nit

  Alt 25. Apr 2004, 20:12
Moin alle zusammen,
Ich schreibe gerade an einem Html-Editor der reinen Quelltext
Konvertieren kann, so dass er in einer *.htm-Datei direkt ausgegeben werden kann.
Wer sich mit html ein wenig auskennt, der wird erkennen, was beim Klick auf btnConvert passieren soll.
Mein eigentliches Problem hat aber nicht direkt etwas mit HTML zu tun!!!
denn beim klick wird komischer weise nur der SelText gelöscht, er soll aber gelöscht werden und der Konvertierte (Sollte Str2 sein) soll ausgegeben werden.

Ein Beispiel:
Code:

 Hä??? </P>
Wird zu:
<P> H&auml;??? </P>

Delphi-Quellcode:
procedure TFenster.btnConvertClick(Sender: TObject);
      var str1, str2 : string;
      i :Word;
      spos : Integer;
begin
    spos := Memo.SelStart;
      Str1:= Memo.SelText;
      Str2:= ' ';

      For i:= 0 To Memo.SelLength do
      begin
        Case Str1[i] of
          '<' : If <Bedingung>
                Then Str2:= Str2 + '<'
                Else Str2:= Str2 + Str1[i];
          '>' : If <Bedingung>
                Then Str2:= Str2 + '>'
                Else Str2:= Str2 + Str1[i];
          '"' : If <Bedingung>
                Then Str2:= Str2 + '&amp;'
                Else Str2:= Str2 + Str1[i];
          '&' : If <Bedingung>
                Then Str2:= Str2 + '&quot;'
                Else Str2:= Str2 + Str1[i];
          'ä' : If <Bedingung>
                Then Str2:= Str2 + '&auml;'
                Else Str2:= Str2 + Str1[i];
          'Ä' : If <Bedingung>
                Then Str2:= Str2 + '&Auml;'
                Else Str2:= Str2 + Str1[i];
          'ö' : If <Bedingung>
                Then Str2:= Str2 + '&ouml;'
                Else Str2:= Str2 + Str1[i];
          'Ö' : If <Bedingung>
                Then Str2:= Str2 + '&Ouml;'
                Else Str2:= Str2 + Str1[i];
          'ü' : If <Bedingung>
                Then Str2:= Str2 + '&uuml;'
                Else Str2:= Str2 + Str1[i];
          'Ü' : If <Bedingung>
                Then Str2:= Str2 + '&Uuml;'
                Else Str2:= Str2 + Str1[i];
          'ß' : begin
                If <Bedingung>
                Then Str2:= Str2 + '&szlig;'
                Else Str2:= Str2 + Str1[i];
                end
          Else Str2:= Str2 +Str1[i];
      end; //case
  end;
    Memo.SelText:= Str2;
    Memo.SetFocus;
    Memo.SelStart:= spos +Length(Str2);
end;
Wahrscheinlich habe ich Tomaten auf den augen, aber ich erkennen nicht was falsch is.

HEEEELLFFFFFFFFTTTTTTTT Mir,
THX im Vorraus,
euer Moin
~~ an alln ekn & endn sparn! ~~
  Mit Zitat antworten Zitat