Avatar billede mr.meincke Nybegynder
18. september 2003 - 19:24 Der 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?

// Mr.Meincke
Avatar billede mr.meincke Nybegynder
18. september 2003 - 19:25 #1
PS.. Har prøvet at sætte SynEditor.SetFocus ind I proceduren ... Virker ikke :'(
Avatar billede martinlind Nybegynder
18. september 2003 - 22:14 #2
det er sikkert fordi Treeview1.selected er nil ( ingen selected ), prøv at check for det inden du bruger haschildren

/martin
Avatar billede mr.meincke Nybegynder
18. september 2003 - 22:15 #3
kk... Prøver jeg lige
Avatar billede mr.meincke Nybegynder
18. september 2003 - 22:16 #4
Nope ikke det
Avatar billede martinlind Nybegynder
18. september 2003 - 22:21 #5
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
Avatar billede mr.meincke Nybegynder
18. september 2003 - 22:29 #6
stadig fejl
Avatar billede martinlind Nybegynder
18. september 2003 - 22:30 #7
så må du prøve at "steppe" dig ind og se hvor det går galt
Avatar billede mr.meincke Nybegynder
18. september 2003 - 22:32 #8
Det går galt når den skal sætte teskten ind i SynEdit'en
Avatar billede mr.meincke Nybegynder
18. september 2003 - 22:35 #9
Næ det er ikke når den skal sætte teksten ind.... Har du evt MSN så kan jeg sende dig hele proceduren der?
Avatar billede mr.meincke Nybegynder
18. september 2003 - 22:42 #10
Problemet opstår når følgende linie bliver eksekveret:
GI_EditCmds.InsTag(TreeView1.Selected.Text, 0, 0, False);
Avatar billede martinlind Nybegynder
18. september 2003 - 23:00 #11
Der har du også TreeView1.Selected.... det er 99% fordi Selected er NIL

Jeg har ikke msn
Avatar billede mr.meincke Nybegynder
18. september 2003 - 23:03 #12
kk... Jamen hvis jeg bruger den kode du har posted så virker det heller ikke?
Avatar billede mr.meincke Nybegynder
18. september 2003 - 23:06 #13
Hvordan kan jeg lave så når man dobbeltklikker på TreeView1 så eksekverer den følgende kommando:

  GI_EditCmds.InsTag(TreeView1.Selected.Text, 0, 0, False);
Avatar billede mr.meincke Nybegynder
18. september 2003 - 23:09 #14
Hvis jeg bruger:
  if (TreeView1.Selected <> NIL ) and ( TreeView1.Selected.HasChildren = False ) then begin
    ShowMessage(TreeView1.Selected.Text);
  end;

Så virker det fint? :S
Avatar billede mr.meincke Nybegynder
18. september 2003 - 23:23 #15
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;
Avatar billede martinlind Nybegynder
19. september 2003 - 17:03 #16
Det kunne jo tyde på at det er GI_ActiveEditor der er lig NIL

/Martin
Avatar billede mr.meincke Nybegynder
19. september 2003 - 17:30 #17
Den er den også... Men ved du hvad jeg kan gøre for at den ikke er det?
Avatar billede mr.meincke Nybegynder
23. september 2003 - 09:12 #18
Nå fik det selv til at virke... Men takker for hjælp alligevel :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging