ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / Allgemein / Delphi Thwboard-code


Seite 1 von 1

jonny schrieb am 20.04.2004 um 16:00 Uhr

Hallo alle zusammen,

wie kann ich ein Delphi ThWboard-Code in mein Forum einbauen oder gibt es so einen schon.

Ich würde das man z.B. zwischen [delphi] [/delphi] code eingeben kann und dieser dann an Delphi Quellcode farblich usw angepasst wird.

Kann man soetwas überhaupt machen?

Bluetooth schrieb am 20.04.2004 um 16:10 Uhr

Wenn du ein Modul schreibst, das die ganzen Syntax-Highlighting-Regeln definiert und Code dann entsprechend highlightet, ist das möglich.

Das PHP-Syntax-Highlighting nutzt eine PHP-eigene Funktion, daher ist das wesentlich leichter möglich.

KhanRKerensky schrieb am 21.04.2004 um 00:16 Uhr

Sowas is eigentlich recht einfach... bloß ein wenig Zeitraubend.
http://hacks.slware.com/tboard/showtopic.php?threadid=364&time=1077033614
Dort hab ich das mal für HTML gemacht. Für Delphi sollte das eigentlich ähnlich zu machen sein. Wenn ich Zeit hätte, würd ich das ja mal machen, aber hab eben keine.

jonny schrieb am 21.04.2004 um 11:08 Uhr

Danke! werde ich mal Versuchen. Mal sehen ob das klappt ich habe soetwas nämlich noch nie gemacht.

jonny schrieb am 21.04.2004 um 15:34 Uhr

Hallo nochmal:

Ich habe mitlerweile einiges in die thwcode.inc.php reingeschrieben aber es funktioniert noch nicht so hundertprozentig.

Hier ist der code:

// [Delphi]
function format_delphisources($string)
{
    global $style;
    $string = str_replace('\"', '"', $string);
    // ADJUST THE COLORS HERE
    $color['reserved'] = '#000000';   // "reservierte wörter"
    $color['strings'] = '#0000FF';   // "Strings"
    $color['comments'] = '#0000FF';   // "Kommentare"
    $color['integer'] = '#0000FF';  // "Integer"
    $searches = $replaces = array();
    //leerzeichen
    $searches[0] = '/( )/i';
    $replaces[0] = ' ';
    // "values"
    $searches[1] = '/(\'.*?\')/i';
    $replaces[1] = '<font color="'.$color['strings'].'">$1</font>';
    // "Komentare"
    $searches[2] = '/(\{.*?\})/i';
    $replaces[2] = '<font color="'.$color['comments'].'">$1</font>';
    // "Zahlen"[0-9]
   // $searches[2] = '/( [0-9])/i';
    //$replaces[2] = '<font color="'.$color['integer'].'">$1</font>';
    // Reservierte Wörter
    $searches[3] = '/(unit |interface |uses |type |record| string|end| class|&nbsp;class|procedure |private |public |const |var |property| read | write |function |implementation |begin |for | to | downto | do|while |repeat|until |if | then|try |except |finally |protected |published |unit&nbsp;|interface&nbsp;|uses&nbsp;|type&nbsp;|&nbsp;string|procedure&nbsp;|private&nbsp;|public&nbsp;|const&nbsp;|var&nbsp;|&nbsp;read&nbsp;|&nbsp;write&nbsp;|function&nbsp;|implementation&nbsp;|begin&nbsp;|for&nbsp;|&nbsp;to&nbsp;|&nbsp;downto&nbsp;|&nbsp;do|while&nbsp;|repeat&nbsp;|until&nbsp;|if&nbsp;|&nbsp;then|try&nbsp;|except&nbsp;|finally&nbsp;|protected&nbsp;|published&nbsp;|brak;|exit;)/i';
    $replaces[3] = '<font color="'.$color['reserved'].'"><b>$1</b></font>';

    $string = preg_replace($searches, $replaces, $string);

    $string = '<br><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1" bgcolor="' . $style['border_col'] . '"><tr><td><font size="1"><b>Quellcode (Delphi):</b></font></td></tr><tr><td bgcolor="' . $style['CellA'] . '"><code>' . $string . '</code></td></tr></table><br>';
    return $string;
}
// ENDE [DELPHI]

jonny schrieb am 21.04.2004 um 15:40 Uhr

Das mit den Zahlen ist ja total doof (im Quelltext als Kommentar) wenn das gemacht wird dann wird der Hex-Farbwert in Bunt dargestellt dann steht da z.B. sowas: 0000FF"> und dann ein Text der eigentlich andere farbe haben sollte.

dann hab ich noch problemme mit den Kommentaren, in delphi gibt es zwei möglichkeiten kommentare zu mache und zwar eine die oben zu sehen ist mit {kommentar} und eine mit //alles was hier hinter steht ist kommentar aber wie kann ich sagen das alles in dieser Zeile hinter diesen zeichen kommentar ist.

und und und. bitte um Hilfe.

Bluetooth schrieb am 22.04.2004 um 10:47 Uhr

\/\/ und \n als Begrenzer. natürlich in "".

Seite 1 von 1