Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #2  
Старый 14.05.2012, 07:17
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

наверно где нибудь запись за границы происходит,
я такие находить не умею, поэтому два способа:
- не динамический массив[0..99999] + count: integer
- контейнер, например tstringlist
двумерный массив из stringlista:
PHP код:
tMatrix = class(TStringList)
  private
    function 
toS(x, y: integer): string;
    function 
toI(s: string): Types.tPoint;
  public
    
constructor Create;
    function 
get(x, y: integer): tvirus;
    
procedure let(x, y: integer; v: tvirus);
  
end;

....

constructor tMatrix.Create;
begin
  inherited
;
  
Sorted := true;
end;

function 
tMatrix.get(x, y: integer): tvirus;
var 
i: integer;
begin
  
if Find(toS(x,y), i) then
    result 
:= (objects[i] as TVirus)
  else
    
result := nil
end
;

procedure tMatrix.let(x, y: integer; v: tvirus);
var 
s: string; i: integer;
begin
  s 
:= toS(x,y);
  if 
Find(s, i) then Delete(i);
  
AddObject(s, v);
end;

function 
tMatrix.toI(s: string): Types.tPoint;
begin
  result
.x := StrToInt(Copy(s, 1, pos(' ', s)));
  
result.y := StrToInt(Copy(s, pos(' ', s)+1, length(s)));
end;

function 
tMatrix.toS(x, y: integer): string;
begin
  result 
:= IntToStr(x)+' '+IntToStr(y);
end; 

Последний раз редактировалось Pyro, 14.05.2012 в 07:21.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:17.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2026