Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Problem mit Memo (https://www.delphipraxis.net/153219-problem-mit-memo.html)

therowe 25. Jul 2010 16:41

Problem mit Memo
 
Hey DPler ;)
Zuerst mal zum Titel. Ich wusste nicht wie ich mein Problem beschreiben sollte, also wählte ich diesen Titel ;)
So nun zum Problem :
Ich arbeite gerade ein wenig mit Freunden an einem Programm, welches später mal das Profil editieren auf Communitys etc. erleichtern soll. Klapp auch alles wunderbar, bis auf das Laden von Texten. Ich weiß es klingt doof weil das ja eines der Dinge ist, die man fast am Anfang des Programmierens lernt.
Um das Problem zu beschreiben mal eine kleine erläuterung:
In einer Memo können durch Klicks auf Buttons etc. BBCODES eingefügt werden, die später dann in Htmlcodes umgewandelt werden und in einer html Datei abgespeichert werden und dann mithilfe der Komponente Webbrowser angezeigt werden. Speichere ich aber meinen Text und will ihn wieder laden, funktioniert es zwar, aber auf einmal lässt sich die memo nicht mehr ''bearbeiten''. Die [ werden nicht mehr durch < ersetzt und auch nicht abgespeichert und somit auch nicht im Webbrowser angezeigt.
Hier mal ein paar Codeschnipsel :
(Der Text, in dem das Profil bearbeitet wird und indem sich die BBcodes befinden , befindet sich auf memo1)
--Hier werden die [,] gesucht und durch <,> ersetzt bzw. durch mailto etc.--
Delphi-Quellcode:
var Text: string;
begin
memo1.Lines := form1.memo1.Lines;
memo1.Lines[0] := '<pre>' + memo1.Lines[0];
  text := Memo1.text;
  text := StringReplace(text,'[','<',[rfReplaceAll]);
    text := StringReplace(text,']','>',[rfReplaceAll]);
     text := StringReplace(text,'<quote>','<fieldset>',[rfReplaceAll]);
          text := StringReplace(text,'</quote>','</fieldset>',[rfReplaceAll]);
                    text := StringReplace(text,'<color','<font color',[rfReplaceAll]);
                    text := StringReplace(text,'</color>','</font>',[rfReplaceAll]);
          text := StringReplace(text,'<email>','<a href="mailto:',[rfReplaceAll]);
            text := StringReplace(text,'</email>','">Email.</a>',[rfReplaceAll]);

  text := StringReplace(text,'<code>','<b><i>',[rfReplaceAll]);
  text := StringReplace(text,'</code>','</b></i>',[rfReplaceAll]);
      text := StringReplace(text,'<url>','<a href="',[rfReplaceAll]);
      text := StringReplace(text,'</url>','">Link.</a>',[rfReplaceAll]);
  memo1.Lines.SaveToFile('Preview.html');
  webbrowser1.Navigate(ExtractFilePath(Application.ExeName) + '/Preview.html');
Ich hoffe ich konnte euch mein Problem einigermassen gut erläutern ;)
Das komische ist ja, wenn ich den Text neuschreibe, ohne ihn zu laden funktioniert alles .. :?

würde mich über eine baldige, brauchbare Antwort freuen ;)

mkinzler 25. Jul 2010 16:44

AW: Problem mit Memo
 
Wie unterscheidet sich das espeicherte vom Original?
Btw.:Es würden sich hier reguläre Ausdrücke anbieten

therowe 25. Jul 2010 16:46

AW: Problem mit Memo
 
We es sich unterscheidet nach dem Speichern vom Text in der Memo?
Gar nicht ;) Es muss eigentlich funktionieren ich habe keine Ahnung warum es nicht funktioniert ..

mkinzler 25. Jul 2010 16:48

AW: Problem mit Memo
 
Wo liegt die Kompo? Ist Memo1 und Form.memo1 das selbe?

therowe 25. Jul 2010 16:50

AW: Problem mit Memo
 
Nein nein, ich will ja, das sich der Text für den Benutzer des Programmes nicht ändert, Man schreibt seinen Text in form1.memo1 dieser Text wird dann in eine Memo1 auf der Form3 geleitet und dort werden dann die Klammern durch die <,> ersetzt und abgespeichert ( Als Htmlcode ) was Ja funktioniert, bis eben ich einen Text in Form1.memo1 lade

himitsu 25. Jul 2010 16:56

AW: Problem mit Memo
 
Delphi-Quellcode:
memo1.Lines.SaveToFile('Preview.html');
webbrowser1.Navigate(ExtractFilePath(Application.ExeName) + '/Preview.html');
Und der absolute Speicherpfad muß nicht mit dem Ladepfad übereinstimmen.

Zitat:

Zitat von therowe (Beitrag 1037440)
bis eben ich einen Text in Form1.memo1 lade

ich würde also mal spontan sagen "du bist schuld" ... ähhh, ich meine der FileOpenDialog oder sonstwas, welches du bestimmt verwendest.

therowe 25. Jul 2010 17:03

AW: Problem mit Memo
 
Naja das Laden funktioniert ja , das Speichern auch ( Wenn ich ja selber den Text schriebe funttzts ja ) aber nur wenn ich einen geladenen Text verwende funktioniert es ja nicht ^^ der Text wird ja wunderschön angezeigt, nur geht halt nich mehr ;) und natürlich meine ich den Opendialog der läd ;)

DeddyH 25. Jul 2010 19:25

AW: Problem mit Memo
 
Sehe ich das richtig? Du weist der lokalen Variablen Text den Text des Memos zu, änderst ihn dann und speicherst trotzdem den Text des Memos ab? Dann kannst Du Dir die Änderungen ja auch sparen, oder :zwinker:?


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz