![]() |
Highlight-Erkennung: Fehler ! Wo ?
Delphi-Quellcode:
Der stellt mir, egal welcher Dateityp Highlighter auf Nil !
procedure TMain.GetDroppedFileNames(var msg : TWMDropFiles);
var sFileName,extension: string; dwFileCount,i,dwReqdLength: cardinal; code: TSynMemo; begin dwFileCount := DragQueryFile(msg.Drop,$FFFFFFFF,nil,0); for i := 0 to dwFileCount - 1 do begin dwReqdLength := DragQueryFile(msg.Drop,i,nil,1); sFileName := StringOfChar(#00,dwReqdLength+1); DragQueryFile(msg.Drop,i,PChar(sFileName),dwReqdLength+1); code_count := code_count+1; newCode(code_count,sFileName, 'open'); code := ActiveCode(); extension := ExtractFileExt(sFileName); if Pos(extension,PHPhigh.DefaultFilter) > 0 then code.Highlighter := PHPhigh else if Pos(extension,HTMLhigh.DefaultFilter) > 0 then code.Highlighter := HTMLhigh else if Pos(extension,CSShigh.DefaultFilter) > 0 then code.Highlighter := CSShigh else if Pos(extension,SQLhigh.DefaultFilter) > 0 then code.Highlighter := SQLhigh else if Pos(extension,PERLhigh.DefaultFilter) > 0 then code.Highlighter := PERLhigh else if Pos(extension,JShigh.DefaultFilter) > 0 then code.Highlighter := JShigh else code.Highlighter := Nil; end; end; .DefaultFilter ist bei allen gefüllt ! Ich habe mir alles mal per MessageDlg() anzeigen lassen ! Defaultfilter ist folgendermaßen bei PHPhigh aufgebaut:
Code:
Wenn ich nun per Drag&Drop eine .php-Datei reinziehe, macht er keinen Highlighter !
.php.php3.php4.phtml.inc
Obwohl er richtig auswählt ! Das wundert mich... |
Hi rebugger,
das liegt daran, dass der String extension in jedem Fall nullterminiert ist und '.php'#0 eben nicht im Filter vorkommt. Das heißt, du muss deinen Filter entweder so umbauen, dass Nullterminierungen darin vorkommen:
Code:
oder du entfernst die Nullterminierung:
PHPHigh.DefaultFilter := '.php'#0'.php3'#0'.php4'#0'.phtml'#0'.inc'#0;
Code:
MfG,
if (extension[Length(extension)] = #0) then
extension := Copy(extension, 1, Length(extension) - 1); d3g |
Wow, danke, habe die Nullterminierung genommen !
Läuft jetzt wirklich perfekt ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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