![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Napisano vse pravilno, no ne rabotaet??? [D7, WinXP]
pr0t0n © (2005-09-19 21:12:00)hi, mastera! Vobshem tema takay est ListView v nem 2,3.....(N), koroche luboe kolichestvo items, pri sobitii OnChange voznikaet oshibka 'Acces violation at adress XXXXXXXX in modul Project.exe
Read of adres XXXXXXXX.
Smisol procedure - pri videlenie itema, v Edit1,Edit2...Edit(N) zagrujautsya iz IniFila danie.
Koroche ya stavlu bryak na OnChange i viju:
1.Prohodit perviy krug po procedure c danime ot starogo itema t.e
(est 2 itema A i B, Videlen B-on je stariy, Videlyaemiy A-on je noviy)
Edit1.text:=ini.readString(ListView1.selected.caption, 'Name','');
na pervom kruge vse OK, ListView1.selected.caption=Staromu znacheniu.
2.Nachinaetsya vtoroy krug, teper ListView1.selected.caption='';
i voznikaet oshibka.
3. Posle oshibki, vse gruzit'sya na svoi mesta.
Poesnenie, ni kakih ciklov i t.p. u menya v procedure net, eto pro krugi.
Poluchaetsya chto ya,(komputer) 2 raza proceduru prohoju v otladchike.
Vopros:
a) S kakogo u meny vnachale gonit so starimi danimi, a potom s pustim ListView1.selected.caption???.
b) Kto nibud obesnite eto....... daje neznau kak obozvat.
zaranee Spasibo.
DiamondShark (2005-09-20 18:05:00) [1]
> pr0t0n © (20.09.05 17:26) [4]
А проверить свойство на равенство nil перед обращением к нему что мешает?
А вообще, чтоб уяснить себе, что происходит в ListView при переходе между итемами, погоняй вот такую игрушку:
procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem; Change: TItemChange);
const
BoolStr: array[boolean] of string = ('false', 'true');
begin
if Item <> nil then
ShowMessageFmt('Item: %s'#13'Selected: %s'#13'Focused: %s', [Item.Caption, BoolStr[Item.Selected], BoolStr[Item.Focused]])
else
ShowMessage('nil');
end;
zx (2005-09-20 17:39:00) [2]У меня есть русские кнопки! Недорого!!!
Плохиш (2005-09-20 17:31:00) [3]
> pr0t0n © (20.09.05 17:26) [4]
> po russki ne pishu potomuchto net russkih bukv na klaviature,
U teba russkih knopok netu, a u nas o4eredx k okulistu za mnogo mesacew wpered zanimatx nado.
pr0t0n (2005-09-20 17:26:00) [4]po russki ne pishu potomuchto net russkih bukv na klaviature,
Djo, prichm tut diversiya,
Svoystvo selekt v etom sluchae kakraz = nill, provereno.
Kak polzovatsya parametrom sobitiy???
vot ishodnik.
procedure TForm1.LWChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
var
ini : TiniFile;
dir : string;
begin
Getdir(0,Dir);
ini:=TiniFile.Create(dir+'\BASE\'+TW.Selected.Text+'.bse');
shifr(0,dir+'\BASE\'+TW.Selected.Text+'.bse');
try
edName.Text:=Ini.ReadString(LW.Selected.Caption,'Name','');
edLogin.Text:=Ini.ReadString(LW.Selected.Caption,'Login','');
edPass.Text:=Ini.ReadString(LW.Selected.Caption,'Pass','');
edAdres.Text:=Ini.ReadString(LW.Selected.Caption,'Adres','');
edDate.Text:=Ini.ReadString(LW.Selected.Caption,'Date','');
finally
shifr(1,dir+'\BASE\'+TW.Selected.Text+'.bse');
ini.Free;
end;
end;
end;
DiamondShark (2005-09-19 23:03:00) [5]Свойство Selected может быть nil.
Надо проверять.
А почему не пользуешься параметром события?
ANB (2005-09-19 21:14:00) [6]А по русски написать тоже самое религия не позволяет ?
Джо (2005-09-19 21:14:00) [7]Это диверсия.