PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Syntax Highlighter für´s Board


Patrik Graf
11.09.2002, 03:14
Hi! :D

Ich habe einen Syntax-Highlighter für den Code-Tag programmiert. Der Grund dafür ist, das man im Code-Tag keine Erkennung für die jeweiligen Programmiersprachen hat. Ein Beispiel:


function GetUsers(): Boolean;
Var
NetResource: TNetResource;
Buf: Pointer;
Count, BufSize, Res: DWord;
Ind: Integer;
lphEnum: THandle;
Temp: PNetResourceArr;
begin
Result := False;
List.Clear;
GetMem(Buf, 8192);
Try
FillChar(NetResource, SizeOf(NetResource), 0);
NetResource.lpRemoteName := @fServer[1];
NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER;
NetResource.dwUsage := RESOURCEUSAGE_CONTAINER;
NetResource.dwScope := RESOURCETYPE_DISK;
Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER, @NetResource,lphEnum);
If Res <> 0 Then Exit;
While True Do
begin
Count := $FFFFFFFF;
BufSize := 8192;
Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);
If Res = ERROR_NO_MORE_ITEMS Then Exit;
If (Res <> 0) then Exit;
Temp := PNetResourceArr(Buf);
For Ind := 0 to Count - 1 do
begin
List.Add(Temp^.lpRemoteName + 2);
Inc(Temp);
end;
end;
Res := WNetCloseEnum(lphEnum);
If Res <> 0 Then Raise Exception(Res);
Result := True;
Finally
FreeMem(Buf);
end;
end;


Diesen Code von Hand zu formatieren ist nicht gerade eine schöne Beschäftigung... Nach dem man den Code automatisch formatieren hat lassen sieht das ganze so aus:


function GetUsers(): Boolean;
Var
NetResource: TNetResource;
Buf: Pointer;
Count, BufSize, Res: DWord;
Ind: Integer;
lphEnum: THandle;
Temp: PNetResourceArr;
begin
Result := False;
List.Clear;
GetMem(Buf, 8192);
Try
FillChar(NetResource, SizeOf(NetResource), 0);
NetResource.lpRemoteName := @fServer[1];
NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER;
NetResource.dwUsage := RESOURCEUSAGE_CONTAINER;
NetResource.dwScope := RESOURCETYPE_DISK;
Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER, @NetResource,lphEnum);
If Res <> 0 Then Exit;
While True Do
begin
Count := $FFFFFFFF;
BufSize := 8192;
Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);
If Res = ERROR_NO_MORE_ITEMS Then Exit;
If (Res <> 0) then Exit;
Temp := PNetResourceArr(Buf);
For Ind := 0 to Count - 1 do
begin
List.Add(Temp^.lpRemoteName + 2);
Inc(Temp);
end;
end;
Res := WNetCloseEnum(lphEnum);
If Res <> 0 Then Raise Exception(Res);
Result := True;
Finally
FreeMem(Buf);
end;
end;


Das ganze dauert nicht mal eine Sekunde und sieht um einiges besser aus als das obere... :D

Im Moment werden die Programmiersprachen Delphi, Pascal, Java und JavaScript unterstützt. Weitere werden in Kürze folgen... :D

Ich bitte alle Moderatoren sich mal bei mir per PN zu melden. :D

Das Programm weiter unten im Anhang...

Hinzugefügt:
mIRC-Scripting hinzugefügt


Patrik Graf
12.09.2002, 03:06
So... Die nächste und warscheinlich letzte Version ist fertig.

Diese Version kann alles, ausser Zahlen farbig darstellen.

Hier ein Beispiel:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, BmpToJpg;

type
TForm1 = class(TForm)
BmpToJpeg1: TBmpToJpeg;
Image1: TImage;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'Antira + Körnchen = BIG LOVE.bmp');
//BmpToJpeg1.BmpFile := 'C:\Win98\setup.bmp';
BmpToJpeg1.JpegFile := ExtractFilePath(Application.ExeName)+'setup.jpg';
BmpToJpeg1.CopyImageToJpeg;
end;

end.


Unterstützt im Moment Delphi, Pascal, Java, JavaScript und mIRC-Script. Ab und zu werden hier noch ein paar Files zum Download stehen damit man auch das ganze für die restlichen Programmiersprachen hat... :D Also regelmäßig rein schauen.

Besser will ich´s nicht hin bekommen... viel Spass damit :D

Version 1.2

mIRC-Scripting Bug ist behoben.
Fehler bei Kommentaren behoben

Patrik Graf
12.09.2002, 16:54
Hier sind die KeywordListfiles... also immer mal wieder reinschauen und die neuesten downloaden... :D

Inhalt:
- Delphi
- Pascal
- Java
- JavaScript
- C/C++
- VisualBasic
- mIRC Script
- Flash-Actionscript