Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi BB-Codes in Delphi darstellen (https://www.delphipraxis.net/52323-bb-codes-delphi-darstellen.html)

Sonic the Hedgehoge 27. Aug 2005 19:49


BB-Codes in Delphi darstellen
 
Hallo liebe DP-User,

ich suche nach einer möglichkeit den Inhalt eines Memos mit BB-Codes als Voransicht anzuzeigen.

Das Programm soll also:

den inhalt des memos:

Code:
[b]hallo[/b]
so anzeigen:

hallo

wie könnte ich das machen

Gruß Sonic

Pr0g 27. Aug 2005 19:53

Re: BB-Codes in Delphi darstellen
 
TWebBrowser und dann BBCode nach HTML umformen. Sollte am leichtesten gehen.

Sonic the Hedgehoge 27. Aug 2005 19:56

Re: BB-Codes in Delphi darstellen
 
und wie kann ich des machen

wie ist den der code mit dem ich in einem memo was suchen kann und durch was anderes ersetzten kann?

Die Muhkuh 27. Aug 2005 19:58

Re: BB-Codes in Delphi darstellen
 
Delphi-Referenz durchsuchenStringReplace

Daniel G 27. Aug 2005 20:00

Re: BB-Codes in Delphi darstellen
 
Zitat:

Zitat von Sonic the Hedgehoge
und wie kann ich des machen

wie ist den der code mit dem ich in einem memo was suchen kann und durch was anderes ersetzten kann?

Guck' mal in Delphi - Hilfe in der Kategorie "String - Verarbeitung". Da gibt's 'ne Menge Routinen, meist mit Beispiel

Sonic the Hedgehoge 27. Aug 2005 20:04

Re: BB-Codes in Delphi darstellen
 
aber bei memo gibts gar kein string replace

gibts da keine anderen möglichkeiten?

ich will in einem memo das '[b]' in '[b]' umwandeln

flomei 27. Aug 2005 20:11

Re: BB-Codes in Delphi darstellen
 
Ne, StringReplace ist auch ne Funktion die überall geht, unabhänging von der verwendeten Komponente...

MFG Florian :hi:

Sonic the Hedgehoge 27. Aug 2005 20:14

Re: BB-Codes in Delphi darstellen
 
aber bei stringreplace muss ich ja angeben, welcher string ersetzt werden soll

ich weiß aber nicht wo der string im memo ist

außerdem werd ich aus der delphi-hilfe nicht schlau ich kappier den syntax von replacestring gar nicht

dahead 27. Aug 2005 20:26

Re: BB-Codes in Delphi darstellen
 
Zitat:

ich weiß aber nicht wo der string im memo ist
Delphi-Quellcode:
var
 I: Integer;
begin
 for I := 0 to Memo1.Lines.Count - 1 do
  StringReplace(Memo1.Lines[I], 'Test suchen', 'Text ersetzen', [rfReplaceAll]);
end;
so könnte das gehen (ich habe die parameter von stringreplace gerade nicht im kopf, aber ein f1 dürfte dir da weiterhelfen -
oder jemand hier aus dem forum korrigiert mich. im prinzip lässt du eine schleife für jede zeile durch dein memo laufen.

um diese funktion nutzen zu können musst du noch (hast du wohl schon) die unit sysutils in deine unit einbinden.

Zitat:

außerdem werd ich aus der delphi-hilfe nicht schlau ich kappier den syntax von replacestring gar nicht
das ist schlecht.

Sonic the Hedgehoge 27. Aug 2005 20:30

Re: BB-Codes in Delphi darstellen
 
dein code geht bei mir nicht :cry:

dahead 27. Aug 2005 20:31

Re: BB-Codes in Delphi darstellen
 
interessant.

was geht denn nicht? welche fehlermeldung?

wie sieht dein code aus?

fragen über fragen.

Evian 27. Aug 2005 20:32

Re: BB-Codes in Delphi darstellen
 
Hier probier das mal aus:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, SHDocVw, StdCtrls, ActiveX;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function BBtoHTML(html : String): STRING;
BEGIN
  html:=StringReplace(html,'[','<',[rfReplaceAll]);
  html:=StringReplace(html,']','>',[rfReplaceAll]);
  result := '<html><head></head><body>'+html+'</body>';
END;

procedure TForm1.Button1Click(Sender: TObject);
var
  memStream: TMemoryStream;
  bbhtml : STRING;
begin
  bbhtml := BBtoHTML(memo1.Lines.Text);
  webbrowser1.Navigate('about:blank');
  while webbrowser1.ReadyState <> READYSTATE_COMPLETE do
  begin
    Sleep(5);
    Application.ProcessMessages;
  end;
  memStream := TMemoryStream.Create;
  memStream.Write(Pointer(bbhtml)^,Length(bbhtml));
  memStream.Seek(0,0);
  (webbrowser1.Document as IPersistStreamInit).Load(
    TStreamAdapter.Create(memStream));
  memStream.Free;
END;
end.
mit der Fettschrift geht es schon ... musst halt nur noch Zeilenumbruch und evtl. andere Codes von BB anpassen... kenn mich mit BB nicht aus.

Die Muhkuh 27. Aug 2005 20:33

Re: BB-Codes in Delphi darstellen
 
@dahead

StringReplace ist eine Funktion und gibt den formatierten String zurück:

Delphi-Quellcode:
var
  I: Integer;
begin
for I := 0 to Memo1.Lines.Count - 1 do
  Memo1.Lines[I] := StringReplace(Memo1.Lines[I], 'Test suchen', 'Text ersetzen', [rfReplaceAll]);
end;

dahead 27. Aug 2005 20:36

Re: BB-Codes in Delphi darstellen
 
@Spider:

ja, danke weiß ich (eigentlich). habe vergessen das result zu übernehmen.

@sonic:

geht spiders version?

Sonic the Hedgehoge 27. Aug 2005 20:38

Re: BB-Codes in Delphi darstellen
 
spiders version geht danke

aber ich werds aufgeben ich bekomme des einfach nicht hin

dahead 27. Aug 2005 21:56

Re: BB-Codes in Delphi darstellen
 
Zitat:

aber ich werds aufgeben ich bekomme des einfach nicht hin
wenn du nicht willst, ist das was anderes.
andererseits könntest du auch schreiben was nicht geht, dann könnte dir wiederum jemand helfen.
liegt an dir dein problem zu schildern.

Sonic the Hedgehoge 27. Aug 2005 22:07

Re: BB-Codes in Delphi darstellen
 
es ging jetzt soweit mit dem ersetzen aber
dann ist alles ohne zeilenumbruch

Olli 27. Aug 2005 22:24

Re: BB-Codes in Delphi darstellen
 
Altes Projekt, aber vielleicht die Lösung: http://assarbad.net/stuff/!import/nico.old/DelphUBBsrc.zip

Daniel 27. Aug 2005 23:17

Re: BB-Codes in Delphi darstellen
 
Die WPTools (http://www.wpcubed.com/products/wptools/index.htm) unterstützen ebenfalls einen Satz BBCodes. :-) Ob die Liste mittlerweile erweiterbar ist, kann ich jedoch nicht sagen. Die Standard-Codes werden aber auf alle Fälle untersützt.

velgreyer 28. Aug 2005 09:12

Re: BB-Codes in Delphi darstellen
 
Und was ist, wenn man auch Attribute in den BB-Tags miteinbringen möchte? 10x string_replace für [size=1], [size=2] usw. :lol:
Fang es garnicht erst an ;) Für solche Zwecke sind Reguläre Ausdrücke (Delphi-Link: http://www.regular-expressions.info/delphi.html) geschaffen.

http://www.datar.de/s.jpg, vel

malo 28. Aug 2005 09:15

Re: BB-Codes in Delphi darstellen
 
Zu den StringReplace-Codes... wieso arbeitet ihr zeilenweise? :gruebel: Wäre es nicht einfacher, direkt die Property Text vom Memo zu formatieren? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:59 Uhr.

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