Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADOQuery и if then else 
V
    Опции темы
Данкинг
Дата 24.11.2012, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Цитата(rus777 @  24.11.2012,  22:39 Найти цитируемый пост)
но проблема возникает именно тогда,когда в таблице пусто по DateTime 

Покажи конкретную строку, на которой вылезает ошибка.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
superVad
Дата 25.11.2012, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 4
Всего: 15



Цитата(rus777 @  24.11.2012,  20:14 Найти цитируемый пост)
Я уже как только не пробовал...мешает все тот же баг Борланда описанный во многих источниках.

А что за баг то?
PM MAIL   Вверх
rus777
Дата 25.11.2012, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2006
Где: Ufa

Репутация: нет
Всего: нет



Если запрос ничего не вернул, т.е. если к примеру таблица пуста, то получаем ошибку с невозможностью преобразовать дату... Если данные присутствую,тогда все работает...Проблема с построением кода
PM   Вверх
Данкинг
Дата 25.11.2012, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



А, ну а зачем в одном условии проверять сразу и число возвращённых записей, и это CT? Переделай так (я суть передам, а под свой код уже сам подгонишь):

Код

if (Query1.RecordCount>0) and (Query2.RecordCount>0)  then
 begin
  if   (ComboBox2.Text>(IntToStr(MinutesBetween(StrToDateTime(ct), Now)))) then
   begin
     ...
   end;

  end;



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
superVad
Дата 25.11.2012, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 4
Всего: 15



Цитата(Данкинг @  25.11.2012,  09:27 Найти цитируемый пост)
А, ну а зачем в одном условии проверять сразу и число возвращённых записей, и это CT? Переделай так (я суть передам, а под свой код уже сам подгонишь):

Условие там нормальное. Проблема в том, что ct берется из Query1 ДО проверки на количество вернувшихся записей.
PM MAIL   Вверх
rus777
Дата 25.11.2012, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2006
Где: Ufa

Репутация: нет
Всего: нет



Переделываю...Выглядит так:
Код

procedure ......................
var BytesWritten: DWORD;
  r,s: string;
  d: array[1..1500] of Char;
  BytesRead: DWORD;
  i: Integer;
  Result: string;
  ct: string;
begin
  s := 'at+clcc';
  s := s + #13 + #10;
  WriteFile(ComFile, s[1], Length(s), BytesWritten, nil); //…и посылаем их телефону
  Result := '';
if not ReadFile(ComFile, d, SizeOf(d), BytesRead, nil)
then
begin
      MessageDlg('Ошибка чтения!', mtError, [mbOK], 0);
        exit;
    end;

  s := '';
  for i := 1 to BytesRead do s:=s+d[I];
  Delete(s,1,pos('+7',s)-1);
  Delete(s,13,255);
  Result :=s;

