![]() |
[UniSynEdit] Zugriffsverletzung bei SynGen
Hi DP'ler
immer wenn hier im Forum das Wort Highlighter fällt, kommt direkt darauf die Komponente SynEdit ^^ Da ich für mein aktuelles Projekt einen eigenen Highlighter ganz gut gebrauchen könnte, hab ich mir mal das SynEdit (bzw. genauer gesagt das UniSynEdit wegen D2009) runtergeladen und angeschaut. Soweit so gut... Hab nun angefangen, dass Tutorial durchzuarbeiten, aber ich kriege das SynGen einfach nicht zum Laufen: Nach dem ich das SynGen-Projekt geöffnet, kompiliert, gestartet und die .msg Datei (Das erste Beispiel) geladen habe, sollte man ja irgendwann auch mal auf Start klicken ^^, aber da bekomm ich nur: Zitat:
Kann mir jemand sagen, was ich falsch mache? :( MfG Zwoetzen |
Re: [UniSynEdit] Zugriffsverletzung bei SynGen
Zitat:
Vermutlich erzeugst du irgendwas nicht richtig - da die Fehlermeldung ja besagt, dass du auf etwas zugreifst, was es nicht gibt. |
Re: [UniSynEdit] Zugriffsverletzung bei SynGen
Es geht um das SynGen: Das liegt als fertiges Projekt vor und sollte entsprechend auch ohne Änderungen laufen, oder nicht? ;)
|
Re: [UniSynEdit] Zugriffsverletzung bei SynGen
Okay, habe den Fehler gefunden und konnte ihn beheben:
Beim Reinladen der .msg-Datei (via Stream) wurde der Inhalt komplett zerstört (bzw falsch interpretiert), sodass zB statts "AB" irgendein chinesisches/japanisches Zeichen dabei rauskam. Habe nun das Reinladen der Datei anstatt über einen Stream über eine TStringList realisiert, und nun funktioniert auch alles so, wie es soll: Das Programm läuft durch und tut das, was es soll :) (kA ob das auch über Streams zu reparieren gewesen wäre... Hab noch nie mit Streams gearbeitet ^^) Der geänderte Code: (Der auskommentierte Teil ist der ursprüngliche Code)
Delphi-Quellcode:
MfG Zwoetzen
procedure TFrmMain.BtnStartClick(Sender: TObject);
var SL: TStringList; // <-- ADDED begin ClearAll; Screen.Cursor := crHourGlass; // BEGIN EDIT SL := TStringList.Create; SL.LoadFromFile(OpenDialog.FileName); Lex.Origin := PWideChar(SL.Text); SL.Free; (* Stream.Clear; Stream.LoadFromFile(OpenDialog.FileName); Lex.Origin := Stream.Memory; *) // END EDIT Lex.Tokenize; // <-- Hier drin hats immer geknallt, weil der Dateiinhalt falsch interpretiert wurde [...] end; |
Re: [UniSynEdit] Zugriffsverletzung bei SynGen
Hallo,
würde auch das
Delphi-Quellcode:
funktionieren?
Lex.Origin := PWideChar(Stream.Memory);
(Habe keine passende Delphiversion, um das selbst auszuprobieren :( ) |
Re: [UniSynEdit] Zugriffsverletzung bei SynGen
Zitat:
(Kann jemand chinesisch? Vielleicht isses ne geheime Botschaft :lol: ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 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