18. september 2003 - 19:24Der er
17 kommentarer og 1 løsning
SynEdit demo problem
Hej, Jeg sidder og arbejder med en demo af synedit (EditAppDemos). Jeg har på "WorkbookMainForm" indsat et TreeView hvor der nogle forskellige tags i. Jeg har lavet en procedure som er som følgende:
procedure TEditor.InsTag(fText: String; XAI, YAI: Integer; NL: Boolean); begin // En masse funktioner end;
Når man dobbelt klikker på TreeView'en kalder den proceduren på følgende måde:
if TreeView1.Selected.HasChildren = False then begin GI_EditCmds.InsTag(TreeView1.Selected.Text, 0, 0, False); end;
Når man gør det kommer følgende fejlmeddelse: Project EditAppWorkbook.exe raised exception class EAccessViolation with message 'Access violation at address 004F8A1A in module EditAppWorkbook.exe'. Read of address 00000000'. Process stopped. Use Step or Run to continue.
Man kan jo tænke sig til at det er fordi at SynEditor'en ikke er "aktiv". Hvordan gør jeg så den bliver det?
if (TreeView1.Selected <> NIL ) and ( TreeView1.Selected.HasChildren = False ) then begin GI_EditCmds.InsTag(TreeView1.Selected.Text, 0, 0, False); end;
prøv sådan, en eaccessviolation er når du bruger et object der ikke er created, og min erfaring med ttreeview er at man altid skal checke om selected er forskellig fra nil
Nu sker der intet... Men der kommer heller ingen fejlmeddelse...
if (TreeView1.Selected.ImageIndex = 2) and not (TreeView1.Selected = nil) and not (GI_ActiveEditor = nil) then begin LastItemSel := TreeView1.Selected.Text; GI_ActiveEditor.Activate; GI_ActiveEditor.InsTag(TreeView1.Items.Item[TreeView1.Selected.Index].Text, 0, 0, False); end;
Nå fik det selv til at virke... Men takker for hjælp alligevel :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.