if pos('+7',s) <>0
then
begin
  s := 'AT+CHUP';
  s := s + #13 + #10;
  WriteFile(ComFile, s[1], Length(s), BytesWritten, nil);

  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('select sot_driver from "driver.dbf"');
  Query2.SQL.Add('where sost=''1''');
  Query2.SQL.Add('and root=''1''');
  Query2.Open;
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select * from "client.dbf"');
  Query1.SQL.Add('where sot_client='''+Result+'''');
  Query1.SQL.Add('and cltime=(select MAX(cltime) from "client.dbf")');
  Query1.Open;
if (Query1.RecordCount>0) and (Query2.RecordCount>0) and
   ((ComboBox2.Text<(IntToStr(MinutesBetween(StrToDateTime(ct), Now)))))
then
begin
  Query3.Close;
  Query3.SQL.Clear;
  Query3.SQL.Text:='INSERT INTO ''client.dbf'' (sot_client,cltime,sost) VALUES (:Result , :tm, ''1'')';
  Query3.ParamByName('tm').Value:= DateTimeToStr(Now);
  Query3.ParamByName('Result').Value:= Result;
  Query3.ExecSQL;
  Memo1.Lines.Add('Принят--->' +Result+'--->'+DateTimeToStr(Now)); //Выводим ответ от телефона в Memo
  end;
if (Query1.RecordCount=0) and (Query2.RecordCount>0)
then
begin
  Query3.Close;
  Query3.SQL.Clear;
  Query3.SQL.Text:='INSERT INTO ''client.dbf'' (sot_client,cltime,sost) VALUES (:Result , :tm, ''1'')';
  Query3.ParamByName('tm').Value:= DateTimeToStr(Now);
  Query3.ParamByName('Result').Value:= Result;
  Query3.ExecSQL;
  Memo1.Lines.Add('Принят--->' +Result+'--->'+DateTimeToStr(Now)); //Выводим ответ от телефона в Memo
  end
  else
if Query2.RecordCount=0
then
begin
   Memo1.Lines.Add('***Блокирован  '+Result+' - нет водителей');
   end;
if (Query1.RecordCount>0) and (Query2.RecordCount>0) and                     ///Ошибка именно в данной конструкции  
   (ComboBox2.Text>(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now))))     
then                                                                                                                                                                              
begin                                                                                                                                                                          
   r:=(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)));                             
   Memo1.Lines.Add('***Блокирован  '+Query1.FieldByName('sot_client').AsVariant+' прошло '+r+' мин');              
   end;                                                                                                                                                                        
  end;
 end;
end.

Ошибка: "is not a valid date and time" в последней конструкции. Все остальное работает. Теперь то что не так? Если есть соображения подскажите пожалуйста...

Это сообщение отредактировал(а) rus777 - 25.11.2012, 12:10
PM   Вверх
Данкинг
Дата 25.11.2012, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Query1 и Query2 открываются на строках 39 и 45, а ошибка вылезает на строке 75 при сравнении числа выбранных записей в этих запросах? Ничего не путаешь?

Цитата(superVad @  25.11.2012,  12:51 Найти цитируемый пост)
Проблема в том, что ct берется из Query1 ДО 

И чем же тогда условие нормальное? smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
rus777
Дата 25.11.2012, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2006
Где: Ufa

Репутация: нет
Всего: нет



Снова подправил:
Код

procedure .....................
var BytesWritten: DWORD;
  r,s: string;
  d: array[1..1500] of Char;
  BytesRead: DWORD;
  i: Integer;
  Result: string;
  ct: string;
begin
  s := 'at+clcc';
  s := s + #13 + #10;
  WriteFile(ComFile, s[1], Length(s), BytesWritten, nil); //…и посылаем их телефону
  Result := '';
if not ReadFile(ComFile, d, SizeOf(d), BytesRead, nil)
then
begin
      MessageDlg('Ошибка чтения!', mtError, [mbOK], 0);
        exit;
    end;

  s := '';
  for i := 1 to BytesRead do s:=s+d[I];
  Delete(s,1,pos('+7',s)-1);
  Delete(s,13,255);
  Result :=s;

if pos('+7',s) <>0
then
begin
  s := 'AT+CHUP';
  s := s + #13 + #10;
  WriteFile(ComFile, s[1], Length(s), BytesWritten, nil);

  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('select sot_driver from "driver.dbf"');
  Query2.SQL.Add('where sost=''1''');
  Query2.SQL.Add('and root=''1''');
  Query2.Open;
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select * from "client.dbf"');
  Query1.SQL.Add('where sot_client='''+Result+'''');
  Query1.SQL.Add('and cltime=(select MAX(cltime) from "client.dbf")');
  Query1.Open;
if ((Query1.RecordCount>0) and (Query2.RecordCount>0)) and
   (ComboBox2.Text<(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)))) //срабатывает эта конструкция,
then     //когда ComboBox(постоянно 15)< MinutesBetween (достигает 2 )  сразу срабатывает                            
begin
r:=(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)));
  Query3.Close;
  Query3.SQL.Clear;
  Query3.SQL.Text:='INSERT INTO ''client.dbf'' (sot_client,cltime,sost) VALUES (:Result , :tm, ''1'')';
  Query3.ParamByName('tm').Value:= DateTimeToStr(Now);
  Query3.ParamByName('Result').Value:= Result;
  Query3.ExecSQL;
  Memo1.Lines.Add('Принят--->' +Result+'--->'+DateTimeToStr(Now)+'-'+r); //Выводим ответ от телефона в Memo
  end;
if (Query1.RecordCount=0) and (Query2.RecordCount>0)
then
begin
  Query3.Close;
  Query3.SQL.Clear;
  Query3.SQL.Text:='INSERT INTO ''client.dbf'' (sot_client,cltime,sost) VALUES (:Result , :tm, ''1'')';
  Query3.ParamByName('tm').Value:= DateTimeToStr(Now);
  Query3.ParamByName('Result').Value:= Result;
  Query3.ExecSQL;
  Memo1.Lines.Add('Принят-->' +Result+'-->'+DateTimeToStr(Now)); //Выводим ответ от телефона в Memo
  end
  else
if (Query1.RecordCount>0) and (Query2.RecordCount>0) and
   (ComboBox2.Text>(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now))))
then
begin
   r:=(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)));
   Memo1.Lines.Add('***Блокирован  '+Query1.FieldByName('sot_client').AsVariant+' прошло '+r+' мин');
end;
if Query2.RecordCount=0
then
begin
   Memo1.Lines.Add('***Блокирован  '+Result+' - нет водителей');
   end;
  end;
 end;
end.

Некорректно считает разницу. Первая конструкция не должна срабатывать пока MinutesBetween не станет больше 15...До 2 минут срабатывает третья(блокирует),но по достижении разницы в две минуты срабатывает первая....

Это сообщение отредактировал(а) rus777 - 25.11.2012, 13:07
PM   Вверх
Данкинг
Дата 25.11.2012, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Ты там пытаешься текст с текстом сравнить (if текст1 < текст2).


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
rus777
Дата 25.11.2012, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2006
Где: Ufa

Репутация: нет
Всего: нет



Да,но так работало и без проблем. Как все перетряхнул,начались проблемы...Именно принцип сравнения я не менял
Имеешь ввиду сделать так:
Код

(StrToInt(ComboBox2.Text)>(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)))
???


Это сообщение отредактировал(а) rus777 - 25.11.2012, 13:49
PM   Вверх
superVad
Дата 25.11.2012, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 4
Всего: 15



Цитата(Данкинг @  25.11.2012,  11:34 Найти цитируемый пост)
И чем же тогда условие нормальное?

Условие действительно должно отработать без ошибок. Про до - я погорячился, там же поверка.
PM MAIL   Вверх
Данкинг
Дата 25.11.2012, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Да, т.к. сравнивать можно только числа, разумеется.

Добавлено через 2 минуты
Цитата(superVad @  25.11.2012,  15:45 Найти цитируемый пост)
Условие действительно должно отработать без ошибок. 

Ну, видимо, глюк драйвера БД при попытке "ничто" сконвертить в строку.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
superVad
Дата 25.11.2012, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 4
Всего: 15



Цитата(Данкинг @  25.11.2012,  13:45 Найти цитируемый пост)
Ну, видимо, глюк драйвера БД при попытке "ничто" сконвертить в строку.

Вроде как, если какое то из двух первых сфейлит то до третьего не дойдет же.
PM MAIL   Вверх
rus777
Дата 25.11.2012, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2006
Где: Ufa

Репутация: нет
Всего: нет



Ребята,вот в таком виде отрабатывает все условия....только при таком раскладе возникает другая ситуация:
после того как по таймеру выполнится данный код несколько раз, перестает отрабатывать...и в memo, и в табличке ничего не меняется,хотя на входящий звонок реакция есть-звонок сбрасывается...Да...и еще приложение в диспетчере задач потребляемая память с каждым выполнением данного кода увеличевается smile 
Код

procedure TForm1.TTimer1(Sender: TObject);
var BytesWritten: DWORD;
  r,s: string;
  d: array[1..1500] of Char;
  BytesRead: DWORD;
  i: Integer;
  Result: string;
begin
  s := 'at+clcc';
  s := s + #13 + #10;
  WriteFile(ComFile, s[1], Length(s), BytesWritten, nil); //…и посылаем их телефону
  Result := '';
if not ReadFile(ComFile, d, SizeOf(d), BytesRead, nil)
then
begin
      MessageDlg('Ошибка чтения!', mtError, [mbOK], 0);
        exit;
    end;

  s := '';
  for i := 1 to BytesRead do s:=s+d[I];
  Delete(s,1,pos('+7',s)-1);
  Delete(s,13,255);
  Result :=s;

if pos('+7',s) <>0
then
begin
  s := 'AT+CHUP';
  s := s + #13 + #10;
  WriteFile(ComFile, s[1], Length(s), BytesWritten, nil);
  timer1.Enabled:=false;
  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('select sot_driver from "driver.dbf"');
  Query2.SQL.Add('where sost=''1''');
  Query2.SQL.Add('and root=''1''');
  Query2.Open;
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select * from "client.dbf"');
  Query1.SQL.Add('where sot_client='''+Result+'''');
  Query1.SQL.Add('and cltime=(select MAX(cltime) from "client.dbf")');
  Query1.Open;
if (Query1.RecordCount>0) and (Query2.RecordCount>0) and
   (StrToInt(ComboBox2.Text)<(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)))
then
begin
r:=(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)));
  Query3.Close;
  Query3.SQL.Clear;
  Query3.SQL.Text:='INSERT INTO ''client.dbf'' (sot_client,cltime,sost) VALUES (:Result , :tm, ''1'')';
  Query3.ParamByName('tm').Value:= DateTimeToStr(Now);
  Query3.ParamByName('Result').Value:= Result;
  Query3.ExecSQL;
  Memo1.Lines.Add('Принят--->' +Result+'--->'+DateTimeToStr(Now)+'-'+r); //Выводим ответ от телефона в Memo
  end;
if (Query1.RecordCount=0) and (Query2.RecordCount>0)
then
begin
  Query3.Close;
  Query3.SQL.Clear;
  Query3.SQL.Text:='INSERT INTO ''client.dbf'' (sot_client,cltime,sost) VALUES (:Result , :tm, ''1'')';
  Query3.ParamByName('tm').Value:= DateTimeToStr(Now);
  Query3.ParamByName('Result').Value:= Result;
  Query3.ExecSQL;
  Memo1.Lines.Add('Принят-->' +Result+'-->'+DateTimeToStr(Now)); //Выводим ответ от телефона в Memo
  end
  else
if (Query1.RecordCount>0) and (Query2.RecordCount>0) and
   (StrToInt(ComboBox2.Text)>(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)))
then
begin
   r:=(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)));
   Memo1.Lines.Add('***Блокирован  '+Query1.FieldByName('sot_client').AsVariant+' прошло '+r+' мин');
end;
if Query2.RecordCount=0
then
begin
   Memo1.Lines.Add('***Блокирован  '+Result+' - нет водителей');
   end;
  end;
  PurgeComm(ComFile, PURGE_RXCLEAR or PURGE_TXCLEAR);
  timer1.Enabled:=true;
 end;

Память жрет...что-то опять не так...3-4 звонка и код перестает работать.......Странно все работало и пропускало любое количество  smile 

Это сообщение отредактировал(а) rus777 - 25.11.2012, 16:07
PM   Вверх
rus777
Дата 25.11.2012, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 13.12.2006
Где: Ufa

Репутация: нет
Всего: нет



Разобрался, все работает
Код

procedure TForm1.TTimer1(Sender: TObject);
var BytesWritten: DWORD;
  r,s: string;
  d: array[1..1500] of Char;
  BytesRead: DWORD;
  i: Integer;
  Result: string;
begin
  s := 'at+clcc';
  s := s + #13 + #10;
  WriteFile(ComFile, s[1], Length(s), BytesWritten, nil); //…и посылаем их телефону
  Result := '';
if not ReadFile(ComFile, d, SizeOf(d), BytesRead, nil)
then
begin
      MessageDlg('Ошибка чтения!', mtError, [mbOK], 0);
        exit;
    end;

  s := '';
  for i := 1 to BytesRead do s:=s+d[I];
  Delete(s,1,pos('+7',s)-1);
  Delete(s,13,255);
  Result :=s;

if pos('+7',s) <>0
then
begin
  s := 'AT+CHUP';
  s := s + #13 + #10;
  WriteFile(ComFile, s[1], Length(s), BytesWritten, nil);
  //timer1.Enabled:=false;
  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Add('select sot_driver from "driver.dbf"');
  Query2.SQL.Add('where sost=''1''');
  Query2.SQL.Add('and root=''1''');
  Query2.Open;
    Query1.Close;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from "client.dbf"');
    Query1.SQL.Add('where sot_client='''+Result+'''');
    Query1.SQL.Add('order by cltime desc');
    Query1.Open;
if (Query1.RecordCount>0) and (Query2.RecordCount>0) and
   (StrToInt(ComboBox2.Text)<(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)))
then
begin
r:=(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)));
  Query3.Close;
  Query3.SQL.Clear;
  Query3.SQL.Text:='INSERT INTO ''client.dbf'' (sot_client,cltime,sost) VALUES (:Result , :tm, ''1'')';
  Query3.ParamByName('tm').Value:= DateTimeToStr(Now);
  Query3.ParamByName('Result').Value:= Result;
  Query3.ExecSQL;
  Memo1.Lines.Add('Принят--->' +Result+'--->'+DateTimeToStr(Now)+'-'+r); //Выводим ответ от телефона в Memo
  end;
if (Query1.RecordCount=0) and (Query2.RecordCount>0)
then
begin
  Query3.Close;
  Query3.SQL.Clear;
  Query3.SQL.Text:='INSERT INTO ''client.dbf'' (sot_client,cltime,sost) VALUES (:Result , :tm, ''1'')';
  Query3.ParamByName('tm').Value:= DateTimeToStr(Now);
  Query3.ParamByName('Result').Value:= Result;
  Query3.ExecSQL;
  Memo1.Lines.Add('Принят-->' +Result+'-->'+DateTimeToStr(Now)); //Выводим ответ от телефона в Memo
  end
  else
if (Query1.RecordCount>0) and (Query2.RecordCount>0) and
   (StrToInt(ComboBox2.Text)>(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)))
then
begin
   r:=(IntToStr(MinutesBetween(StrToDateTime(Query1.FieldByName('cltime').AsString), Now)));
   Memo1.Lines.Add('***Блокирован  '+Query1.FieldByName('sot_client').AsVariant+' прошло '+r+' мин');
end;
if Query2.RecordCount=0
then
begin
   Memo1.Lines.Add('***Блокирован  '+Result+' - нет водителей');
   end;
  end;
  if not PurgeComm(ComFile, PURGE_TXCLEAR or PURGE_RXCLEAR) then
 raise Exception.Create('Error purging port');
 end;

 smile  Всем большое спасибо за участие!
PM   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.