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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #16  
Старый 26.03.2013, 14:39
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Сейчас попробую. Но, AV возникает во время работы программы, когда я ее еще и не пытался даже закрывать...
Как я и думал, после добавления
Код:
Form1.FormDestroy(Sender: TObject);
ничего не изменилось AV так и возникает...
И ко всему прочему теперь AV возникает двахжы первый раз как и раньше. а второй раз после выхода из программы...

Последний раз редактировалось lostbananan, 26.03.2013 в 14:59.
Ответить с цитированием
  #17  
Старый 26.03.2013, 16:24
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Если ошибки появляются, значит это кому нибудь нужно. Народная мудрость.

Последний раз редактировалось Alegun, 26.03.2013 в 17:16.
Ответить с цитированием
  #18  
Старый 26.03.2013, 16:53
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Похоже на то, что мне нужно... Но разници в коде (моем и твоем) я не вижу...
Товой код AV не выдает, а мой - выдает. ПОЧЕМУ??
Разница, ты массивы как константы задал(
Код:
 LabCap: array [0..16] of string=
  ('0','1','2',
), я - нет...

Последний раз редактировалось lostbananan, 26.03.2013 в 16:55.
Ответить с цитированием
  #19  
Старый 26.03.2013, 16:55
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от lostbananan
...код AV не выдает, а мой - выдает. ПОЧЕМУ??
Значит не там ошибка вылазит, не там.

Насчёт констант, нет, слова ключевого нет, значит не костанта, просто начальное заполнение-присвоение выполняется.

Оффтоп:
З.Ы. Наверное с месяц, может и больше, сомн УКов славного форума грузится непонятно чем, ситуация напоминает анекдот про двух слепых и слона - один дерево с ногой перепутал, другой хобот за змею принял тоже самое - инфы вылито тонны, уверен, ответ на вопрос уже дан и он раскрыт полностью во всех топках наверное много раз. Давно бы уже увж. ТС в "Код на шару" наработки свои с ТЗ выложил бы, и глядишь ктонить их до ума бы их довёл. Что там такого секретного в сборке, что выдавливаются фрагменты как паста из тюбика, капляюшками, не пойму, сало та горілка все одно краще . Без обид.

Последний раз редактировалось Alegun, 26.03.2013 в 17:22.
Ответить с цитированием
  #20  
Старый 26.03.2013, 16:56
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

А где? И как определить где она вылазит??
Ответить с цитированием
  #21  
Старый 26.03.2013, 17:19
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

да ничего секретного нет...
код сейчас здесь покажу:
Код:
unit main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ExtCtrls, StdCtrls, IniFiles, Math, Printers, Grids;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Button1: TButton;
    Button2: TButton;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure LabelIn(i:integer);
    procedure GridIn(i:integer);
{    procedure DrawGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);}

  end;

var
  Form1: TForm1;
  pBar : Integer = 1;
  lab : TLabel;
  sPath: String[60];
  sIniFile: TIniFile;
  result: array [1..88] of boolean;
  agres, alcohol, boss        : integer;
  depression, debts, salary   : integer;
  information, leader, status : integer;
  drugs, dismissal            : integer;
  bars   : array[0..10] of TProgressBar;
  labels : array[0..10] of TLabel;
  ib : integer;
  TextLabel  : array[0..10] of TLabel;
  Grid  : array[0..10] of TDrawGrid;
  LabCap  : array[0..10] of string=
  ('Агресія', 'Алкоголь', 'Шеф', 'Депресія', 'Борги', 'Зарплата', 'Інформація', 'Лідер', 'Статус', 'Наркотики', 'Звільнення');
  LabLeft : array[0..10] of integer=
  (30, 130, 230, 345, 450, 540, 630, 758, 860, 950, 1060);
  GridH   : array[0..10] of integer;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
  pb  : TProgressBar;
begin
  pb := bars[RandomRange(0, 11)];
  if Assigned(pb) then
      pb.Position := pb.Position + 1;
  if pb.Position >= 100 then
    begin
      Inc(ib);
      if ib>=150 then
        begin
          Timer1.Enabled := false;
          Button1.Enabled := true;
        end;
    end;
end;

если надо, то могу показать этот же код и вдругом месте, но где?
Ответить с цитированием
  #22  
Старый 26.03.2013, 17:21
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

вторая часть кода:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
  rez : integer;
  captions : array[0..10] of string;
  i      : integer;
begin
  ib := 0;
  captions[0] := 'Аналізується "Агресія"'; captions[1] := 'Аналізується "Алкоголь"'; captions[2] := 'Аналізується "Шеф"';
  captions[3] := 'Аналізується "Депресія"'; captions[4] := 'Аналізується "Борги"'; captions[5] := 'Аналізується "Зарплата"';
  captions[6] := 'Аналізується "Інформація"'; captions[7] := 'Аналізується "Лідер"'; captions[8] := 'Аналізується "Статус"';
  captions[9] := 'Аналізується "Наркотики"'; captions[10] := 'Аналізується "Звільнення"';
  Timer1.Enabled := true;
  GetDir(0, sPath);
  sIniFile := TIniFile.Create(sPath +'\loin.ini');
  // Ініціалізація масиву результатів...
  rez := sIniFile.ReadInteger('Результати', 'Агресія', 0);  // Агресія входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Агресія 15', 0);
      if rez = 1 then
        agres := 15;
      rez := sIniFile.ReadInteger('Результати', 'Агресія 30', 0);
      if rez = 1 then
        agres := 30;
      rez := sIniFile.ReadInteger('Результати', 'Агресія 45', 0);
      if rez = 1 then
        agres := 45;
      rez := sIniFile.ReadInteger('Результати', 'Агресія 60', 0);
      if rez = 1 then
        agres := 60;
      rez := sIniFile.ReadInteger('Результати', 'Агресія 75', 0);
      if rez = 1 then
        agres := 75;
      rez := sIniFile.ReadInteger('Результати', 'Агресія 85', 0);
      if rez = 1 then
        agres := 85;
      rez := sIniFile.ReadInteger('Результати', 'Агресія 100', 0);
      if rez = 1 then
        agres := 100;
    end;
    rez := sIniFile.ReadInteger('Результати', 'Алкоголь', 0);  // Алкоголь входить до тесту
    if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Алкоголь 15', 0);
      if rez = 1 then
        alcohol := 15;
      rez := sIniFile.ReadInteger('Результати', 'Алкоголь 30', 0);
      if rez = 1 then
        alcohol := 30;
      rez := sIniFile.ReadInteger('Результати', 'Алкоголь 45', 0);
      if rez = 1 then
        alcohol := 45;
      rez := sIniFile.ReadInteger('Результати', 'Алкоголь 60', 0);
      if rez = 1 then
        alcohol := 60;
      rez := sIniFile.ReadInteger('Результати', 'Алкоголь 75', 0);
      if rez = 1 then
        alcohol := 75;
      rez := sIniFile.ReadInteger('Результати', 'Алкоголь 85', 0);
      if rez = 1 then
        alcohol := 85;
      rez := sIniFile.ReadInteger('Результати', 'Алкоголь 100', 0);
      if rez = 1 then
        alcohol := 100;
    end;
  rez := sIniFile.ReadInteger('Результати', 'Бос', 0);  // Бос входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Бос 15', 0);
      if rez = 1 then
        boss := 15;
      rez := sIniFile.ReadInteger('Результати', 'Бос 30', 0);
      if rez = 1 then
        boss := 30;
      rez := sIniFile.ReadInteger('Результати', 'Бос 45', 0);
      if rez = 1 then
        boss := 45;
      rez := sIniFile.ReadInteger('Результати', 'Бос 60', 0);
      if rez = 1 then
        boss := 60;
      rez := sIniFile.ReadInteger('Результати', 'Бос 75', 0);
      if rez = 1 then
        boss := 75;
      rez := sIniFile.ReadInteger('Результати', 'Бос 85', 0);
      if rez = 1 then
        boss := 85;
      rez := sIniFile.ReadInteger('Результати', 'Бос 100', 0);
      if rez = 1 then
        boss := 100;
    end;  // depression
  rez := sIniFile.ReadInteger('Результати', 'Депресія', 0);  // Депресія входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Депресія 15', 0);
      if rez = 1 then
        depression := 15;
      rez := sIniFile.ReadInteger('Результати', 'Депресія 30', 0);
      if rez = 1 then
        depression := 30;
      rez := sIniFile.ReadInteger('Результати', 'Депресія 45', 0);
      if rez = 1 then
        depression := 45;
      rez := sIniFile.ReadInteger('Результати', 'Депресія 60', 0);
      if rez = 1 then
        depression := 60;
      rez := sIniFile.ReadInteger('Результати', 'Депресія 75', 0);
      if rez = 1 then
        depression := 75;
      rez := sIniFile.ReadInteger('Результати', 'Депресія 85', 0);
      if rez = 1 then
        depression := 85;
      rez := sIniFile.ReadInteger('Результати', 'Депресія 100', 0);
      if rez = 1 then
        depression := 100;
    end;
  rez := sIniFile.ReadInteger('Результати', 'Борги', 0);  // Борги входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Борги 15', 0);
      if rez = 1 then
        debts := 15;
      rez := sIniFile.ReadInteger('Результати', 'Борги 30', 0);
      if rez = 1 then
        debts := 30;
      rez := sIniFile.ReadInteger('Результати', 'Борги 45', 0);
      if rez = 1 then
        debts := 45;
      rez := sIniFile.ReadInteger('Результати', 'Борги 60', 0);
      if rez = 1 then
        debts := 60;
      rez := sIniFile.ReadInteger('Результати', 'Борги 75', 0);
      if rez = 1 then
        debts := 75;
      rez := sIniFile.ReadInteger('Результати', 'Борги 85', 0);
      if rez = 1 then
        debts := 85;
      rez := sIniFile.ReadInteger('Результати', 'Борги 100', 0);
      if rez = 1 then
        debts := 100;
    end;
  rez := sIniFile.ReadInteger('Результати', 'Зарплата', 0);  // Зарплата входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Зарплата 15', 0);
      if rez = 1 then
        salary := 15;
      rez := sIniFile.ReadInteger('Результати', 'Зарплата 30', 0);
      if rez = 1 then
        salary := 30;
      rez := sIniFile.ReadInteger('Результати', 'Зарплата 45', 0);
      if rez = 1 then
        salary := 45;
      rez := sIniFile.ReadInteger('Результати', 'Зарплата 60', 0);
      if rez = 1 then
        salary := 60;
      rez := sIniFile.ReadInteger('Результати', 'Зарплата 75', 0);
      if rez = 1 then
        salary := 75;
      rez := sIniFile.ReadInteger('Результати', 'Зарплата 85', 0);
      if rez = 1 then
        salary := 85;
      rez := sIniFile.ReadInteger('Результати', 'Зарплата 100', 0);
      if rez = 1 then
        salary := 100;
    end;
  rez := sIniFile.ReadInteger('Результати', 'Інформація', 0);  // Інформація входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Інформація 15', 0);
      if rez = 1 then
        information := 15;
      rez := sIniFile.ReadInteger('Результати', 'Інформація 30', 0);
      if rez = 1 then
        information := 30;
      rez := sIniFile.ReadInteger('Результати', 'Інформація 45', 0);
      if rez = 1 then
        information := 45;
      rez := sIniFile.ReadInteger('Результати', 'Інформація 60', 0);
      if rez = 1 then
        information := 60;
      rez := sIniFile.ReadInteger('Результати', 'Інформація 75', 0);
      if rez = 1 then
        information := 75;
      rez := sIniFile.ReadInteger('Результати', 'Інформація 85', 0);
      if rez = 1 then
        information := 85;
      rez := sIniFile.ReadInteger('Результати', 'Інформація 100', 0);
      if rez = 1 then
        information := 100;
    end;
  rez := sIniFile.ReadInteger('Результати', 'Лідер', 0);  // Лідер входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Лідер 15', 0);
      if rez = 1 then
        leader := 15;
      rez := sIniFile.ReadInteger('Результати', 'Лідер 30', 0);
      if rez = 1 then
        leader := 30;
      rez := sIniFile.ReadInteger('Результати', 'Лідер 45', 0);
      if rez = 1 then
        leader := 45;
      rez := sIniFile.ReadInteger('Результати', 'Лідер 60', 0);
      if rez = 1 then
        leader := 60;
      rez := sIniFile.ReadInteger('Результати', 'Лідер 75', 0);
      if rez = 1 then
        leader := 75;
      rez := sIniFile.ReadInteger('Результати', 'Лідер 85', 0);
      if rez = 1 then
        leader := 85;
      rez := sIniFile.ReadInteger('Результати', 'Лідер 100', 0);
      if rez = 1 then
        leader := 100;
    end;
  rez := sIniFile.ReadInteger('Результати', 'Статус', 0);  // Статус входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Статус 15', 0);
      if rez = 1 then
        status := 15;
      rez := sIniFile.ReadInteger('Результати', 'Статус 30', 0);
      if rez = 1 then
        status := 30;
      rez := sIniFile.ReadInteger('Результати', 'Статус 45', 0);
      if rez = 1 then
        status := 45;
      rez := sIniFile.ReadInteger('Результати', 'Статус 60', 0);
      if rez = 1 then
        status := 60;
      rez := sIniFile.ReadInteger('Результати', 'Статус 75', 0);
      if rez = 1 then
        status := 75;
      rez := sIniFile.ReadInteger('Результати', 'Статус 85', 0);
      if rez = 1 then
        status := 85;
      rez := sIniFile.ReadInteger('Результати', 'Статус 100', 0);
      if rez = 1 then
        status := 100;
    end;
