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

Вниз

Коварный With   Найти похожие ветки 

 
Palladin ©   (2006-08-28 16:16) [0]

позорище... так для прикола :)

With TMASSqlSource.Create(gl_theCon),GridKidsInTable.DataController Do
 Try
  n:=AppendRecord;
  Select("select date_birth, gender from People where id="+IntToStr(nIDHuman));
  Values[n,KIColLastName.Index]:=strLastName;
  Values[n,KIColFirstName.Index]:=strFirstName;
  Values[n,KIColMidName.Index]:=strMidName;
  Values[n,KIColBirthDate.Index]:=cmnDate(DatFld[0,1]);
  Values[n,KIColGender.Index]:=cmnGenderToStr(IntFld[0,2]);
  Values[n,KIColIsNew.Index]:="";
  Values[n,KIColIDHuman.Index]:=nIDHuman;
 Finally
  Free;
 End;


пол дня угробил на поиск ошибки... чудовище... :)


 
jack128 ©   (2006-08-28 16:20) [1]

Palladin ©   (28.08.06 16:16)
позорище...

Угу ;-) Я сразу увидел.  Хотя наверно только потому что ТОЧНО знал, что здесь есть ошибка.


 
guav ©   (2006-08-28 16:22) [2]

:)
А я тут пытаюсь С++ учить... не пониммаю за что его ругают.
Там такая ошибка впринципе невозможна, т.к. with нет и finally с free неявный


 
Александр Иванов ©   (2006-08-28 16:23) [3]

У меня как-то в конструкции:

with TForm.Create(nil) do
begin
...
if ShowModal = mrOk then
...
end;


происходило обращение к ShowModal формы в методе которой мы находимся.
Стараюсь этот оператор не использовать вообще.


 
TUser ©   (2006-08-28 16:23) [4]

> Там такая ошибка впринципе невозможна, т.к. finally с free неявный

AFAIK ты с шарпом перепутал.

Зы. Я не сишник :)


 
jack128 ©   (2006-08-28 16:24) [5]

guav ©   (28.08.06 16:22) [2]
Там такая ошибка впринципе невозможна,


сколько раз на "if (a=b)"  напарывался?  Я из-за этого руть монитор выкинул


 
guav ©   (2006-08-28 16:27) [6]

> сколько раз на "if (a=b)"  напарывался?  

Пока один, (в цикле while) но у меня ещё всё впереди ;-)
Видел рекомендацию сравнивать с константой так INVALID_HANDLE_VALUE == hFile.


 
guav ©   (2006-08-28 16:28) [7]

> AFAIK ты с шарпом перепутал.

Нет. В шарпе вроде finally есть, как и в Managed C++ .

Я не сишник - пока ещё.


 
jack128 ©   (2006-08-28 16:38) [8]

guav ©   (28.08.06 16:28) [7]
в обычном (не управляемом) C++ в реализации MS тоже есть.  Но это не стандарт.


 
guav ©   (2006-08-28 16:45) [9]

[8] jack128 ©   (28.08.06 16:38)


Ну, в реализации MS виндовый SEH реализован в более полной мере чем в Delphi, это понятно.
Меня сейчас больше интересует стандартный umanaged C++. Впрочем, заканчиваю оффтопик.


 
Desdechado ©   (2006-08-28 19:10) [10]

> With TMASSqlSource.Create(gl_theCon),GridKidsInTable.DataController Do
Никогда не использую with с более, чем одним объектом сразу. Выбираю только один (самый длинно названный или часто используемый в блоке), а остальные явно.


 
Ketmar ©   (2006-08-28 20:58) [11]

> [2] guav ©   (28.08.06 16:22)
разруха -- она в головах.


 
guav ©   (2006-08-28 21:06) [12]

> [11] Ketmar ©   (28.08.06 20:58)

не понял.


 
default ©   (2006-08-28 21:14) [13]

guav ©   (28.08.06 16:27) [6]
"Иногда встречается С-программист, пишущий что-то типа if((strlen(x)==iLen)), помещая константное выражение слева от ==. Это очень хороший признак. Это значит, что он уже столько раз попадался на путанице между = и ==, что выработал в себе привычку, исключающую это. " Джоэль Спольски :)
guav ©   (28.08.06 16:22) [2]
а я вот C# изучаю
кстати в нём проблема (a=b) стоит не так остро ибо результат обязан быть либо true либо false
то есть
int a=3, b=5;
if (a=b) будет ошибка компиляции


 
default ©   (2006-08-28 21:20) [14]

"то есть
int a=3, b=5;
if (a=b) будет ошибка компиляции"
ибо результат a=b будет 5, а это не true и не false и к ним не приводится ни неявно ни явно по правилам языка


 
guav ©   (2006-08-28 21:25) [15]

> результат обязан быть либо true либо false

Ух ты, как в Delphi для Boolean :)
А что тогда с виндоузными FALSE, TRUE ?


 
Ketmar ©   (2006-08-28 21:30) [16]

> [12] guav ©   (28.08.06 21:06)
а что тут неясного? молотком можно забить гвоздь в стену, а можно проломить голову соседу дяде Абраму.


 
DiamondShark ©   (2006-08-28 21:48) [17]


> А я тут пытаюсь С++ учить... не пониммаю за что его ругают.


> Пока один, (в цикле while) но у меня ещё всё впереди ;-)

И до сих пор не понял, за что ругают?

Тогда, записывай список:

0. За возведение побочного эффекта в норму.
Операция присваивания должна присваивать, а не возвращать значение.

1. За непродуманый выбор символики.
Логический предикат "равно" имеет устоявшийся традиционно символ "=", известный людям с первого класса школы. Оператор присваивания специфичен именно для императивных языков. Логично оставить для сравнения традиционный символ, а для новой операции использовать новый символ.

...ту би континуе...


 
Ketmar ©   (2006-08-28 21:58) [18]

> [17] DiamondShark ©   (28.08.06 21:48)
не надо. баян. %-)


 
DiamondShark ©   (2006-08-28 22:12) [19]

А может меня это беспокоит. Хочу об этом погойворить.


 
guav ©   (2006-08-28 22:17) [20]

> не надо. баян. %-)

"with - источник ошибок" таки тоже баян.
И что, после этого людям высказаться на эти темы нельзя ?


 
Ketmar ©   (2006-08-28 22:21) [21]

> [19] DiamondShark ©   (28.08.06 22:12)
Вы-таки боитесь погромов?

> [20] guav ©   (28.08.06 22:17)
АПВС?

зыж Дим, ну не провоцируй. меня же забанят! %-)


 
DiamondShark ©   (2006-08-28 22:22) [22]


> И что, после этого людям высказаться на эти темы нельзя
> ?

Льзя.
Обычно получается славный холиворчег или душевная философия ;)

И то и другое я очень люблю (не ахт.).


 
DiamondShark ©   (2006-08-28 22:24) [23]


> меня же забанят

"Сядем усе!" (ц)


 
default ©   (2006-08-28 22:28) [24]

guav ©   (28.08.06 21:25) [15]
а что с ними должно быть не так?


 
Alx2 ©   (2006-08-28 22:34) [25]

>DiamondShark ©   (28.08.06 21:48)

Перечисленное, кажется, не особо критично.
Мне, когда начинал, сильно нехватало вложенных функций. Как правило, чем "алгоритмичнее" задачка, тем больше потребность в функциональной подразбивке. Потом, правда, нашел сему замену вложенными классами. Но дискомфорт имеет место до сих пор.


 
default ©   (2006-08-28 22:41) [26]

DiamondShark ©   (28.08.06 21:48) [17]
тут двояко
например, мы можем спросить "a=b?" в данном случае производится сравнение
а можем написать, "положим a=5" понимая это как то, что в дальнейшем под буквой "a" будем иметь цифру "5" это можно считать присвоением, но никак не сравнением
поэтому спорно для чего "=" лучше - для присвоения или проверки на равенство


 
DiamondShark ©   (2006-08-28 22:46) [27]


> Перечисленное, кажется, не особо критично.

Так это только по одному эпизоду: "наткнулся в while".


> Мне, когда начинал, сильно нехватало вложенных функций

А как мне их сейчас не хватает!
Пишу на C#, тихо ругаюсь.
Я за паскалевское прошлое привык сверху-вниз писать, сначала крупными блоками, потом постепенно детализируя. Так замечательно это на вложенные функции ложилось...


 
Ketmar ©   (2006-08-28 22:51) [28]

> [26] default ©   (28.08.06 22:41)
а ни для чего. так и надо писать: "положим ..."


 
default ©   (2006-08-28 23:09) [29]

