Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

Коварный 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, по-моему. %-))



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

Форум: "Прочее";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.042 c
1-1154620383
r@bbit
2006-08-03 19:53
2006.09.17
дельфи и ASM


15-1156827609
begin...end
2006-08-29 09:00
2006.09.17
29 августа. С Днём рождения!


15-1156363964
Андрей Пазик
2006-08-24 00:12
2006.09.17
Лига Чемпионов.


15-1156360666
LBVF
2006-08-23 23:17
2006.09.17
Откуда можно скачать Delphi 1.0


2-1156402995
Kacnep
2006-08-24 11:03
2006.09.17
Как определить Handle у Моего сервиса???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский