Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.04.05;
Скачать: CL | DM;

Вниз

Access Violation   Найти похожие ветки 

 
Andrewtitoff ©   (2009-02-11 10:11) [0]

Здравствуйте!, подскажите пожалуйста что тут не так?, выскакивает ошибка Access Violation at adress 00404D68 in module "otchet.exe". Read of adrdress 403DFFF8

ShowMessage(
" Бригада 1: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),1]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),1]]])+#13#10+
" Бригада 2: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),2]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),2]]])+#13#10+
" Бригада 3: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),3]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),3]]])+#13#10+
" Бригада 4: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),4]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),4]]])+#13#10+
" Бригада 5: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),5]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),5]]])+#13#10+
" Бригада 6: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),6]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),6]]])+#13#10+
" Бригада 7: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),7]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),7]]])+#13#10+
" Бригада 8: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),8]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),8]]])+#13#10+
" Бригада 9: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),9]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),9]]])+#13#10+
"Бригада 10: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),10]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),10]]])+#13#10+
"Бригада 11: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),11]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),11]]])+#13#10+
"Бригада 12: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),12]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),12]]])+#13#10+
"Бригада 13: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),13]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),13]]]));



 
Andrewtitoff ©   (2009-02-11 10:12) [1]


brig : array[101..813] of integer;
brigt : array[101..813] of real;
uch : array[1..8,1..13]of integer;



 
Ega23 ©   (2009-02-11 10:15) [2]

Пипец. А один раз strtoint(Form1.ComboBox8.Text) вычислить - религия не позволяет?


 
Сергей М. ©   (2009-02-11 10:15) [3]

У отладчика не пробовал спросить ?
Ему виднее)


 
DrPass ©   (2009-02-11 10:19) [4]

Вы смотрели краткое содержание сериала "Бригада"...


 
Германн ©   (2009-02-11 10:19) [5]

Количество бригад надо либо уменьшить, либо увеличить!
Бо 13 - плохое число. Имхо и AV из-за этого :(


 
Palladin ©   (2009-02-11 10:20) [6]

я вообще сомневаюсь, что
1. form1 существует
2. в кобобоксе8 в тексте стоит число

а так да... за такой код - эцих с гвоздями на неделю, с последующим увольнением


 
Ega23 ©   (2009-02-11 10:27) [7]


> в кобобоксе8 в тексте стоит число


Это было бы всё-таки EConvertError, а не AV.


 
Andrewtitoff ©   (2009-02-11 10:31) [8]

2 Palladin
form1 - существует

var
 Form1: TForm1;

В комбо боксе - точно число!
т.к. Style : csOwnerDrawFixed
и в Items просто забито:
1
2
6
7
8

при чем так все работает:

 For  f:=1 to 13 do
 Begin
StringGrid1.Cells[1,f]:=Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),f]]]);
StringGrid1.Cells[2,f]:=Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),f]]]);
 End;


 
Германн ©   (2009-02-11 10:35) [9]


> при чем так все работает:

Всё страньше и страньше! (с)


 
Ega23 ©   (2009-02-11 10:36) [10]


> form1 - существует
>
> var
>  Form1: TForm1;


LOL!  

на тебе код:

procedure TForm1.Button1OnClick(Sender : TObject);
var
 bmp : TBitmap;
begin
 bmp.LoadFromFile("D:\test.bmp");
 Image1.Picture.Assign(bmp);
end;



Как ты думаешь, почему на первой же строчке у тебя AV вывалится?


 
Sergey13 ©   (2009-02-11 10:37) [11]

> [5] Германн ©   (11.02.09 10:19)
> Количество бригад надо либо уменьшить, либо увеличить!

У автора может отдельные программы на разное количество бригад. 8-)


 
Andrewtitoff ©   (2009-02-11 10:40) [12]

2 Ega23
Ну наверное потому что такого файла не существует....
А при чем тут Form1?, у меня же действительно существует.., ето единственная форма которая есть в проекте...


 
Ega23 ©   (2009-02-11 10:41) [13]


> Ну наверное потому что такого файла не существует....


Всё понятно. Немедленно бери книжку в руки и читай про объекты, конструкторы, деструкторы и время жизни.


 
Palladin ©   (2009-02-11 10:42) [14]

у тебя одна одна единственная вот такая комманда выполняется, она единственная на форме, и она и только она выдает ошибку?


 
AIK ©   (2009-02-11 10:45) [15]


> Ega23 ©   (11.02.09 10:41) [13]


http://www.delphisources.ru/pages/faq/base/access_violation.html


 
Плохиш ©   (2009-02-11 10:49) [16]


> Andrewtitoff ©   (11.02.09 10:11)
>
> Здравствуйте!, подскажите пожалуйста что тут не так?, выскакивает
> ошибка

Вообще-то здесь конференция "Начинающим", а не служба удалённой отладки бредонедокода.


 
Плохиш ©   (2009-02-11 10:51) [17]


> AIK ©   (11.02.09 10:45) [15]

Ты уверен, что Ega23 твоя ссылка нужна? Может всё-таки переадресуешь её аФФтару?


 
aik ©   (2009-02-11 10:51) [18]


> AIK ©   (11.02.09 10:45) [15]
> > Ega23 ©   (11.02.09 10:41) [13]


Упс... извеняюсь адресовано на пост:

> Andrewtitoff ©   (11.02.09 10:40) [12]
> 2 Ega23Ну наверное потому что такого файла не существует.
> ...А при чем тут Form1?, у меня же действительно существует.
> ., ето единственная форма которая есть в проекте...


 
Andrewtitoff ©   (2009-02-11 10:53) [19]

2 Ega23
bmp:=TBitmap.Create;

2 Palladin
Да она единственная выдает, она находится в процедуре, в процедуре  задается один параметр(месяц), явно указанный (кнопка на каждый месяц)
при чем за один месяц почему то не выдает ошибку(ноябрь 2008), остальные месяцы - одинакова - AV, если нужно - могу полный код процедуры показать


 
Palladin ©   (2009-02-11 10:53) [20]

представь, да, нужно, и не только мне


 
Andrewtitoff ©   (2009-02-11 10:54) [21]

2 Ega23
bmp:=TBitmap.Create;

2 Palladin
Да она единственная выдает, она находится в процедуре, в процедуре  задается один параметр(месяц), явно указанный (кнопка на каждый месяц)
при чем за один месяц почему то не выдает ошибку(ноябрь 2008), остальные месяцы - одинакова - AV, если нужно - могу полный код процедуры показать


 
Ega23 ©   (2009-02-11 10:55) [22]


> http://www.delphisources.ru/pages/faq/base/access_violation.html


По данной ссылке:


 TMyClass = class (TObject)
 public
   function Foo : string;
 end;

 TForm2 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 end;

var
 Form2: TForm2;

implementation

{$R *.dfm}

{ TMyClass }

function TMyClass.Foo: string;
begin
 Result := "TMyClass.Foo";
end;

procedure TForm2.Button1Click(Sender: TObject);
var
 obj : TMyClass;
begin
 ShowMessage(obj.Foo);
end;


:)


 
aik ©   (2009-02-11 10:55) [23]


> при чем за один месяц почему то не выдает ошибку(ноябрь 2008)


Наверное это счастливый месяц )))


 
Ega23 ©   (2009-02-11 10:56) [24]


> если нужно - могу полный код процедуры показать


Надо с этого начинать.


 
Плохиш ©   (2009-02-11 10:57) [25]


> Andrewtitoff ©   (11.02.09 10:54) [21]

Маленький глупый партизан нафига ты сюда припёрся. Здесь не гестапо, партизанов не пытают, а мочат жестоко...


 
Andrewtitoff ©   (2009-02-11 10:58) [26]

2 Palladin


procedure TForm1.OtchetB(s : byte);
var
   nLikeADate:Integer;
   d1 : word;
   m1 : word;
   y1 : word;
   d2 : word;
   m2 : word;
   y2 : word;
   c : integer;
count : integer;
 sms : MYString;
strc : Integer;
 i,n : integer;
   k : integer;
   o : real;
  uh : string;
  um : string;