Ответить с цитированием
  #23  
Старый 26.03.2013, 17:22
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

третья часть кода:
Код:
  rez := sIniFile.ReadInteger('Результати', 'Наркотики', 0);  // Статус входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Наркотики 15', 0);
      if rez = 1 then
        drugs := 15;
      rez := sIniFile.ReadInteger('Результати', 'Наркотики 30', 0);
      if rez = 1 then
        drugs := 30;
      rez := sIniFile.ReadInteger('Результати', 'Наркотики 45', 0);
      if rez = 1 then
        drugs := 45;
      rez := sIniFile.ReadInteger('Результати', 'Наркотики 60', 0);
      if rez = 1 then
        drugs := 60;
      rez := sIniFile.ReadInteger('Результати', 'Наркотики 75', 0);
      if rez = 1 then
        drugs := 75;
      rez := sIniFile.ReadInteger('Результати', 'Наркотики 85', 0);
      if rez = 1 then
        drugs := 85;
      rez := sIniFile.ReadInteger('Результати', 'Наркотики 100', 0);
      if rez = 1 then
        drugs := 100;
    end;
  rez := sIniFile.ReadInteger('Результати', 'Звільнення', 0);  // Статус входить до тесту
  if rez = 1 then
    begin
      rez := sIniFile.ReadInteger('Результати', 'Звільнення 15', 0);
      if rez = 1 then
        dismissal := 15;
      rez := sIniFile.ReadInteger('Результати', 'Звільнення 30', 0);
      if rez = 1 then
        dismissal := 30;
      rez := sIniFile.ReadInteger('Результати', 'Звільнення 45', 0);
      if rez = 1 then
        dismissal := 45;
      rez := sIniFile.ReadInteger('Результати', 'Звільнення 60', 0);
      if rez = 1 then
        dismissal := 60;
      rez := sIniFile.ReadInteger('Результати', 'Звільнення 75', 0);
      if rez = 1 then
        dismissal := 75;
      rez := sIniFile.ReadInteger('Результати', 'Звільнення 85', 0);
      if rez = 1 then
        dismissal := 85;
      rez := sIniFile.ReadInteger('Результати', 'Звільнення 100', 0);
      if rez = 1 then
        dismissal := 100;
    end;
    for i:=0 to 10 do
    begin
      // прогресбари і мітки до них
      labels[i] := TLabel.Create(Form1);
      labels[i].Parent := Form1;
      labels[i].Caption := Captions[i];
      labels[i].Left := 55;
      labels[i].Width := 135;
      labels[i].Top := 8+40*i;
      bars[i] := TProgressBar.Create(Form1);
      bars[i].Parent := Form1;
      bars[i].Left := 22;
      bars[i].Width := 521;
      bars[i].Top := 22+40*i;
    end;
