Registriert seit: 29. Okt 2002
Ort: Auerbach
190 Beiträge
Delphi 7 Professional
|
1. Nov 2002, 14:33
OK, Alles nochmal:
Code:
type TZeile = array of string;
.
public
{ Public-Deklarationen }
function Intialize_Highlight(): Bool;
function Parse(zeile: string;zeilennummer:longint ):TZeile;
.
function TMain.Parse(zeile: string;zeilennummer:longint ):TZeile;
var i :longint;
anzahl:longint;
pos :array of integer;
begin
anzahl:=0;
SetLength(pos,0);
SetLength(result, 0);
for i := 1 to Length(zeile) do
if zeile[ i ] = ';' then // <-- ACHTUNG KORRIGIERT!!!
begin
inc(anzahl);
SetLength(pos, anzahl);
pos[anzahl-1]:=i;
SetLength(result, anzahl);
end;
for i:=0 to high(result) do
begin
if i=0 then
result[i ]:=copy(zeile,1,pos[0]-1)
else
result[i ]:=copy(zeile,pos[i-1]+1,pos-1-pos[i-1]); // <-- ACHTUNG KORRIGIERT!!!
end;
//if Length(result)=0 then Messagebox(0, '', 'Fehler', 0);
end;
function TMain.Intialize_Highlight(): Bool;
var
ini: TIniFile;
php_comment, php_identifier, php_invalidsymbol, php_key,
php_number, php_space, php_string, php_symbol, php_variable: TZeile;
tmp_style: TZeile;
begin
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'highlight.cfg');
try
php_comment := Parse(ini.ReadString('PHP','Comment','$0045CDFA,clNone,0,1,0,0'), 0);
PHPhigh.CommentAttri.Foreground := IntToStr(php_comment[0]);
PHPhigh.CommentAttri.Background := IntToStr(php_comment[1]);
if IntToStr(php_comment[2]) = 1 then
PHPhigh.CommentAttri.Style := fsBold;
if IntToStr(php_comment[3]) = 1 then
PHPhigh.CommentAttri.Style := fsItalic;
if IntToStr(php_comment[4]) = 1 then
PHPhigh.CommentAttri.Style := fsUnderline;
if IntToStr(php_comment[5]) = 1 then
PHPhigh.CommentAttri.Style := fsStrikeOut;
finally
ini.Free;
end;
end;
Er sagt mir:
[Fehler] main_unit.pas(157): Operator ist auf diesen Operandentyp nicht anwendbar
Die Zeile:
Code:
result[i ]:=copy(zeile,pos[i-1]+1,pos-1-pos[i-1]);
Wo liegt der Fehler ?
Kann ich das ganze nicht verkürzen ?
Ich müsste das ganze sonst noch mit PHPhigh.IdentifierAttri.... und noch weiteren 40 Objekten machen und das wäre sehr viel Code !
Kann man das alles nicht in eine Funktion zusammenfassen, an die ich nur noch z.B. "PHPHigh.CommentAttri" übergeben muss ?
|
|
Zitat
|