brig : array[101..813] of integer;
brigt : array[101..813] of real;
uch : array[1..8,1..13]of integer;
const
uch1 : array[1..13]of integer =(101,102,103,104,105,106,107,0,0,0,0,0,0);
uch2 : array[1..13]of integer =(201,202,203,204,205,206,207,208,209,210,211,0,0);
uch6 : array[1..13]of integer =(601,602,603,604,605,606,607,608,609,0,0,0,0);
uch7 : array[1..13]of integer =(701,702,0,704,705,0,0,0,0,0,0,0,0);
uch8 : array[1..13]of integer =(801,802,803,804,805,806,807,808,809,810,811,812,813);
begin
for n := 1 to 13 do
Begin
uch[1,n]:=uch1[n];
uch[2,n]:=uch2[n];
uch[6,n]:=uch6[n];
uch[7,n]:=uch7[n];
uch[8,n]:=uch8[n];
End;

for n := 101 to 813 do
brig[n]:=0;
for n := 101 to 813 do
brigt[n]:=0;

   d1 := 20;
   if s=1 then m1:=12 else m1 := s-1;
   if s=1 then y1:=strtoint(Form1.Combobox9.Text)-1 else y1 := strtoint(Form1.Combobox9.Text);
   d2 := 20;
   m2 := s;
   y2 := strtoint(Form1.Combobox9.Text);

For nLikeADate:=Trunc(EncodeDate(y1,m1,d1)) to Trunc(EncodeDate(y2,m2,d2)) Do
 Begin
 if fileexists(MD+"\Z\"+DateToStr(nLikeADate)+".lft") then
  Begin

 with TFileStream.create(MD+"\Z\"+DateToStr(nLikeADate)+".lft", fmShareDenyNone) do
 try
  c:=trunc(Size/671);
 finally
   Free;
 end;

     with TFileStream.create(MD+"\Z\"+DateToStr(nLikeADate)+".lft",fmOpenRead) do
     try
      read(sms,671);
      for count := 1 to c-1 do
      begin
       read(sms,671);
       if {(sms.PLACE=Form1.ComboBox8.Text)and}(sms.Remont<>"Простой") then
  begin
if (isNumber(sms.BRIGADE))and(sms.BRIGADE<>"") then
begin
k:=strtoint(sms.BRIGADE);
      inc(brig[k]);
end
else k:=0;

      if (copy(sms.Remont,3,1)=".")and(copy(sms.Remont,6,1)=".") then
      brigt[strtoint(sms.BRIGADE)]:=brigt[strtoint(sms.BRIGADE)]+0.5 else
      Begin
      uh:=copy(sms.Prostoy,1,2);
      um:=copy(sms.Prostoy,4,2);

       if uh="" then uh:="0";
       if um="" then um:="0";

     if isNumber(um)and isNumber(uh)then
      Begin
      o:=strtoint(um)/60;
      o:=o+strtoint(uh);
      brigt[k]:=brigt[k]+o;
      End;

      End;
    end;

      end;
     finally
      Free;
     end;
     end;
     end;

ShowMessage(
" Бригада 1: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),1]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),1]]])+#13#10+
" Бригада 2: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),2]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),2]]])+#13#10+
" Бригада 3: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),3]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),3]]])+#13#10+
" Бригада 4: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),4]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),4]]])+#13#10+
" Бригада 5: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),5]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),5]]])+#13#10+
" Бригада 6: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),6]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),6]]])+#13#10+
" Бригада 7: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),7]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),7]]])+#13#10+
" Бригада 8: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),8]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),8]]])+#13#10+
" Бригада 9: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),9]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),9]]])+#13#10+
"Бригада 10: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),10]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),10]]])+#13#10+
"Бригада 11: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),11]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),11]]])+#13#10+
"Бригада 12: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),12]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),12]]])+#13#10+
"Бригада 13: "+Format("%.4d",[brig[uch[strtoint(Form1.ComboBox8.Text),13]]])+"/"+Format("%f", [brigt[uch[strtoint(Form1.ComboBox8.Text),13]]]));
end;



 
Andrewtitoff ©   (2009-02-11 10:59) [27]


procedure TForm1.Button3Click(Sender: TObject);
begin
if combobox9.Text="" then ShowMessage("ОШИБКА: Введите все данные...") else
OtchetB(2);
end;


 
Плохиш ©   (2009-02-11 11:00) [28]


> Ega23 ©   (11.02.09 10:56) [24]
>
>
> > если нужно - могу полный код процедуры показать
>
>
> Надо с этого начинать.

Вот тут ты не прав, о великий удалённый отладчик чужого бредокода, начинать надо было с F7/F8 ;-)


 
Andrewtitoff ©   (2009-02-11 11:00) [29]

И так на каждуй месяц


 
Andrewtitoff ©   (2009-02-11 11:01) [30]

2 Плохиш
F8 - не помогает.., останавливается в процедуре procedure TForm1.Button3Click(Sender: TObject);


 
Сергей М. ©   (2009-02-11 11:04) [31]


> останавливается в процедуре


Это хорошо.
ну а дальше ?


 
Ega23 ©   (2009-02-11 11:06) [32]

Это п-ц... какой-то....

Теперь по порядку.
1. Перепиши код без with. У тебя там вложенные встречаются, причём достаточно бездумно.
2. strtoint(Form1.ComboBox8.Text) и прочие подобные перлы должны быть вычеслены один раз. А по ходу уже значение вычесленной переменной использовать.
3. Код не просто ужасен, а (я даже слов таких не знаю). Короче, с вероятностью 0.999 в этом говнокоде никто разбираться не будет.


 
Плохиш ©   (2009-02-11 11:06) [33]


> Andrewtitoff ©   (11.02.09 11:01) [30]
>
> 2 Плохиш
> F8 - не помогает

Так он просто так не помогает, его прикормить и приласкать надо.

PS. Во всех версиях делфи имеется окошко Watch, в которое можно вывести значения каких-либо переменных.


 
Сергей М. ©   (2009-02-11 11:09) [34]


> п-ц... какой-то....
>


Дом-2


 
Andrewtitoff ©   (2009-02-11 11:09) [35]

2 Сергей М
Дальше AV


 
Сергей М. ©   (2009-02-11 11:10) [36]


> Andrewtitoff ©   (11.02.09 11:09) [35]



> Дальше AV


На какой строчке ?


 
Ega23 ©   (2009-02-11 11:11) [37]


> Дом-2


В "Доме" у некоторых участников хотя бы сиськи есть. А тут...


 
Германн ©   (2009-02-11 11:11) [38]


> Сергей М. ©   (11.02.09 11:09) [34]
>
>
> > п-ц... какой-то....
> >
>
>
> Дом-2
> Andrewtitoff ©   (11.02.09 11:09) [35]
>
> 2 Сергей М
> Дальше AV

Эт точно! Дурдом-2!


 
aik ©   (2009-02-11 11:12) [39]


> Andrewtitoff ©   (11.02.09 11:01) [30]
> 2 ПлохишF8 - не помогает.., останавливается в процедуре
> procedure TForm1.Button3Click(Sender: TObject);


есть такая красная точечка которую можно поставить слева от первого бегина


> begin
> for n := 1 to 13 doBegin


нажав на синею точечку запустить программу нажать на кнопку и потом кликать на F8, F7 и следить где именно выходит ошибка


 
Andrewtitoff ©   (2009-02-11 11:28) [40]

2 Сергей М.
На строчке
end;
в процедуре
procedure TForm1.Button3Click(Sender: TObject);

2 aik
Ставил..., все равно AV, ое ее почеиму то игнорирует...

2 Ega23
А как без with, через переменную  что ли делать?, остальное исправвил.

2 All

Я ничего не понял, но похоже Ega23 был прав все дело в многократных вычислениях strtoint(Form1.ComboBox8.Text), вот так все заработало:

begin

for n := 1 to 13 do
begin
uch[1,n]:=uch1[n];
uch[2,n]:=uch2[n];
uch[6,n]:=uch6[n];
uch[7,n]:=uch7[n];
uch[8,n]:=uch8[n];
end;

for n := 101 to 813 do
begin
brig[n]:=0;
brigt[n]:=0;
end;

   d1 := 20;
   if s=1 then m1:=12 else m1 := s-1;
   if s=1 then y1:=strtoint(Form1.Combobox9.Text)-1 else y1 := strtoint(Form1.Combobox9.Text);
   d2 := 20;
   m2 := s;
   y2 := strtoint(Form1.Combobox9.Text);

For nLikeADate:=Trunc(EncodeDate(y1,m1,d1)) to Trunc(EncodeDate(y2,m2,d2)) Do
 Begin
 if fileexists(MD+"\Z\"+DateToStr(nLikeADate)+".lft") then
  Begin
   with TFileStream.create(MD+"\Z\"+DateToStr(nLikeADate)+".lft", fmShareDenyNone) do
    try
    c:=trunc(Size/671);
    finally
    Free;
    end;
   with TFileStream.create(MD+"\Z\"+DateToStr(nLikeADate)+".lft",fmOpenRead) do
    try
    read(sms,671);
    for count := 1 to c-1 do
     begin
     read(sms,671);
     if {(sms.PLACE=Form1.ComboBox8.Text)and}(sms.Remont<>"Простой") then
      begin
      if (isNumber(sms.BRIGADE))and(sms.BRIGADE<>"") then
       begin
       k:=strtoint(sms.BRIGADE);
       inc(brig[k]);
       end
      else k:=0;

      if (copy(sms.Remont,3,1)=".")and(copy(sms.Remont,6,1)=".") then
      brigt[strtoint(sms.BRIGADE)]:=brigt[strtoint(sms.BRIGADE)]+0.5 else
       Begin
       uh:=copy(sms.Prostoy,1,2);
       um:=copy(sms.Prostoy,4,2);
       if uh="" then uh:="0";
       if um="" then um:="0";

     if isNumber(um)and isNumber(uh)then
      Begin
      o:=strtoint(um)/60;
      o:=o+strtoint(uh);
      brigt[k]:=brigt[k]+o;
      End;

     End;
    end;
   end;
  finally
  Free;
  end;
 end;
end;
f:=strtoint(Form1.ComboBox8.Text);
ShowMessage(
" Бригада 1: "+Format("%.4d",[brig[uch[f,1]]])+"/"+Format("%f", [brigt[uch[f,1]]])+#13#10+
" Бригада 2: "+Format("%.4d",[brig[uch[f,2]]])+"/"+Format("%f", [brigt[uch[f,2]]])+#13#10+
" Бригада 3: "+Format("%.4d",[brig[uch[f,3]]])+"/"+Format("%f", [brigt[uch[f,3]]])+#13#10+
" Бригада 4: "+Format("%.4d",[brig[uch[f,4]]])+"/"+Format("%f", [brigt[uch[f,4]]])+#13#10+
" Бригада 5: "+Format("%.4d",[brig[uch[f,5]]])+"/"+Format("%f", [brigt[uch[f,5]]])+#13#10+
" Бригада 6: "+Format("%.4d",[brig[uch[f,6]]])+"/"+Format("%f", [brigt[uch[f,6]]])+#13#10+
" Бригада 7: "+Format("%.4d",[brig[uch[f,7]]])+"/"+Format("%f", [brigt[uch[f,7]]])+#13#10+
" Бригада 8: "+Format("%.4d",[brig[uch[f,8]]])+"/"+Format("%f", [brigt[uch[f,8]]])+#13#10+
" Бригада 9: "+Format("%.4d",[brig[uch[f,9]]])+"/"+Format("%f", [brigt[uch[f,9]]])+#13#10+
"Бригада 10: "+Format("%.4d",[brig[uch[f,10]]])+"/"+Format("%f", [brigt[uch[f,10]]])+#13#10+
"Бригада 11: "+Format("%.4d",[brig[uch[f,11]]])+"/"+Format("%f", [brigt[uch[f,11]]])+#13#10+
"Бригада 12: "+Format("%.4d",[brig[uch[f,12]]])+"/"+Format("%f", [brigt[uch[f,12]]])+#13#10+
"Бригада 13: "+Format("%.4d",[brig[uch[f,13]]])+"/"+Format("%f", [brigt[uch[f,13]]]));
end;




Страницы: 1 2 вся ветка

Текущий архив: 2009.04.05;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.022 c
4-1207513836
Alex
2008-04-07 00:30
2009.04.05
Расстояние между иконками в Virtual ListView.


2-1234571534
Артёмка
2009-02-14 03:32
2009.04.05
Динамические меню.


15-1233817444
Slider007
2009-02-05 10:04
2009.04.05
С днем рождения ! 3 февраля 2009 вторник


1-1209106005
Игорь
2008-04-25 10:46
2009.04.05
Как в TWebBrowser поменять кодировку документа


15-1233290194
Slider007
2009-01-30 07:36
2009.04.05
С днем рождения ! 30 января 2009 пятница