end;
Ответить с цитированием
  #24  
Старый 26.03.2013, 17:28
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Я имел ввиду архив прикрутить, а не портянки - ты думаешь есть большое желание это всё в новый проект вкладывать, отнюдь. Вот исправят ребята "на бумаге баги", ты положишь их в делфийскую обёртку свою, а оно бац, не работает - какаянить мелочь всю малину испортит. Архивчик в студию! (чуть пониже редактора сообщений есть пунктик управление вложениями, это оно)
Ответить с цитированием
  #25  
Старый 26.03.2013, 18:16
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Прикрепил архив (AnalizData.zip) /зархивировал всю папку с проектом)...
Вложения
Тип файла: zip AnalizData.zip (941.0 Кбайт, 2 просмотров)
Ответить с цитированием
  #26  
Старый 26.03.2013, 18:29
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Будешь смеяться, но оба твоих проекта у меня под ХР работают без ошибок, ползунки прогрессбаров добегают до конца и останавливаются, даже агрессия вылазит Глюков нет.Буду поглядеть дальше.
Ответить с цитированием
  #27  
Старый 26.03.2013, 19:05
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

мне, честно говоря не смешно, я по Севен и иногда ошибки нет, но в основном она есть, под ХР даную программу я не тестировал
Ответить с цитированием
  #28  