DiamondShark ©   (28.08.06 22:46) [27]
сорри за оффтопик
говорите, что пишите на C#
говорится, что .NET код может быть переносим между ОС
это как? ведь, допустим, программируя для ОС Windows я могу оперировать понятием "окно"(представленного некоторым типом), а ведь в другой ОС может быть всё совершенно по-другому, там и понятия "окно" то может и не быть или быть, но другим по смыслу
как вообще возможно писать операционно-независимый код в общем случае?
по-моему это невозможно
даже если "понятия" в разных ОС совпадают или близки, можно писать только один код для этих ОС
но появится другая с другими "понятиями" и код нужно будет переписывать
хотя обещают, что мол написанный вами код будет работать и на другой ОС для которой напишут свою CLR
объясните


 
Карелин Артем ©   (2006-08-28 23:20) [30]


> default ©   (28.08.06 23:09) [29]

Жаву вспомни. Там тоже кросс-платформенность


 
default ©   (2006-08-28 23:22) [31]

Карелин Артем ©   (28.08.06 23:20) [30]
а как это работает?
не понимаю


 
Marser ©   (2006-08-28 23:23) [32]

> 1. За непродуманый выбор символики.
> Логический предикат "равно" имеет устоявшийся традиционно
> символ "=", известный людям с первого класса школы. Оператор
> присваивания специфичен именно для императивных языков.
> Логично оставить для сравнения традиционный символ, а для
> новой операции использовать новый символ.

Согласен.


 
guav ©   (2006-08-28 23:30) [33]

> guav ©   (28.08.06 21:25) [15]
> а что с ними должно быть не так?

Они вроде как не bool а целочисленны, д.б. несовместимы для if, fo,r while, do  и ? :, при этом проверка if (ApiCall() == TRUE) тоже опасна.

> Я за паскалевское прошлое привык сверху-вниз писать, сначала
> крупными блоками, потом постепенно детализируя. Так замечательно
> это на вложенные функции ложилось...

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

В продолжение оффтопика :
Не понравилось мне как структуры инициализируются без указания имён полей. подумав, решил что зря и в С и в Паскале не указываются имена формальных параметров, типа  CreateCompatibleBitmap(DC: hRefDC, Width: 0, Height: 0);


 
isasa ©   (2006-08-28 23:34) [34]

default ©   (28.08.06 23:22) [31]
а как это работает?


Интерпретатор, знаешь? :)


 
Ketmar ©   (2006-08-28 23:36) [35]

> [29] default ©   (28.08.06 23:09)
оно переносимо между ОС WinXP на одной машине и ОС WinXP на другой машине.


 
default ©   (2006-08-28 23:41) [36]

Ketmar ©   (28.08.06 23:36) [35]
имеешь ввиду процессорную независимость?
я говорю о независимости от ОС
isasa ©   (28.08.06 23:34) [34]
можно подробнее


 
isasa ©   (2006-08-28 23:42) [37]

Ketmar ©   (28.08.06 23:36) [35]
оно переносимо между ОС WinXP на одной машине и ОС WinXP на другой машине.

:)
Заявлено еще и "кроссязыковость". Ну, по крайней мере, между MS C# и MS VB


 
Vendict ©   (2006-08-28 23:43) [38]

default ©   (28.08.06 23:41) [36]
имеешь ввиду процессорную независимость?
я говорю о независимости от ОС

тяжело... шуток человек не понимает...


 
isasa ©   (2006-08-28 23:44) [39]

default ©   (28.08.06 23:41) [36]
можно подробнее


:)
Ну ей Богу, вот я уже книги точно писать не умею. :)
Там много наворочено.


 
Ketmar ©   (2006-08-28 23:45) [40]

> [36] default ©   (28.08.06 23:41)
имею в виду, что полноценной реализации CLR нет нигде, кроме как на винде. поэтому оно переносимо только с виндов на винды. и то не ниже 2k, по-моему. %-))


 
Суслик ©   (2006-08-28 23:47) [41]

что плохого присвоить результат create коротенькой переменной и потом его юзать? зато дебагер и codeinsite не глючат.


 
default ©   (2006-08-28 23:47) [42]

isasa ©   (28.08.06 23:44) [39]
так что есть гарантия, что код написанный для группы ОС не придётся переписывать для ОС которая появится лет эдак через 7?


 
default ©   (2006-08-28 23:51) [43]

Ketmar ©   (28.08.06 23:45) [40]
"Важно отметить, что .Net Framework не ограничена платформой Windows и написанные для этой платформы программы могут быть в будущем перенесены на другие платформы"
значит это всё полное фуфло? точнее есть лишь вероятность небычайно близкая к нуля подобного свершится


 
isasa ©   (2006-08-28 23:52) [44]

default ©   (28.08.06 23:47) [42]
так что есть гарантия,

Тольео от MS, и то, очень вялая. Причем они не гарантируют, что через 7 лет они не сделают с .NET то, что сейчас делают с COM/COM+


 
jack128 ©   (2006-08-28 23:55) [45]

default ©   (28.08.06 23:47) [42]
так что есть гарантия, что код написанный для группы ОС не придётся переписывать для ОС которая появится лет эдак через 7?

смеёшся?? Нету, конечно такой гарантии. Через 7 лет MS вместо .NET изобретёт какой нить .DA и всё по новой..  Ну слава богу, нам за это деньги платят.


 
Ketmar ©   (2006-08-28 23:57) [46]

> [42] default ©   (28.08.06 23:47)
теоретически -- да. практически... не знаю. вообще-то microsoft тратит титанические усилия на поддержание совместимости, но что им долбанёт в голову через год, например, -- тайна.


 
Ketmar ©   (2006-08-28 23:58) [47]

> [43] default ©   (28.08.06 23:51)
"другие платформы" в данном случае -- это
а) маркетинговый ход "в пику" "солнечным";
б) текст должен звучать так: "другие платформы Windows". %-)


 
isasa ©   (2006-08-29 00:04) [48]

А вот такой взгляд от MS.

Любому современному программисту, который желает идти в ногу с последними
веяниями, каждые несколько лет приходится переучиваться. Языки (C++, Visual
Basic, Java), библиотеки (MFC, ATL, STL), архитектуры (COM, CORBA), кото-
рые стали вехами в развитии программирования за последние годы, постепенно
уходят в тень лучших или по крайней мере более молодых программных техноло-
гий. Вне зависимости от того, нравится это программистам или нет, этот процесс
неизбежен. Платформа .NET компании Microsoft — это следующая волна корен-
ных изменений, которая идет к нам из Редмонда.

Троелсен. Э.
Т70 С# и платформа .NET. Библиотека программиста. — СПб.: Питер, 2004.


 
Ketmar ©   (2006-08-29 00:11) [49]

> [48] isasa ©   (29.08.06 00:04)
я бы написал -- "которая прёт на нас из Р.". %-) ничего супернового в .NET не сделали. лет 20 назад Вирт создал Оберон. это было просто, ясно и красиво. потом на базе Оберона сделали Juice, при виде которого Java даже нервно курить бы не смогла -- сигарету от тремора не удержала б. но это были "нераспиареные" проекты. через несколько лет оттуда взяли идеи, основательно их попортили и выдали за "суперинновацию". скучно. пиар.


 
default ©   (2006-08-29 00:16) [50]

а вот, например, код на Java на какие ОС распространяется?
а то ссылки, что может работать на системах отличных от WIndows ну у всех
Рихтер, Троелсен, Шилдт, Мохика
guav ©   (28.08.06 23:30) [33]
я эту тему пока не рассматривал, в другом копаюсь, сборщик мусора - просто сказка!


 
default ©   (2006-08-29 00:19) [51]

isasa ©   (29.08.06 00:04) [48]
сколько же я ругался на этого Троелсена когда читал главы по основам...
читать надо между строк и то опасно без проверок


 
Loginov Dmitry ©   (2006-08-29 03:04) [52]

> Desdechado ©   (28.08.06 19:10) [10]
> > With TMASSqlSource.Create(gl_theCon),GridKidsInTable.DataController
> Do
> Никогда не использую with с более, чем одним объектом сразу.
> Выбираю только один (самый длинно названный или часто используемый
> в блоке), а остальные явно.


Я максимум 2 использую. Примерно так:

with DataModule, DataModule.FieldByName("FieldName1") do
begin
 while not Eof do
 begin
   FieldByName("FieldName2").Value := Value;
   Next;
 end;
end;

Экономия кода (выраженная в кол-ве строк и их длине) получается весьма значительной. А на Free в with натыкался уже неоднократно, и каждый раз долго ищешь, почему это не работает. Считаю, что оператор with весьма надежный, если им пользоваться правильно. Глюков как таковых ни разу не встречал.


 
guav ©   (2006-08-29 03:06) [53]

> Считаю, что оператор with весьма надежный, если им пользоваться
> правильно.

А разве оператор бывает надёным или ненадёжным ?


 
SergP ©   (2006-08-29 03:44) [54]

> [52] Loginov Dmitry ©   (29.08.06 03:04)
> > Desdechado ©   (28.08.06 19:10) [10]
> > > With TMASSqlSource.Create(gl_theCon),GridKidsInTable.DataController
>
> > Do
> > Никогда не использую with с более, чем одним объектом
> сразу.
> > Выбираю только один (самый длинно названный или часто
> используемый
> > в блоке), а остальные явно.
>
>
> Я максимум 2 использую.


Мне вообще очень нравится with. Текст исходников получается более простым и понятным. Но более одного объекта в with я никогда не использовал.

Извиняюсь за ламерство, но вот всегда хотел спросить: Как использовать with с более чем одним объектом? Просто такое почему-то в голове не особо укладывается...

например усли у обоих объектов имеется одноименный метод. и я напишу его в блоке with a,b do ....
Метод которого из объектов будет выполнен?


 
lookin ©   (2006-08-29 04:03) [55]

С чем я стал пытаться бороться уже неделю назад...


 
default ©   (2006-08-29 04:04) [56]

SergP ©   (29.08.06 03:44) [54]
используется первый объект(или запись) начиная с конца в котором встретился вызываемый член
именно поэтому в сабже Free вызывается только для второго объекта в with
справка, как обычно, рулит


 
SergP ©   (2006-08-29 04:19) [57]

> [56] default ©   (29.08.06 04:04)


Я так понял, что если писать:

with TClass1.create, TClass2.create do ...

то сделать free обоим объектам не получится, только последнему?


 
default ©   (2006-08-29 05:03) [58]

SergP ©   (29.08.06 04:19) [57]
ага
но код в сабже, полагаю, можно переписать так
With GridKidsInTable.DataController, TMASSqlSource.Create(gl_theCon) Do
Try
 n:=AppendRecord;
 Select("select date_birth, gender from People where id="+IntToStr(nIDHuman));
 Values[n,KIColLastName.Index]:=strLastName;
 Values[n,KIColFirstName.Index]:=strFirstName;
 Values[n,KIColMidName.Index]:=strMidName;
 Values[n,KIColBirthDate.Index]:=cmnDate(DatFld[0,1]);
 Values[n,KIColGender.Index]:=cmnGenderToStr(IntFld[0,2]);
 Values[n,KIColIsNew.Index]:="";
 Values[n,KIColIDHuman.Index]:=nIDHuman;
Finally
 Free;
 GridKidsInTable.DataController.Free;
End;

правда можно делать так:
c1 := TClass1.create; c2 := TClass2.Create;


 
default ©   (2006-08-29 05:04) [59]

вот это убрать "правда можно делать так:
c1 := TClass1.create; c2 := TClass2.Create;"
:):):)


 
euru ©   (2006-08-29 09:37) [60]

Не знаю, что мешает разработчикам ввести конструкцию вида
with <объект> as <псевдоним> do

Тогда всё было бы, как мне кажется, однозначно:

with X.Y as A, X.Y.Z as B do begin
  f();   // вызывется либо глобальная процедура, либо текущего класса
  A.f(); // X.Y.f();
  B.f(); // X.Y.Z.f();
end;


 
Карелин Артем ©   (2006-08-29 09:40) [61]

На Линуксе MONO вроде как есть, так что проекты под старый фреймворк и там пашутЪ


 
Ketmar ©   (2006-08-29 09:57) [62]

> [60] euru ©   (29.08.06 09:37)
точно так же не знаю, какая религия запрещает завести локальную переменную и использовать её.

> [61] Карелин Артем ©   (29.08.06 09:40)
тихий ужос.


 
jack128 ©   (2006-08-29 11:22) [63]

Ketmar ©   (29.08.06 9:57) [62]
точно так же не знаю, какая религия запрещает завести локальную переменную и использовать её.

Это не религия, это Лень-матушка, которая, как известно, вперед нас родилась ;-)


 
Palladin ©   (2006-08-29 12:01) [64]

With я обычно использую очень часто, как сказал Ketmar, молотком можно не только соседа убить, но и гвоздь забить, эта конструкция писалась в два присеста,
сначала

With TMASSqlSource.Create(gl_theCon) Do
Try
 n:=GridKidsInTable.DataController.AppendRecord;
 Select("select date_birth, gender from People where id="+IntToStr(nIDHuman));
 GridKidsInTable.DataController.Values[n,KIColLastName.Index]:=strLastName;
 GridKidsInTable.DataController.Values[n,KIColFirstName.Index]:=strFirstName;

Finally
 Free;
End;


отвлекли... вернувшись, увидев и поленившись писать GridKidsInTable.DataController много много раз, быстренько закинул его в With и благополучно перешел к другому методу, который обдумывался во время написания этого.

поиск ошибки затруднялся тем, что
1 она возникала все время в разных юнитах и разных местах devexpress"а
2 она возникала не сразу, а только при отображении GridKidsInTable
3 добавление, тобишь этот самый "коварный" With отладчиком проходился на ура (в голову то не пришло на Free F7 нажать, F8 блин жмем, прально чего туда идти, чего мы там не видели...), и к тому же это самое добавление проходило в другой вкладке PageControl"а, GridKidsInTable не был виден при этом
4 толпа кода и BreakPoint"ов по которым приходилось шлятся

отвлекающие были "жестоко" наказаны :)


 
pasha_golub ©   (2006-08-29 14:25) [65]


> 1 она возникала все время в разных юнитах и разных местах
> devexpress"а

Воистину, убиться веником. Компоненты хорошие, что уж тут скажешь. Но, блин, имена и организация всего этого хозяйства, это "шо-то с чем-то", например

TcxComboboxProperties(tlcIndexTablespace.Properties).Items.Assign(cbTablespace.P roperties.Items);


 
Alkid ©   (2006-08-29 15:54) [66]


> На Линуксе MONO вроде как есть, так что проекты под старый
> фреймворк и там пашутЪ

У меня есть уже Mono, который и .NET 2.0 реалзует. Хотя, конечно же, там не все классы реализованы, но C# 2.0 компилируется целиком в соответсвии со своей спецификацией (дженерики там всякие и иже с ними).


 
Ketmar ©   (2006-08-29 16:36) [67]

> [66] Alkid ©   (29.08.06 15:54)
толку с пустого копмилятора? всё, что есть хорошего в .net -- это именно компоненты.


 
Alkid ©   (2006-08-29 18:02) [68]

А кто сказал, что он пустой? Там есть некотрое множество классов, даже Windows Forms реализовали.


 
Ketmar ©   (2006-08-29 23:06) [69]

> [68] Alkid ©   (29.08.06 18:02)
если б оно ещё и работало нормально...


 
evvcom ©   (2006-08-30 08:51) [70]

> [54] SergP ©   (29.08.06 03:44)
> Метод которого из объектов будет выполнен?

Кто последний, тот и папа! (c)


 
Palladin ©   (2006-08-30 09:45) [71]


> SergP ©   (29.08.06 04:19) [57]


With с несколькими идентификаторами аналогичен нескольким вложенным With"ам

тоесть напиши я не

With TMASSqlSource.Create(gl_theCon),GridKidsInTable.DataController

а

With GridKidsInTable.DataController,TMASSqlSource.Create(gl_theCon)

ошибки бы не было...


with TClass1.create, TClass2.create do ...

неа, не получится


with TClass1.Create Do
Try
 With TClass2.Create Do
  Try
    ....
  Finally
   Free;
  End;
Finally
 Free;
End;

так получится :)


> default ©   (29.08.06 05:03) [58]


в том то и дело что нельзя DataController.Free, это не мой объект... не я создал не мне и убивцей быть...



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

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

Наверх




Память: 0.67 MB
Время: 0.063 c
1-1155024509
npr2
2006-08-08 12:08
2006.09.17
обмен сообщениями между окнами в приложении


6-1146301242
Novice
2006-04-29 13:00
2006.09.17
Доступ к настройкам по средствам WEB-браузера. Delphi


15-1156999845
V-A-V
2006-08-31 08:50
2006.09.17
Сервис пак для Delphi 6


3-1152805342
juice
2006-07-13 19:42
2006.09.17
2 датасета и ApplyUpdates


2-1156333098
rr
2006-08-23 15:38
2006.09.17
Как построчно прочитать файл