SynEdit.Highlighter.Capabilities - hcCodeFolding

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

SynEdit.Highlighter.Capabilities - hcCodeFolding

Beitrag von Ally »

Hallo,

wenn ein SynEdit.Highlighter Code-Folding unterstützt enthält SynEdit.Highlighter.Capabilities, hcCodeFolding.
Mein Code sieht also wie folgt aus:

Code: Alles auswählen

if hcCodeFolding in SynEdit.Highlighter.Capabilities then
begin
  // mach was.....
end;
Das führt aber immer dann zu einem External: SIGSEGV, wenn hcCodeFolding nicht in SynEdit.Highlighter.Capabilities vorhanden ist.

Folgender Workaround funktioniert zwar, aber vielleicht gibt es da ja eine bessere Lösung?

Code: Alles auswählen

Try
  if hcCodeFolding in SynEdit.Highlighter.Capabilities then
  begin
    // mach was.....
  end;
except
end;
Gruß Roland

martin_frb
Beiträge: 572
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: SynEdit.Highlighter.Capabilities - hcCodeFolding

Beitrag von martin_frb »

Und in welcher Zeile ist der SigSegv?

Ist denn überhaupt eint HL assigned? <> nil?

Benutzeravatar
Ally
Beiträge: 263
Registriert: Do 11. Jun 2009, 09:25
OS, Lazarus, FPC: Win und Lazarus Stable release
CPU-Target: x64

Re: SynEdit.Highlighter.Capabilities - hcCodeFolding

Beitrag von Ally »

Hallo Martin,

das wars. Wenn überhaupt kein HL zugewiesen ist, knallt es.

So funktioniert es:

Code: Alles auswählen

if (SynEdit.Highlighter <> nil) and (hcCodeFolding in SynEdit.Highlighter.Capabilities) then
begin
  // mach was.....
end;
Vielen Dank für deine Hilfe.

Gruß Roland

Antworten