Старый 27.03.2013, 23:08
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от lostbananan
Прикрепил архив (AnalizData.zip) /зархивировал всю папку с проектом)...
Аналогично, но в архиве одни исходники, без мусора. Немножко модификат, пришлось ини-файл перевести на англійську мову, так надёжней. Проверил, под семёркой работает тож.

З.Ы.Так и не въехал в начальную загрузку, зачем такие сложности, всё равно переменные заполняются сразу на 100% (или остаются пустыми, так кстати и было вызывая AV), проще сделать нижеприведёнкой, намного код сократится (очень намного)
Код:
...

  // Ініціалізація масиву результатів...
  depression  := sIniFile.ReadInteger('Results', 'Depression', 0);
  debts       := sIniFile.ReadInteger('Results', 'Borgs', 0);
  salary      := sIniFile.ReadInteger('Results', 'Salary', 0);
  information := sIniFile.ReadInteger('Results', 'Information', 0);
  leader      := sIniFile.ReadInteger('Results', 'Leader', 0);
  status      := sIniFile.ReadInteger('Results', 'Status', 0);
  drugs       := sIniFile.ReadInteger('Results', 'Drugs', 0);
  dismissal   := sIniFile.ReadInteger('Results', 'Release', 0);

...
а в ini-файле прописать нужные значения, их можно менять и без тупого присвоения if then. Хотя, конечно, может чё и не допонимаю в такой хитрой задумке, мжбт.

З.ЫЗ.Ы. На всякий пожарный, перезалил.
Вложения
Тип файла: zip AnalizData1.zip (9.6 Кбайт, 6 просмотров)

Последний раз редактировалось Alegun, 30.03.2013 в 13:28.
Ответить с цитированием
  #29  
Старый 28.03.2013, 23:41
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Спасибо за совет, посмотрю обязательно, но уже завтра (устал я сегодня на работе 1С мучила меня а я ее ...
Ответить с цитированием
  #30  
Старый 29.03.2013, 08:49
lostbananan lostbananan вне форума
Начинающий
 
Регистрация: 05.01.2013
Сообщения: 119
Репутация: 10
По умолчанию

Скачал твой архив, в нем много киртинок, файол рнр и никаких иходников делфи. Или я чего-то неправильноделаю?
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter