Ĺadny brzuch
[DELPHI]
Witam!
mam procedurke:
procedure TForm1.ZaladujProgramy; var reg: Tregistry; i: integer; j: integer; begin lista.Strings.Clear; tymk.Items.Clear; tymw.Items.Clear; reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\App Paths', true); reg.GetKeyNames(Tymk.Items); for i := 0 to Tymk.Items.Count-1 do begin reg.CloseKey; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\App Paths' + '\' + Tymk.Items[i], true); Tymw.Items.Add(reg.ReadString('')); reg.CloseKey; end; for j := 0 to Tymk.Items.Count-1 do tymk.Items[j] := usunroz(tymk.Items[j]); for i:= 0 to Tymk.Items.Count-1 do begin Lista.InsertRow(Tymk.Items[i], tymw.Items[i], true); end; reg.Free; end;
Gdy ją wywołuje działa normalnie. Lecz gdy wywołuje ją w takim poleceniu:
procedure TForm1.mDeleteClick(Sender: TObject); var r: Tregistry; begin if application.MessageBox(PChar('Czy napewno chcesz usunąć ' + lista.Keys[Lista.Row] + '?'), 'Uwaga', MB_YESNO + MB_ICONQUESTION) = idYes then begin r := Tregistry.Create; r.RootKey := HKEY_LOCAL_MACHINE; r.OpenKey('Software\Microsoft\Windows\CurrentVersion\App Paths', true); r.DeleteKey(lista.Keys[lista.Row]); r.Free; end; zaladujprogramy; end;
wyświetla mi błąd :
Grid index out of range. , izaznacza mi
Lista.InsertRow(Tymk.Items[i], tymw.Items[i], true); w poleceniu zladujprogramy.
Co może być przyczyną?
Użytkownik pat edytował ten post 07 lipiec 2006, 12:07
Sorry ze dwa posty , ale myslałem ze problem rozwiazaniy, ale czescowo. Ma ktoś jakies roziwązania?
A tak przy okzaji: czy valuelisteditor czysci za pkmocą procedury valuelisteditor.string.clear? Czy jakiejs innej? Okazalo sie ze przy dłuzszym uzywaniu procedury zaladujprogramy pojawia sie ten sam blad.
Użytkownik pat edytował ten post 07 lipiec 2006, 12:08
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Witam!
mam procedurke:
procedure TForm1.ZaladujProgramy; var reg: Tregistry; i: integer; j: integer; begin lista.Strings.Clear; tymk.Items.Clear; tymw.Items.Clear; reg := TRegistry.Create; reg.RootKey := HKEY_LOCAL_MACHINE; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\App Paths', true); reg.GetKeyNames(Tymk.Items); for i := 0 to Tymk.Items.Count-1 do begin reg.CloseKey; reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\App Paths' + '\' + Tymk.Items[i], true); Tymw.Items.Add(reg.ReadString('')); reg.CloseKey; end; for j := 0 to Tymk.Items.Count-1 do tymk.Items[j] := usunroz(tymk.Items[j]); for i:= 0 to Tymk.Items.Count-1 do begin Lista.InsertRow(Tymk.Items[i], tymw.Items[i], true); end; reg.Free; end;
Gdy ją wywołuje działa normalnie. Lecz gdy wywołuje ją w takim poleceniu:
procedure TForm1.mDeleteClick(Sender: TObject); var r: Tregistry; begin if application.MessageBox(PChar('Czy napewno chcesz usunąć ' + lista.Keys[Lista.Row] + '?'), 'Uwaga', MB_YESNO + MB_ICONQUESTION) = idYes then begin r := Tregistry.Create; r.RootKey := HKEY_LOCAL_MACHINE; r.OpenKey('Software\Microsoft\Windows\CurrentVersion\App Paths', true); r.DeleteKey(lista.Keys[lista.Row]); r.Free; end; zaladujprogramy; end;
wyświetla mi błąd :
Grid index out of range. , izaznacza mi
Lista.InsertRow(Tymk.Items[i], tymw.Items[i], true); w poleceniu zladujprogramy.
Co może być przyczyną?
Użytkownik pat edytował ten post 07 lipiec 2006, 12:07
Sorry ze dwa posty , ale myslałem ze problem rozwiazaniy, ale czescowo. Ma ktoś jakies roziwązania?
A tak przy okzaji: czy valuelisteditor czysci za pkmocą procedury valuelisteditor.string.clear? Czy jakiejs innej? Okazalo sie ze przy dłuzszym uzywaniu procedury zaladujprogramy pojawia sie ten sam blad.
Użytkownik pat edytował ten post 07 lipiec 2006, 12:08