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

Вниз

Самые распространенные дельфийские заблуждения   Найти похожие ветки 

 
Leonid Troyanovsky ©   (2007-11-11 00:26) [0]

Hi, All!

Предлагаю открыть список самых избитых(заезженных)
дельфийский заблуждений.

Пока у меня есть такие кандидаты:

1. Разность двух дат может быть представлена в годах, месяцах и днях.
2. Деструктор обнуляет ссылку на объект.
3. Формы можно размещать в dll (а не в bpl, ocx & etc)
4. Удаление из списка путем for i := 0 to m do Delete(i)

Предполагается набрать 10, но, чтобы они были, дейс-но, избитые.
Не предполагается объявлять их все вне закона (скажем, как,
на проекты вечных двигателей), т.к., не для всех из них
существуют (или могут быть нам неизвестны) строгие
доказательства невозможности.
Но, явно флудерская их природа может/должна приводить все обсуждения на избранные темы в одну из постоянно действующих рубрик, видимо, в районе "прочее".
Понятно, что закрывать такие темы стоит лишь после того,
как собраны все самые отточенные, убийственные аргументы.
Ну, а, далее, видимо в фак, или иную статью.

--
Regards, LVT.

PS
Да, забыл сказать, что в связи с 90 летием ВОСР все провинившиеся
были мной амнистированы и мой черный список сейчас бел.


 
turbouser ©   (2007-11-11 00:34) [1]

:-)
5) "запуздырить иконку в трей" - это круто


 
Johnmen ©   (2007-11-11 00:40) [2]

В DBGrid есть данные и с ними можно работать.


 
Johnmen ©   (2007-11-11 00:41) [3]

Свойство RecordCount возвращает количество записей.


 
ferr   (2007-11-11 00:42) [4]

> 4. Удаление из списка путем for i := 0 to m do Delete(i)

Отсреливать надо таких.


 
Leonid Troyanovsky ©   (2007-11-11 00:43) [5]


> turbouser ©   (11.11.07 00:34) [1]
> :-)
> 5) "запуздырить иконку в трей" - это круто

Ну, да. Это крутилось в голове, но были затруднения
с формулировкой.
У меня, кстати, еще одна тема вызывает схожий рефлекс:
"как мне защитить свою замечательную программу"

А, еще, вот эта замечательная конструкция

procedure TMyThread.Execute;
begin
 while not Terminated do
    Synchronize(DoSomething);
end;

Не могу, правда, придумать название.
Может быть, что-то типа фленовский поток, но,
боюсь нарушить чей-то копирайт.

--
Regards, LVT.


 
Johnmen ©   (2007-11-11 00:43) [6]

Свойство Connected, равное True, означает наличие коннекта.


 
Leonid Troyanovsky ©   (2007-11-11 00:51) [7]


> Johnmen ©   (11.11.07 00:43) [6]

> Свойство Connected, равное True, означает наличие коннекта.

О.. Так мы быстро десятку отстреляем.
Может нужны еще и локальные списки?

Ведь, видимо, еще нужно что-то сказать про переменные Form1
"Следует пользовать переменную Form1, раз она уже есть"

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 00:54) [8]


> ferr   (11.11.07 00:42) [4]
> > 4. Удаление из списка путем for i := 0 to m do Delete(i)
>
> Отсреливать надо таких.

Пока надо разобраться с самими преступлениями :)

--
Regards, LVT.


 
Германн ©   (2007-11-11 00:56) [9]


> Leonid Troyanovsky ©   (11.11.07 00:43) [5]


> procedure TMyThread.Execute;
> begin
>  while not Terminated do
>     Synchronize(DoSomething);
> end;
>
> Не могу, правда, придумать название.
> Может быть, что-то типа фленовский поток, но,
> боюсь нарушить чей-то копирайт.

Это не Фленов. Это Архангельский, имхо.
Архангельский поток - звучит однако!


 
Johnmen ©   (2007-11-11 00:56) [10]


> Leonid Troyanovsky ©   (11.11.07 00:51) [7]
> Может нужны еще и локальные списки?

В смысле по конференциям? Думаю, что нет.
Все основные заблуждения улягутся в десятку...


 
Германн ©   (2007-11-11 00:57) [11]

Имхо, самое первое заблуждение это то, что для написания программы под Дельфи достаточно только мышки.


 
antonn ©   (2007-11-11 01:00) [12]


> Предлагаю открыть список самых избитых(заезженных)
> дельфийский заблуждений.
>
> 4. Удаление из списка путем for i := 0 to m do Delete(i)

насколько я понял, заблуждение - никак не неправильное использование, например без downto может быть AV, причем тут заблуждение?
заблуждение, что на дельфи игры нельзя писать, т.к. он тормозной :)


 
Германн ©   (2007-11-11 01:00) [13]


> Johnmen ©   (11.11.07 00:56) [10]

В смысле по конференциям? Думаю что да.
Для кого-то работа с СОМ-портом является избитой, для кого-то работа с базами.


 
homm ©   (2007-11-11 01:01) [14]

> [1] turbouser ©   (11.11.07 00:34)
> 5) "запуздырить иконку в трей" - это круто

Слышали новость? Начинающий сам запузырил кртинку в трей :)
http://delphimaster.net/view/2-1194729603/


 
Германн ©   (2007-11-11 01:03) [15]


> homm ©   (11.11.07 01:01) [14]
>
> > [1] turbouser ©   (11.11.07 00:34)
> > 5) "запуздырить иконку в трей" - это круто
>
> Слышали новость? Начинающий сам запузырил кртинку в трей
> :)
>

Слышали.
Говорила же ему сестрица Алёнушка - "Не пей из копытца, братец Иванушка! Козлёночком станешь." :-)


 
Johnmen ©   (2007-11-11 01:04) [16]


> Германн ©   (11.11.07 01:00) [13]
> Для кого-то работа с СОМ-портом является избитой,
> для кого-то работа с базами.

Это, конечно, так, но основные моменты общеизвестны. Я не претендую, что мои предложения полностью подходят.


 
SergeyIT   (2007-11-11 01:07) [17]

1. Delphi - это очень просто.


 
Leonid Troyanovsky ©   (2007-11-11 01:26) [18]


> antonn ©   (11.11.07 01:00) [12]

> насколько я понял, заблуждение - никак не неправильное использование,
>  например без downto может быть AV, причем тут заблуждение?

Наверное, да.
Можно выделить, скажем, распространенные ошибки,
т.е., то, что и в опровержениях не нуждается.

Пункт "удаление из списка" из списка удаляем :)

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 01:31) [19]


> Германн ©   (11.11.07 00:56) [9]

> Это не Фленов. Это Архангельский, имхо.
> Архангельский поток - звучит однако!

Я ж говорю, вопрос тут тонкий. Кто у кого чего позаимствовал.
Есть у меня и другие кандидатуры, надо бы разобраться.

Хотя, возможно, нужно пальму отдать тому, у кого больше тираж.
Но, вопрос тогда с веб-публикациями.

--
Regards, LVT.


 
Johnmen ©   (2007-11-11 01:33) [20]


> Leonid Troyanovsky ©   (11.11.07 01:26) [18]

Леонид, а ты свой список будешь вести единолично? Или коллегиально? :)
Я думаю, что самое разумное - накопить статистику, обсудить, а уже потом и резюмировать, и разместить красным по белому в титуле каждой страницы сайта (в смысле, предложить организаторам разместить). Причем со ссылками на ристалища по каждому пункту :)


 
{RASkov}   (2007-11-11 01:37) [21]

У канвы есть границы)


 
guav ©   (2007-11-11 01:41) [22]

> 3. Формы можно размещать в dll

Про dll достаточно заблуждений:
1. Можно передавать AnsiString из/в dll
2. Можно передавать любые классы из dll, в т.ч. исключения Delphi.
3. Целесообразно разбивать приложения на exe и dll.
4. Если dll не нужна, лучше её выгрузить, и когда она снова понадобится - снова загрузить.
Первое ИМХО более избитое чем про формы.


 
Leonid Troyanovsky ©   (2007-11-11 01:44) [23]


> Германн ©   (11.11.07 00:57) [11]

> antonn ©   (11.11.07 01:00) [12]

> SergeyIT   (11.11.07 01:07) [17]

Попробуем скомпилировать:
Delphi - простой RAD, требующий только мышечных/мышиных усилий.
Его компилятор порождает неэффективный код.

--
Regards, LVT.


 
Германн ©   (2007-11-11 01:45) [24]


> Leonid Troyanovsky ©   (11.11.07 01:31) [19]
>
>
> > Германн ©   (11.11.07 00:56) [9]
>
> > Это не Фленов. Это Архангельский, имхо.
> > Архангельский поток - звучит однако!
>
> Я ж говорю, вопрос тут тонкий. Кто у кого чего позаимствовал.
>
> Есть у меня и другие кандидатуры, надо бы разобраться.
>

Надо бы разобраться. Только лень копаться в ерунде.
По истории сего форума первым обратившим на это внимание был Digitman, а до него сейчас уже не достучаться.


 
antonn ©   (2007-11-11 01:46) [25]


> Delphi - простой RAD, требующий только мышечных/мышиных
> усилий.

анекдот вспоминается "...все играешь, сынок?" ))))


 
Petr V. Abramov ©   (2007-11-11 01:50) [26]

> Leonid Troyanovsky ©   (11.11.07 00:26)  
> 3. Формы можно размещать в dll (а не в bpl, ocx & etc)
а что - неможно???
может, и заблуждение, но ~500 форм, живущих в ~50 dll, наверное, заблудились, их мама ищет :)
у Вас очепятка?


 
guav ©   (2007-11-11 01:51) [27]

объявления var P: PChar достаточно для создания буфера, принимающего данные из WinApi функции.


 
Leonid Troyanovsky ©   (2007-11-11 01:51) [28]


> Johnmen ©   (11.11.07 01:33) [20]

> Леонид, а ты свой список будешь вести единолично? Или коллегиально?
>  :)

Не знаю. В любом случае, если построю для себя, то общественность
не забуду.

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

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 01:53) [29]


> Petr V. Abramov ©   (11.11.07 01:50) [26]

> может, и заблуждение, но ~500 форм, живущих в ~50 dll, наверное,
>  заблудились, их мама ищет :)

Возможно, что мера глубины оного заблуждения.

--
Regards, LVT.


 
Petr V. Abramov ©   (2007-11-11 01:54) [30]

> Leonid Troyanovsky ©   (11.11.07 01:53) [29]
глубинно, внушаеть


 
Германн ©   (2007-11-11 01:55) [31]


> Leonid Troyanovsky ©   (11.11.07 01:44) [23]
>
>

Не. Раздели на две догмы. Поскольку
> Leonid Troyanovsky ©   (11.11.07 01:44) [23]
>
>
> > Германн ©   (11.11.07 00:57) [11]
>
> > antonn ©   (11.11.07 01:00) [12]
>
> > SergeyIT   (11.11.07 01:07) [17]
>
> Попробуем скомпилировать:
> Delphi - простой RAD, требующий только мышечных/мышиных
> усилий.
> Его компилятор порождает неэффективный код.
>

Не. Оставь только SergeyIT   (11.11.07 01:07) [17]
Замечание про компилятор относится к заблуждениям лиц, предпочитающих другие языки. А их мнение в свете сабжа не интересны.


 
Petr V. Abramov ©   (2007-11-11 01:56) [32]

> Leonid Troyanovsky ©   (11.11.07 01:53) [29]
так можно или неможно?
или я  глубину [0] не прочуял?


 
Германн ©   (2007-11-11 01:58) [33]


> Petr V. Abramov ©   (11.11.07 01:50) [26]
>
> > Leonid Troyanovsky ©   (11.11.07 00:26)  
> > 3. Формы можно размещать в dll (а не в bpl, ocx & etc)
> а что - неможно???
>

Можно. Но нежелательно. Поскольку слишком сложно в большинстве случаев. И в этом и есть заблуждение.


 
Leonid Troyanovsky ©   (2007-11-11 01:59) [34]


> guav ©   (11.11.07 01:41) [22]

> Про dll достаточно заблуждений:
> 1. Можно передавать AnsiString из/в dll
> 2. Можно передавать любые классы из dll, в т.ч. исключения
> Delphi.
> 3. Целесообразно разбивать приложения на exe и dll.
> 4. Если dll не нужна, лучше её выгрузить, и когда она снова
> понадобится - снова загрузить.

Согласен. Только пункт 3 поднять наверх.
Анатолий Тенцер когда-то сильно аргуменировал.

П.1 можно отнести к ошибкам, даже борланд предупреждает ССЗБ.
П.4 - в аргументацию 3.
П.2 таким и остается.

Блин, уже трудно в десятке держаться.

--
Regards, LVT.


 
Германн ©   (2007-11-11 02:00) [35]


> guav ©   (11.11.07 01:51) [27]
>
> объявления var P: PChar достаточно для создания буфера,
> принимающего данные из WinApi функции.
>

Любой переменной-указателя на память.


 
Leonid Troyanovsky ©   (2007-11-11 02:02) [36]


> Petr V. Abramov ©   (11.11.07 01:56) [32]

> так можно или неможно?

Не беспокойся, [0] уже трансформировался в
2. Можно передавать любые классы из/в dll, в т.ч. исключения Delphi.

--
Regards, LVT.


 
Германн ©   (2007-11-11 02:03) [37]


> Leonid Troyanovsky ©   (11.11.07 01:59) [34]
>
>


> Блин, уже трудно в десятке держаться.
>

А кто сказал, что будет легко?
Назвался груздем, полезай...
:-)
Хорошо хоть создал сей топик перед выходным днём! :-)


 
Petr V. Abramov ©   (2007-11-11 02:05) [38]

> Германн ©   (11.11.07 01:58) [33]
> Можно. Но нежелательно. Поскольку слишком сложно в большинстве случаев.
в чем сложность?
критерий сложности?
почему "заблуждение" в одном ряду с
> 2. Деструктор обнуляет ссылку на объект.

разница между 2. и 3. в том, что Деструктор в общем случае не обнуляет ссылку на объект, а формы в общем случае размещать в dll не так уж гимрно


 
Petr V. Abramov ©   (2007-11-11 02:07) [39]

> Leonid Troyanovsky ©   (11.11.07 02:02) [36]
а раньше за найденный баг производитель бонус давал. А теперь... говорит, скажи спасибо, что не послал, а пообещал пофиксить
:))))


 
Leonid Troyanovsky ©   (2007-11-11 02:12) [40]


> Petr V. Abramov ©   (11.11.07 02:05) [38]

> в чем сложность?
> критерий сложности?

В [0] было еще etc. Подразумевалось, например,
сборка обоих с рантайм-пакетами, ну, или, еще какие
трюки, как импорт интерфейсов и т.д.

Т.е., если у тебя etc., то можно спать спокойно.

--
Regards, LVT.


 
Petr V. Abramov ©   (2007-11-11 02:18) [41]

> Leonid Troyanovsky ©   (11.11.07 02:12) [40]
спать не хочу, насчет  etc. согласен, но формулировка в 2. в [36] под сабж подходит, а в [0] - нет.


 
Leonid Troyanovsky ©   (2007-11-11 02:19) [42]


> Германн ©   (11.11.07 02:03) [37]

> А кто сказал, что будет легко?

Оказалось, что требования компактности более требовательны :)
Ну, ничего, будем думать о критериях.

И, с другой стороны, более общие утверждения (заблуждения)
менее информативны, как бы не скатиться на философию.

--
Regards, LVT.


 
guav ©   (2007-11-11 02:21) [43]

Не знаю как это сформулировать:
Если функция кидает исключение в каком-либо случае, необходимо защитить её вызов блоком try..except, вроде:
try
 LoadFromFile(OpenDialog1.FileName);
except
 ShowMessage("Файл не найден");
end;


 
Leonid Troyanovsky ©   (2007-11-11 02:23) [44]


> Petr V. Abramov ©   (11.11.07 02:18) [41]

> спать не хочу, насчет  etc. согласен, но формулировка в
> 2. в [36] под сабж подходит, а в [0] - нет.

Ну, так и поэтому я к общественности обратился,
чтоб побыстрее избавиться от заблуждений :)

А спать уже пора бы.
Вот только попробую сейчас список пересобрать.

--
Regards, LVT.


 
Германн ©   (2007-11-11 02:24) [45]


> Leonid Troyanovsky ©   (11.11.07 02:19) [42]
>
>
> > Германн ©   (11.11.07 02:03) [37]
>
> > А кто сказал, что будет легко?
>
> Оказалось, что требования компактности более требовательны
> :)
> Ну, ничего, будем думать о критериях.
>
> И, с другой стороны, более общие утверждения (заблуждения)
> менее информативны, как бы не скатиться на философию.

Понял суть твоего последнего слова "философия"
:-)


 
Anatoly Podgoretsky ©   (2007-11-11 02:24) [46]

> guav  (11.11.2007 01:51:27)  [27]

Это Пушкин виноват.


 
Германн ©   (2007-11-11 02:28) [47]


> guav ©   (11.11.07 02:21) [43]
>
> Не знаю как это сформулировать:
>

Недопустимо использовать блок try..except в виде:
try
 DoSomething;
except
end;

Т.е. с "пустым" блоком except.


 
guav ©   (2007-11-11 02:32) [48]

> [47] Германн ©   (11.11.07 02:28)

нет не то чтобы недопустимо, ... кажется созрела формулировка:

N. Обрабатывать безусловно все исключения в максимальной близости к месту их возникновения является хорошей практикой обработки ошибок.


 
Anatoly Podgoretsky ©   (2007-11-11 02:34) [49]

> Германн  (11.11.2007 02:28:47)  [47]

Формулировка не удачная, надо что то типа - пустой блок помогает пользователям или делает программу надежной, поскольку нет сообщений об ошибках.


 
Anatoly Podgoretsky ©   (2007-11-11 02:35) [50]

> guav  (11.11.2007 02:32:48)  [48]

Ну мы же не таблицу как правильно делать составляем, а список именно заблуждений, даже не ошибок.

Иконка в трее признак классного программиста.


 
Petr V. Abramov ©   (2007-11-11 02:36) [51]

навеяно [43]
прошу не рассматривать не как четкое определение заблуждения, а, скорее, как описание
перехват исключений при работе с базой делает сообщения об ошибках более информативными для юзера и для саппорта

try
 StoredProc456.execute
except
 ShowMessage("ашипка")
end;

толи сеть отвалилась, толи базу три дня как дропнули, толи хранимка вполне в соответствии с ТЗ выкинула, толи процессор на клиентской машине перегрелся.

частный случай философии - не маскировать ошибки


 
Leonid Troyanovsky ©   (2007-11-11 02:38) [52]

Hi, All!

Вот, очередная бета:

1. Delphi - это просто
2. Запуздырить иконку туда где часики - круто.
3. Если существует переменная Form1, то ее надо пользовать.
4. Деструктор обнуляет ссылку на объект.
5. DBGrid есть данные и с ними можно работать.
6. Свойство RecordCount возвращает количество записей.
7. Целесообразно разбивать приложения на exe и dll.
8. Можно передавать любые классы в/из dll, в т.ч. исключения Delphi.
9. Разность двух дат может быть представлена в годах, месяцах и днях.
10. За создание объектов и выделение памяти отвечает Пушкин

Копирайтов, видимо, не будет, типа народное творчество.
Список, понятно, не окончательный, требует доработки
напильником и топором.

--
Regards, LVT.


 
Johnmen ©   (2007-11-11 02:42) [53]


> 10. За создание объектов и выделение памяти отвечает Пушкин

Думаю этот важный пункт надо поднять повыше.


 
Petr V. Abramov ©   (2007-11-11 02:42) [54]

> Leonid Troyanovsky ©   (11.11.07 02:38) [52]
> 10. За создание объектов и выделение памяти отвечает Пушкин
а в Маскве - Грибоедов :)


 
{RASkov}   (2007-11-11 02:42) [55]

Вот еще некоторые из заблуждений:
главная форма - это окно приложения;
есть частые заблуждения в понятиях ссылка на объект, объект и класс(или переменная, экземпляр класса и класс);
TA = array [Byte] of Byte и TB = array [Byte] of Byte; - разные типы;
....


 
Daemmerung   (2007-11-11 02:45) [56]

Идея на счёт заблуждений не плохая, но и не новая. Однако, к сожалению, эта тема скатилась в банальный стэб. Очень уж сильно старается господин ник(Германн), как он заметил сам - дело для него скорее в дне выходном, что вероятно и отметил.

При обсуждении неких распространённых ошибок - они, наверное могут быть причисленны к заблуждениям, т.к. - распространённые. Заблуждаться могут даже мастера, хорошо знающие предмет. Всё дело в том, что так называемые заблуждения часто носят характер самых простейших ошибок. При этом эти ошибочные решения кажутся настолько очевидными и не требующими особых раздумий, что принимаются за аксиомы: именно поэтому они и являются заблуждениями. Ну и, разумеется, некоторые аксиомы становятся со временем не дейтвительными, к примеру:
  невозможно создать простейшую игрушку на языке высокого уровня с использованием динамической графики без перехода на машинные коды (здесь следует учесть, что это могло говориться в 80х годах и в первой половине 90х). Понятно, что теперь это высказывание является заблуждением и таких заблуждений существует, наверное, не мало.


 
Германн ©   (2007-11-11 02:46) [57]


> Anatoly Podgoretsky ©   (11.11.07 02:34) [49]

Ну да. Типичное смещение акцентов.
В пылу "борьбы с дураками" забыл о сути сабжа.


 
guav ©   (2007-11-11 02:47) [58]

> [52] Leonid Troyanovsky ©   (11.11.07 02:38)

Хорошая подборка.
Я предлагаю сохранить имеющиеся формулировки как есть, возможно добавить новые, но такие же краткие.


 
{RASkov}   (2007-11-11 02:48) [59]

Тогда есть и такое:
Чем меньше размер екзэшника, тем круче программа


 
{RASkov}   (2007-11-11 02:49) [60]

F1 - туфта. Дайте мне нормальный источник знаний....)


 
Daemmerung   (2007-11-11 02:51) [61]


> {RASkov}   (11.11.07 02:48) [59]
> Тогда есть и такое:
> Чем меньше размер екзэшника, тем круче программа

Вот, как раз тот, случай, когда со временем важный принцип превращается в заблуждение:)


 
Германн ©   (2007-11-11 02:53) [62]


> Daemmerung   (11.11.07 02:45) [56]
>
> Идея на счёт заблуждений не плохая, но и не новая. Однако,
>  к сожалению, эта тема скатилась в банальный стэб. Очень
> уж сильно старается господин ник(Германн)

Спасибо за рекламу. Но чек на оплату вышеуказанной подписывать не собираюсь!
И вообще. Инстинктивно отношусь с неким негативом к "немецким" никам!
:-)
P.S. Некоторые, конечно, могут упрекнуть меня по поводу моего ника. Но это их собственная проблема.
:-)


 
Petr V. Abramov ©   (2007-11-11 02:53) [63]

> Leonid Troyanovsky ©   (11.11.07 02:38) [52]
> 7. Целесообразно разбивать приложения на exe и dll.
А что, нецелесообразно?
Целесообразно часто бывает, и все механизмы для этого в дельфи есть, по крайней мере, в 3-7-ке были, их что, убрали? :)
Считаю, что пункт убрать


 
Daemmerung   (2007-11-11 02:54) [64]


> RASkov}   (11.11.07 02:49) [60]
> F1 - туфта. Дайте мне нормальный источник знаний....)

Это не заблуждение - это рэкет.


 
Leonid Troyanovsky ©   (2007-11-11 02:55) [65]

Пока обойдемся без номеров

Иконка в трее - признак классного программиста.
За создание объектов и выделение памяти отвечает Пушкин.
Если существует переменная Form1, то ее надо пользовать.
Деструктор обнуляет ссылку на объект.
В DBGrid есть данные, а RecordCount возвращает количество записей.
Целесообразно разбивать приложения на exe и dll, и между ними  можно передавать любые классы.
Обрабатывать исключения надо для того, чтобы не пугать юзера
Разность двух дат может быть представлена в годах, месяцах и днях.

Итак, есть две резервные позиции.

Пункт первый считаю избыточным, потому как обратившийся
к этому списку уже его (пункт) приемлет.

--
Regards, LVT.


 
{RASkov}   (2007-11-11 02:58) [66]

> [64] Daemmerung   (11.11.07 02:54)
> Это не заблуждение - это рэкет.

Заблуждение было до первой точки... потом уже рэкет :)


 
Petr V. Abramov ©   (2007-11-11 03:01) [67]

> Leonid Troyanovsky ©   (11.11.07 02:55) [65]
> Обрабатывать исключения надо для того, чтобы не пугать юзера
Обрабатывать исключения надо для того, чтобы никто не догадался, какая  ошибка произошла в  системе или в базе.


 
Leonid Troyanovsky ©   (2007-11-11 03:05) [68]


> {RASkov}   (11.11.07 02:49) [60]

> F1 - туфта. Дайте мне нормальный источник знаний....)

Попробуем так:
Для классного программиста хелп не указ, а мсдн - не догма.

Дадим, пока, первое место.


> Petr V. Abramov ©   (11.11.07 02:53) [63]

> > 7. Целесообразно разбивать приложения на exe и dll.
> А что, нецелесообразно?

Усилим:
Можно смело делить приложение на exe  & dll и передавать между ними классы.

--
Regards, LVT.


 
{RASkov}   (2007-11-11 03:06) [69]

> а RecordCount возвращает количество записей.

А что же он возвращает, как не кол-во записей? Даже простой перевод говорит о кол-ве записей
Или этот RecordCount непосредственно, "в данном заблуждении", "завязан" с DBGrid"ом?


 
Petr V. Abramov ©   (2007-11-11 03:06) [70]

Leonid Troyanovsky ©   (11.11.07 02:55) [65]
N. Разбивать приложения на exe и dll очень просто, потому что между ними  можно передавать любые классы.
N+1. Разбивать систему на exe и dll вообще не надо, потому что N


 
Petr V. Abramov ©   (2007-11-11 03:08) [71]

> Petr V. Abramov ©   (11.11.07 03:06) [70]
N. Разбивать приложения на exe и dll очень просто, потому что между ними  можно передавать любые классы, особенно при нелюбви к runtime-пакетам
N+1. Разбивать систему на exe и dll вообще не надо, потому что N


 
Leonid Troyanovsky ©   (2007-11-11 03:10) [72]


> Petr V. Abramov ©   (11.11.07 03:06) [70]

> N. Разбивать приложения на exe и dll очень просто, потому
> что между ними  можно передавать любые классы.
> N+1. Разбивать систему на exe и dll вообще не надо, потому
> что N

Со вторым не согласен, бо кто это постиг, не будет
читать этот список :)

--
Regards, LVT.


 
Германн ©   (2007-11-11 03:10) [73]


> Разность двух дат может быть представлена в годах, месяцах
> и днях.

Разность двух дат легко и всегда однозначно может быть представлена в годах, месяцах и днях.


 
Petr V. Abramov ©   (2007-11-11 03:11) [74]

Petr V. Abramov ©   (11.11.07 03:01) [67]
Обрабатывать исключения надо для того, чтобы никто не догадался, какая  ошибка произошла в  системе или в базе, и что при этом никто не заподозрит, что про try... except Вы услышали только вчера.


 
Petr V. Abramov ©   (2007-11-11 03:13) [75]

> Leonid Troyanovsky ©   (11.11.07 03:10) [72]
[70] - это бета [71] :)


 
Leonid Troyanovsky ©   (2007-11-11 03:16) [76]


> {RASkov}   (11.11.07 02:48) [59]

> Чем меньше размер екзэшника, тем круче программа

Малый размер exe, иконка в трее и защита программы - главное для классного программиста.

--
Regards, LVT.


 
Германн ©   (2007-11-11 03:17) [77]


> {RASkov}   (11.11.07 03:06) [69]
>
> > а RecordCount возвращает количество записей.
>
> А что же он возвращает, как не кол-во записей?

Зависит от атмосферного давления, температуры воздуха, возраста бабушки соседа слева и т.п.
В справке читай подробности. Есть только очень узкий диапазон, когда RecordCount возвращает количество записей.


 
Leonid Troyanovsky ©   (2007-11-11 03:19) [78]


> Petr V. Abramov ©   (11.11.07 03:11) [74]

> этом никто не заподозрит, что про try... except Вы услышали
> только вчера.

Чего-то, вместо списка заблуждений у нас получается мануал
"Как стать классным программистом" :)

--
Regards, LVT.


 
{RASkov}   (2007-11-11 03:25) [79]

> [77] Германн ©   (11.11.07 03:17)
> Зависит от атмосферного давления, температуры воздуха, возраста бабушки соседа слева и т.п.

Т.е. заблуждение в том что RecordCount всегда вертает кол-во записей в таблице?
Просто как это выражено в [65] - не вяжется.... Какое-никакое(отфильтрованное) а вернет кол-во записей...


 
Petr V. Abramov ©   (2007-11-11 03:26) [80]

> Leonid Troyanovsky ©   (11.11.07 03:19) [78]
приятное с полезным.
> Пункт первый
N малое. программировать на Delphi - это кидать что-то непонятное на форму.
N малое 1. Если хелп на непонятном языке, его не надо читать
N малое 2. Если забить на умершее Delphi и перейти на живую жабу или vs, что-нить поменяется


 
{RASkov}   (2007-11-11 03:29) [81]

> [80] Petr V. Abramov ©   (11.11.07 03:26)
> Если хелп на непонятном языке, его не надо читать

А как же его читать если язык непонятный? :) Был бы хотя-бы англ, то хоть перевести можно было б
:о)


 
Petr V. Abramov ©   (2007-11-11 03:31) [82]

> {RASkov}   (11.11.07 03:29) [81]
идентифицировать язык и достать английский хелп


 
Германн ©   (2007-11-11 03:31) [83]


> {RASkov}   (11.11.07 03:25) [79]
>
> > [77] Германн ©   (11.11.07 03:17)
> > Зависит от атмосферного давления, температуры воздуха,
>  возраста бабушки соседа слева и т.п.
>
> Т.е. заблуждение в том что   всегда вертает кол-
> во записей в таблице?
>

Хм. RecordCount - это свойство TDataSet. А DataSet не обязательно таблица.


 
Riply ©   (2007-11-11 03:34) [84]

А можно и я свои пять копеек добавлю:
Крутые прогеры пишут на чистом API.


 
Petr V. Abramov ©   (2007-11-11 03:35) [85]

Крутые прогеры пишут чисто на  API.


 
{RASkov}   (2007-11-11 03:36) [86]

> [83] Германн ©   (11.11.07 03:31)
> Хм. RecordCount - это свойство TDataSet

Ну я про него и имел ввиду.
Т.е. свойство в любом случае вернет некое кол-во записей в ДатаСете ) Пусть под фильтр не попала не одна запись, но 0 - это тоже же кол-во...


 
Германн ©   (2007-11-11 03:36) [87]


> Petr V. Abramov ©   (11.11.07 03:26) [80]

В плане "Anatoly Podgoretsky ©   (11.11.07 02:34) [49]"
перефразирую твоё высказывание.
"Хелп не надо читать, поскольку он написан на непонятном языке".


 
Leonid Troyanovsky ©   (2007-11-11 03:37) [88]

Получилось примерно так

Для классного программиста F1 - не кнопка, хелп - не указ, а мсдн - не догма.
Малый размер exe, иконка в трее и защита программы - главное для классного программиста.
За создание объектов и выделение памяти отвечает Пушкин.
Если существует переменная Form1, то ее надо пользовать.
Деструктор обнуляет ссылку на объект.
В DBGrid есть данные, RecordCount возвращает количество записей.
Можно смело разбивать приложения на exe и dll, и передавать между ними классы.
Обрабатывать исключения надо так, чтобы никто о них не догадался.
Разность двух дат лучше всего представить в годах, месяцах и днях.

Итак, есть еще один пункт.
Оставим его на утро, бо оно мудренее.

--
Regards, LVT.


 
Riply ©   (2007-11-11 03:37) [89]

> [85] Petr V. Abramov ©   (11.11.07 03:35)
> Крутые прогеры пишут чисто на  API.

Не, твое предложение хуже. Его можно понять как "пишут на API без ошибок" :)


 
Riply ©   (2007-11-11 03:39) [90]

> [88] Leonid Troyanovsky ©   (11.11.07 03:37)
> За создание объектов и выделение памяти отвечает Пушкин.

А кто отвечает за освобождение памяти ?


 
Petr V. Abramov ©   (2007-11-11 03:39) [91]

> Riply ©   (11.11.07 03:37) [89]
дак это и имелось в виду. "и сразу" забыл добавить в конце :)


 
Германн ©   (2007-11-11 03:40) [92]


> Riply ©   (11.11.07 03:39) [90]
>
> > [88] Leonid Troyanovsky ©   (11.11.07 03:37)
> > За создание объектов и выделение памяти отвечает Пушкин.
>
>
> А кто отвечает за освобождение памяти ?
>

Гоголь, разумеется!
:-)


 
{RASkov}   (2007-11-11 03:41) [93]

> В DBGrid есть данные, RecordCount возвращает количество записей.

В DBGrid есть данные(записи), а RecordCount возвращает их количество.
Во)


 
Leonid Troyanovsky ©   (2007-11-11 03:44) [94]


> Riply ©   (11.11.07 03:34) [84]

> Крутые прогеры пишут на чистом API.

Хороший довесок, но пока не знаю куда б его приспособить :)

--
Regards, LVT.


 
Германн ©   (2007-11-11 03:45) [95]


> Leonid Troyanovsky ©   (11.11.07 03:37) [88]


> Разность двух дат лучше всего представить в годах, месяцах
> и днях.
>

Я против такой формулировки как "негативной". Поскольку очень часто используется в быту формулировка типа: мне, моему ребёнку (и т.п.) столько то лет, месяцев и дней от роду.


 
Petr V. Abramov ©   (2007-11-11 03:51) [96]

Германн ©   (11.11.07 03:45) [95]
если вычесть из одной даты другую, мы получим их разность в рабочих днях с учетом всех законов страны, где находится юзер. А в дни годы, месяцы и дни Delphi само переведет.


 
Leonid Troyanovsky ©   (2007-11-11 03:51) [97]


> Германн ©   (11.11.07 03:45) [95]

> Я против такой формулировки как "негативной". Поскольку
> очень часто используется в быту формулировка типа

Т.е., ты часто употребляешь такое: "я старше своего ребенка
на ..лет, месяцев, дней"? :)

--
Regards, LVT.


 
Германн ©   (2007-11-11 04:03) [98]


> Leonid Troyanovsky ©   (11.11.07 03:51) [97]

Не. Не часто.
Я очень не хотел ввязываться в обсуждение http://delphimaster.net/view/2-1194516434/
но похоже придётся.
Там кто-то высказался про функцию типа DateDiff.
Не знаю как в JEDI, но в RxLib она вычисляет разницу именно на бытовом уровне.
1. сколько лет
2. сколько месяцев
3. сколько дней.

А арифметика тут побоку, имхо. Так же как и календарь.


 
homm ©   (2007-11-11 08:25) [99]

Разрешите отсебятину %)

н. Размер программы на дельфи получается большой, и с этим ничего нельзя поделать.
Можно даже объеденить с тем, что дельфи дает медленный код.


 
Sergey Masloff   (2007-11-11 08:36) [100]

>1. Разность двух дат может быть представлена в годах, месяцах и днях.
Конечно может. Это даже не ИМХО. Иначе бы ни одна финансовая система автоматизации не работала бы. То что в дельфи нет соответствующей функции - ну так написать не очень сложно. В чем заблуждение?


 
Sergey Masloff   (2007-11-11 08:59) [101]

На дельфи транслируется в полпинка

create or replace function Months_Between2(pDate2 in date, pDate1 in date) return number deterministic
is
 vM number;
-- Ðàññ÷èòûâàåò ÷èñëî ìåñÿöåâ ìåæäó äâóìÿ äàòàìè âêëþ÷èòåëüíî, íî, â îòëè÷èå îò
-- month_between êîððåêòíî ñ òî÷êè çðåíèÿ áèçíåñ-ëîãèêè ðàáîòàåò äëÿ ïîñëåäíèõ
-- äíåé "êîðîòêèõ" ìåñÿöåâ

begin
 -- â ñëó÷àå êîãäà pDate2 ïîñëåäíèé äåíü êîðîòêîãî ìåñÿöà
 if Months_Between(pDate2+1, Trunc(pDate2+1, "Y")) in (2,4,6,9,11) then
   vM := Months_Between(Trunc(pDate2, "MM"), Trunc(pDate1, "MM"));
   if Add_Months(pDate2-1, -vM) < pDate1 - 1 then
     return vM;
   else
     return Months_Between(pDate2+1, pDate1);
   end if;
 else
   return Months_Between(pDate2+1, pDate1);
 end if;
end;

create or replace function GetPeriodStr2(pDateBeg in date,  
                     pDateEnd in date
) return varchar2 deterministic
is
vMon number;
vYear number;
vD varchar2(10);
C_D varchar2(1):="&#228;";
C_M varchar2(1):="&#236;";
C_Y varchar2(1):="&#227;";
begin
 -- &#206;&#242;&#238;&#225;&#240;&#224;&#230;&#229;&#237;&#232;&#229; &#241;&#240;&#238;&#234;&#224; &#228;&#229;&#233;&#241;&#242;&#226;&#232;&#255; &#228;&#238;&#227;&#238;&#226;&#238;&#240;&#224; &#226; &#226;&#232;&#228;&#229; &#241;&#242;&#240;&#238;&#234;&#232;:
 -- &#205;&#224;&#239;&#240;&#232;&#236;&#229;&#240;: "12 &#236;", "3 &#236; 15 &#228; (105)", "6 &#228;" &#232; &#242;.&#239;.
 if (pDateBeg is null) or (pDateEnd is null) then
   return NULL;
 end if;

 if trunc(pDateEnd)<>pDateEnd then
   return to_char(trunc(pDateEnd-pDateBeg+1))||" "||C_D;
 end if;

 vD:=" ("||To_Char(Trunc(pDateEnd)-Trunc(pDateBeg)+1)||")";

 vMon:=Months_Between2(Trunc(pDateEnd), Trunc(pDateBeg));

 if vMon=Trunc(vMon) then
   return To_Char(vMon)||" "||C_M||vD;
 end if;

 if vMon<1 then
   if Trunc(pDateEnd)=Trunc(pDateBeg) then
     return To_Char(Trunc(pDateEnd)-Trunc(pDateBeg))||" "||C_D;
   else
     return To_Char(Trunc(pDateEnd)-Trunc(pDateBeg)+1)||" "||C_D;
   end if;
 end if;
 
 vYear := trunc(vMon / 12);
 if (vYear > 1) then
   vMon := vMon - vYear * 12;
   return TO_Char(vYear)||" "||C_Y||" "To_Char(Trunc(vMon))||" "||C_M||" "||To_Char(Trunc(pDateEnd-Add_Months(Trunc(pDateBeg), Trunc(vMon))+1))||" "||C_D||vD;
 else
   return To_Char(Trunc(vMon))||" "||C_M||" "||To_Char(Trunc(pDateEnd-Add_Months(Trunc(pDateBeg), Trunc(vMon))+1))||" "||C_D||vD;
 end;  
end;


 
Sergey Masloff   (2007-11-11 09:02) [102]

select getperiodstr2("01-02-1900","01-03-2005") from dual
результат
105 г 1 м 1 д (38380)

Ну для разных лет менять г на л "оставляю на домашнее задание"


 
Sergey Masloff   (2007-11-11 09:05) [103]

Кстати в дополнение - может показаться ошибкой прибавление одного дня но тут все правильно (с точки зрения фин. систем) - с 01.01.2006 по 01.01.2006 а не 0. С 1 февраля по 1 марта 1 месяц и 1 день а не ровно месяц. Так что все корректно если у кого-то логика другая перерабатывайте ;-)


 
homm ©   (2007-11-11 09:20) [104]

select getperiodstr2("01-02-1900","01-03-2005") from dual
результат
105 г 1 м 1 д (38380)


ну дак а правильно 105 г 1 м 0 д.


 
Sergey Masloff   (2007-11-11 09:22) [105]

>homm ©   (11.11.07 09:20) [104]
Для тех кто в танке
Sergey Masloff   (11.11.07 09:05) [103]


 
Sergey Masloff   (2007-11-11 09:24) [106]

Ну или у вас проездной на февраль еще 1 марта действует тогда поздравляю


 
homm ©   (2007-11-11 09:24) [107]

Ок, а что выведет на getperiodstr2("01-02-1900","01-03-2003") ?
2004-й был был висакосным, значит результата должен быть 105 г 1 м 0 д


 
homm ©   (2007-11-11 09:25) [108]

> 2004-й был был висакосным, значит результата должен быть
> 105 г 1 м 0 д

103 г 1 м 0 д


 
Leonid Troyanovsky ©   (2007-11-11 09:43) [109]


> Германн ©   (11.11.07 04:03) [98]
Sergey Masloff   (11.11.07 08:36) [100]

http://delphimaster.net/view/2-1194516434/

Обещаю учесть результат.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 09:50) [110]

Итак, на настоящий момент имеем:

Классный программист никогда не ошибается, ему не нужен debuger,
Help ему не указ, MSDN - не догма, а пишет он на чистом API.

Малый размер exe, иконка в трее и защита программы - главное для классного программиста.

Главный враг классного программиста - тупой юзер (и ламерье, засевшее на DM).

За создание объектов и выделение памяти отвечает Пушкин, за все остальное - глючный Delphi.

Деструктор обнулит ссылку на объект.

Обрабатывать исключения надо так, чтобы никто о них не узнал.

Можно смело разбивать приложение на exe & dll и передавать между ними классы.

Если существует переменная Form1, то ее надо пользовать.

В DBGrid есть данные, RecordCount возвращает количество записей.

Разность двух дат лучше всего представить в годах, месяцах и днях.

Однако, смущает некоторая неоднородность, или разномасштабность
утверждений. Одни из них, скажем, академического плана,
а другие - сугубо прикладные.

--
Regards, LVT.


 
isasa ©   (2007-11-11 09:58) [111]

Sergey Masloff   (11.11.07 08:36) [100]
Формулировка

Leonid Troyanovsky ©   (11.11.07 00:26)  
1. Разность двух дат может быть представлена в годах, месяцах и днях.


Правильная, поскольку в ней идет речь о представлении готового результата(полученной разности, например, хранящейся в double== TDataTime). В этой ситуации предполагается, что информации о начале и конце периода может и не быть.

В вашем случае это операция с заранее заданным форматом резельтата.


 
homm ©   (2007-11-11 10:10) [112]

> Однако, смущает некоторая неоднородность, или разномасштабность
> утверждений. Одни из них, скажем, академического плана,
> а другие - сугубо прикладные.

огие к дельфи вообще не имеют отношения.


 
boa_kaa ©   (2007-11-11 10:15) [113]

Предлагаю еще один пункт:

На форуме делфимастер сидят люди, котрые обязаны отвечать на все вопросы.


 
boriskb ©   (2007-11-11 10:17) [114]

А где же самое главное заблуждение?
"Я программист"
:)

А вобще - ветка классная.
Только доведите до конца :)


 
isasa ©   (2007-11-11 10:17) [115]

Филиал Что.Где.Когда?


 
Leonid Troyanovsky ©   (2007-11-11 10:18) [116]


> Leonid Troyanovsky ©   (11.11.07 09:50) [110]

> Однако, смущает некоторая неоднородность, или разномасштабность
> утверждений. Одни из них, скажем, академического плана,
> а другие - сугубо прикладные.

Получается, что сначала нужно разобраться с тем, кто
есть классный программист. Например:


Классный программист никогда не ошибается, ему не нужен debuger,
Help ему не указ, MSDN - не догма, а пишет он на чистом API.

Малый размер exe, иконка в трее и защита программы - цели классного программиста.

Главный враг классного программиста - тупой юзер (и ламерье, засевшее на DM).

Главный друзья классного программиста - глобальнные переменные.

Он помнит, что за создание объектов и выделение памяти отвечает Пушкин, за все остальное - глючный Delphi.

Классный программист обрабатывает исключения  так, чтобы никто о них не узнал.

Классный никогда не сомневается в себе.


А прикладной уровень вывести куда-то в другой список,
с рабочим названием "страдания молодого чайника".

Т.о., разделение, видимо, неизбежно, и в главном списке
образовались незаполненные вакансии, ведь классно
было назвать сей документ: 10 заповедей КП.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 10:20) [117]


> boriskb ©   (11.11.07 10:17) [114]
> А где же самое главное заблуждение?
> "Я программист"

О..
Классный программист никогда не усомнится в том, что он
классный программист.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 10:35) [118]


> boa_kaa ©   (11.11.07 10:15) [113]

> На форуме делфимастер сидят люди, котрые обязаны отвечать
> на все вопросы.

Может что-то вроде:
КП никогда не платит денег за техподдержку, не покупает компоненты,
и не нанимает менее класных программистов, потому, что и
так слишком много платит своему провайдеру.

Немного, правда, громоздко.

--
Regards, LVT.


 
Virgo_Style ©   (2007-11-11 10:37) [119]

> Riply ©   (11.11.07 03:39) [90]
> > За создание объектов и выделение памяти отвечает Пушкин.
>
> А кто отвечает за освобождение памяти ?


Дантес?


 
Sergey Masloff   (2007-11-11 10:43) [120]

Leonid Troyanovsky ©   (11.11.07 10:18) [116]
>Получается, что сначала нужно разобраться с тем, кто
>есть классный программист. Например:
Да это неплохая идея

>Классный программист никогда не ошибается, ему не нужен debuger,
>Help ему не указ, MSDN - не догма, а пишет он на чистом API.
Много заповеди д.б. краткими

1. К.П никогда не ошибается
2. К.П. обрабатывает исключения так чтобы никто не узнал

Это должно войти над остальным ИМХО работать. Про иконки в трее этио частности наверное нужно опустить, про тупых юзеров включить обязательно но формулировку нужно оттачивать ;-)


 
Virgo_Style ©   (2007-11-11 10:51) [121]


> Sergey Masloff   (11.11.07 10:43) [120]
> про тупых юзеров включить обязательно но формулировку нужно
> оттачивать ;-)


хорошему программисту юзеры мешают


 
korneley ©   (2007-11-11 10:55) [122]


> Leonid Troyanovsky ©   (11.11.07 10:18) [116]

Что-то не вижу: "Классный программист никогда не будет использовать Delphi" :) Всё остальное - следствия :)


 
korneley ©   (2007-11-11 10:59) [123]

К.П. никогда не пишет никаких коментариев, потому, что он К.П. + "и так всё понятно"


 
Leonid Troyanovsky ©   (2007-11-11 11:05) [124]

Итак, свежая версия:

КП никогда не ошибается.

КП никогда не сомневается в том, что он программист.

КП пишет  на чистом API.

Малый размер exe, иконка в трее и защита программы - вот  цели КП.

Главные враги КП - тупые юзеры и ламерье, засевшее на форумах.

Главные друзья  КП - глобальнные переменные.

КП обрабатывает исключения  так, чтобы об этом никто не узнал.

КП помнит, что за создание объектов и выделение памяти отвечает Пушкин.

КП знает, что за за все остальное отвечает  глючный Delphi.

КП никогда не платит, у него и так много  должников.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 11:19) [125]


> Leonid Troyanovsky ©   (11.11.07 11:05) [124]
> Итак, свежая версия:

И вместе с заголовком:

Десять заповедей крутого прогера:

1. КП никогда не ошибается.

2. КП никогда не сомневается в том, что он программист.

3. КП пишет  на чистом API.

4. Малый размер exe, иконка в трее и защита программы - вот цели КП.

5. Главные враги КП - тупые юзеры и ламерье, засевшее на форумах.

6. Главные друзья  КП - глобальные переменные.

7. КП обрабатывает исключения  так, чтобы об этом никто не узнал.

8. КП знает, что за создание объектов и выделение памяти отвечает Пушкин.

9. КП помнит, что за за все остальное отвечает глючный Delphi.

10. КП никогда не платит, у него и так много  должников.

Фух, в основном сформировано.
Можно приступать к чайникам.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-11-11 11:27) [126]

> Leonid Troyanovsky  (11.11.2007 02:38:52)  [52]

Пункт 6 требует удаления или другой редакции - ... возвращает правильное количество ...


 
Leonid Troyanovsky ©   (2007-11-11 11:27) [127]


> 1. КП никогда не ошибается.
>
> 2. КП никогда не сомневается в том, что он программист.
>
> 3. КП пишет  на чистом API.

Немного подправим:
  1. КП - не читатель, а писатель.
  2. Настоящий КП пишет  на чистом API.
  3. КП никогда не сомневается в том, что он программист.

--
Regards, LVT.


 
boriskb ©   (2007-11-11 11:28) [128]

> Можно приступать к чайникам.

:)
Те же пункты.
Иронию убери и получатся чайники :)


 
Anatoly Podgoretsky ©   (2007-11-11 11:31) [129]

> {RASkov}  (11.11.2007 02:49:00)  [60]

Это не заблуждение, это второе счастье, часто в форме - ты не умничай, ты код давай.

Что бы статья оказалась предметной, надо четко отсеять бисер от мусора - должны остаться только заблуждения, а не популярные ошибки.


 
Leonid Troyanovsky ©   (2007-11-11 11:31) [130]


> boriskb ©   (11.11.07 11:28) [128]

> Те же пункты.
> Иронию убери и получатся чайники :)

Не, чайники не осознают себя КП, им нужно
что-то более конкретное и полезное,
видимо, в форме рекомендаций.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-11-11 11:32) [131]

> Германн  (11.11.2007 02:53:02)  [62]

> P.S. Некоторые, конечно, могут упрекнуть меня по поводу моего ника. Но это их собственная проблема.

Но только после полуночи.


 
Anatoly Podgoretsky ©   (2007-11-11 11:34) [132]

> Petr V. Abramov  (11.11.2007 02:53:03)  [63]

А вот это спорно, это надо рассматривать в стиле, который прокомментировал Толик Тенцер, когда думают, что разбитие на множество ДЛЛ, что то даст программе, кроме гипотетичного независимого обновления частей. Даже если бы это было не ООП с классами Дельфи и то это сомнительно.


 
Leonid Troyanovsky ©   (2007-11-11 11:36) [133]


> Anatoly Podgoretsky ©   (11.11.07 11:31) [129]

> Что бы статья оказалась предметной, надо четко отсеять бисер
> от мусора - должны остаться только заблуждения, а не популярные
> ошибки.

Рабочее название второй: Десять кошмаров чайника.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-11-11 11:38) [134]

> Leonid Troyanovsky  (11.11.2007 02:55:05)  [65]

И не поддавайся на провокации расширить список, это должно остаться TOP TEN ABERRATION - T10A


 
Anatoly Podgoretsky ©   (2007-11-11 11:39) [135]

> {RASkov}  (11.11.2007 03:06:09)  [69]

Перевод говорит, а вот функция нет


 
Anatoly Podgoretsky ©   (2007-11-11 11:41) [136]

> Petr V. Abramov  (11.11.2007 03:11:14)  [74]

Судя по except end; только вчера или сегодня.
Заблуждение в том, что если нет сообщения об ошибке, то и ошибки нет.


 
Anatoly Podgoretsky ©   (2007-11-11 11:43) [137]

> Petr V. Abramov  (11.11.2007 03:26:20)  [80]

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


 
Anatoly Podgoretsky ©   (2007-11-11 11:47) [138]

> Riply  (11.11.2007 03:39:30)  [90]

Старый список идиом ФИДО

http://podgoretsky.com/ftp/Language/nps/idioms.html

А идиомы как раз, что бы развеять заблуждения
Не забыть про величие истинного пути

http://podgoretsky.com/ftp/Language/nps/chaos.html


 
Anatoly Podgoretsky ©   (2007-11-11 11:48) [139]

> Riply  (11.11.2007 03:39:30)  [90]

Пушкин отвечает за всех забывчивых.


 
Anatoly Podgoretsky ©   (2007-11-11 11:48) [140]

> Германн  (11.11.2007 03:45:35)  [95]

Так ты же ИИ использовал, а не интервал


 
Anatoly Podgoretsky ©   (2007-11-11 11:51) [141]

> Германн  (11.11.2007 04:03:38)  [98]

Вот именно так отдельно и используется, в зависимости от длины интервала и без оглядки на точность. Если бы вопросы ставились так сколько полных/неполных лет, месяцев, дней в интервале, то никто бы и не затевал длинных веток, но вопрос то ставится совсем в другом плане.


 
Anatoly Podgoretsky ©   (2007-11-11 11:53) [142]

> Sergey Masloff  (11.11.2007 08:36:40)  [100]

В Дельфи и не может быть, поскольку законы подобного представления интервала - это предмет согласования. И такую функцию написать несложно после согласования, а то сам знаешь что получается. А вопросы обычно именно плана сам знаешь что получается.


 
Riply ©   (2007-11-11 12:01) [143]

А еще КП никогда не учитывает настройки системы,
он их меняет под нужды своей супер программы.


 
Anatoly Podgoretsky ©   (2007-11-11 12:01) [144]

> Sergey Masloff  (11.11.2007 09:02:42)  [102]

Ну вот же ошибка, года месяцы правильно, а вот дни нет, должно быть 105 г 1 м или 105 г 1 м 0 д
И так постоянно получается, когда пытаются работать с интервалами. И данная функция отвечает только один из форматов расчета. В известном обсуждении я приводил пример, когда соглашение говорит, что в месяце ровно 30 дней, если количество полных лет менее 1, последнее условие не всегда действует. Обычно никогда не требуется в формате лет, месяцев, дней - ограничиваются только одним или двумя первыми. В финансовых расчетах - пени, сроки и прочее оперируют или конкретной датой или днями.


 
Anatoly Podgoretsky ©   (2007-11-11 12:03) [145]

> Sergey Masloff  (11.11.2007 09:05:43)  [103]

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


 
DVM ©   (2007-11-11 12:05) [146]

Десять заповедей крутого прогера:

3. КП пишет  на чистом API.


Что в этом зазорного? Кто хочет, пусть хоть в машинных кодах пишет.

4. Малый размер exe, иконка в трее и защита программы - вот цели КП.

Малый размер исполняемого файла - это неплохо, если только это не самоцель.

6. Главные друзья  КП - глобальные переменные.

Покажите мне того, кто программируя на Делфи их совсем не использует.

7. КП обрабатывает исключения  так, чтобы об этом никто не узнал.

Есть задачи, где исключения надо все же давить. Писать, например в лог, но давить.


 
Anatoly Podgoretsky ©   (2007-11-11 12:06) [147]

> Sergey Masloff  (11.11.2007 09:24:46)  [106]

А вот и второе заблуждение, период и точная дата. Проезной действует с начальной даты по конечную. А не в течение N дней, месяцев. И нет тут никакого dd.mm.yyyy по интервалу
Иначе бы я купил 12 проездных на всю жизнь, по одному на месяц.


 
Leonid Troyanovsky ©   (2007-11-11 12:07) [148]

Чайникам:

Не используй переменные FormX.

Не используй оператор with, если четко не представляешь, как он работает.

Не разбивай приложение на exe & dll, и, тем более, не передавай между ними классы.

Знай, что RecordCount не возвращает правильное кол-во записей.

Помни, что строка начинается с 1 символа, а массив заканчивается High(a)

Помни, что деструктор не обнуляет ссылки на объект.

Удаляй записи из списка начиная с последней.

Не представляй разность двух дат в годах, месяцах и днях.

--
Regards, LVT.


 
Riply ©   (2007-11-11 12:07) [149]

>[146] DVM ©   (11.11.07 12:05)

"Не держись устава, яко слепой - стены" (с) Петр 1 :)


 
DVM ©   (2007-11-11 12:07) [150]


> Riply ©   (11.11.07 12:01) [143]


> А еще КП никогда не учитывает настройки системы,
> он их меняет под нужды своей супер программы.

Вы учитываете в своих программах, что у конечного пользователя может быть установлен крупный шрифт? Только честно.


 
Anatoly Podgoretsky ©   (2007-11-11 12:09) [151]

> Virgo_Style  (11.11.2007 10:37:59)  [119]

Дантес отвечает за зубы. У него есть последователи Дантесты


 
Leonid Troyanovsky ©   (2007-11-11 12:11) [152]


> DVM ©   (11.11.07 12:05) [146]

> Есть задачи, где исключения надо все же давить. Писать,
> например в лог, но давить.

Писать, а потом удалить - вот так должен поступить КП.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-11-11 12:12) [153]

> Leonid Troyanovsky  (11.11.2007 11:05:04)  [124]

А надо два произведения - 10 заблуждений программиста и Что такое классный программист. Тогда мук сомнения будет меньше или вообще набор статей данного направления.

Кстати если нужно, то после готовности статей могу выделить место для статей у себя на сайте.


 
Riply ©   (2007-11-11 12:12) [154]

> [150] DVM ©   (11.11.07 12:07)
Стараюсь учитывать, но вынуждена признать, что не всегда.
Но будет еще хуже, если я начну устанавливать свои шрифты :)


 
Leonid Troyanovsky ©   (2007-11-11 12:14) [155]


> Riply ©   (11.11.07 12:01) [143]

> А еще КП никогда не учитывает настройки системы,
> он их меняет под нужды своей супер программы.

Он и не такое может делать, бо заповедь 5

--
Regards, LVT.


 
Riply ©   (2007-11-11 12:17) [156]

> [155] Leonid Troyanovsky ©   (11.11.07 12:14)
> Он и не такое может делать, бо заповедь 5

Да. Не учла :)


 
palva ©   (2007-11-11 12:23) [157]

Очень многие на этом сайте считают, что ошибка находится в 17 строке.
Они заблуждаются.


 
Leonid Troyanovsky ©   (2007-11-11 12:23) [158]


> Anatoly Podgoretsky ©   (11.11.07 12:12) [153]

> Кстати если нужно, то после готовности статей могу выделить
> место для статей у себя на сайте.

Спасибо, Анатолий.
Но, если нужна аргументация, то, написание может затянуться.

--
Regards, LVT.


 
DVM ©   (2007-11-11 12:25) [159]


> palva ©   (11.11.07 12:23) [157]

Еще больше тех кто заблуждается насчет возможностей телепаторов у тех кто заблуждается насчет 17 строки.


 
Anatoly Podgoretsky ©   (2007-11-11 12:30) [160]

> DVM  (11.11.2007 12:07:30)  [150]

Иногда учитываю, иногда нет. Но это относится только к внутренним приложениям.


 
Anatoly Podgoretsky ©   (2007-11-11 12:32) [161]

> Leonid Troyanovsky  (11.11.2007 12:23:38)  [158]

Я готов принимать по мере готовности и при необходимости заменять.


 
Anatoly Podgoretsky ©   (2007-11-11 12:33) [162]

> Leonid Troyanovsky  (11.11.2007 12:23:38)  [158]

Кстати по некоторым признакам ты замахнулся на серию Заповедей, оно и правильно, в одну Заповедь все не воткнешь, придется качеством жертвовать. А заповедей не дожно быть больше или меньше 10.


 
DVM ©   (2007-11-11 12:34) [163]


> Anatoly Podgoretsky ©   (11.11.07 12:30) [160]

Я вот задумываюсь над этим всегда, но учитываю реже. Чаще просто Scaled = false ставлю. Наверное я скоро стану КП :)


 
Leonid Troyanovsky ©   (2007-11-11 12:43) [164]


> Anatoly Podgoretsky ©   (11.11.07 12:33) [162]

> Кстати по некоторым признакам ты замахнулся на серию Заповедей,
>  оно и правильно, в одну Заповедь все не воткнешь, придется
> качеством жертвовать. А заповедей не дожно быть больше или
> меньше 10.

Вот сейчас сижу и думаю, что и чайниками не отделаться,
не вяжется RecordCount с остальным. Видимо, должны
быть и заповеди разработчика БД.

Может, для чайников отдельную тему создать, бо
тяжело стало по ветке лазить.

--
Regards, LVT.


 
DVM ©   (2007-11-11 12:45) [165]


> не вяжется RecordCount с остальным

Насчет него вообще нужно уточнение. Он и правильное количество записей тоже возвращать умеет.


 
Anatoly Podgoretsky ©   (2007-11-11 12:49) [166]

> Leonid Troyanovsky  (11.11.2007 12:43:44)  [164]

Я предлагаю

10 заблуждений программиста
10 заповедей крутого программиста
10 что про чайников
delphimaster.ru - это что

Начнешь, остальные заветы появятся сами собой


 
Leonid Troyanovsky ©   (2007-11-11 12:58) [167]


> Anatoly Podgoretsky ©   (11.11.07 12:49) [166]

> Я предлагаю

По первому и четвертому пока и дебютных идей нет :)
Попробую пока на чайниках сосредоточиться.

--
Regards, LVT.


 
фуке   (2007-11-11 12:58) [168]

заблуждений программиста
Первые два
1. Идеи надо хранить в тайне, а то украдут.
2. Исходники нельзя никому доверять, а то своруют.


 
Anatoly Podgoretsky ©   (2007-11-11 13:06) [169]

> Leonid Troyanovsky  (11.11.2007 12:58:47)  [167]

Главное начать и не бросить.


 
boriskb ©   (2007-11-11 13:07) [170]

>
>
> [148] Leonid Troyanovsky ©   (11.11.07 12:07)
> Чайникам


Это так и задумано?
Стиль совсем другой.
Над "КП" явный стёб.
А чайникам настоящие советы.

Может в одном стиле надо?


 
Anatoly Podgoretsky ©   (2007-11-11 13:07) [171]

> фуке  (11.11.2007 12:58:48)  [168]

В программу обязательно должна быть встроеная, крутая и самопальная защита, а то все выше сказаное.


 
Leonid Troyanovsky ©   (2007-11-11 13:36) [172]


> boriskb ©   (11.11.07 13:07) [170]

> А чайникам настоящие советы.

> Может в одном стиле надо?

Не, слон - животное полезное, чего ж мы не понимаем :)

Пока ж идет туго:

Не используй переменные FormX.

Не используй оператор with, если четко не представляешь, как он работает.

Не разбивай приложение на exe & dll, и, тем более, не передавай между ними классы.

Не вызывай без нужды функции win32 API,  всегда вызывай Win32Check.

Не плоди потоки без меры, не забывай Synchronize.

Помни, что деструктор не обнуляет ссылки на объект.

Удаляй записи из списка начиная с последней.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 13:43) [173]


> Leonid Troyanovsky ©   (11.11.07 13:36) [172]

Прежде чем создать объект (выделить память) подумай,
кем, где и когда он будет освобожден.

--
Regards, LVT.


 
Virgo_Style ©   (2007-11-11 13:43) [174]

> Leonid Troyanovsky ©   (11.11.07 13:36) [172]
> Не используй переменные FormX.


Очень двусмысленно. Что мне мешает назвать так свою переменную?

> Не плоди потоки без меры, не забывай Synchronize.

..., и используй Synchronyze в нужных местах


 
фуке   (2007-11-11 13:44) [175]

Anatoly Podgoretsky ©   (11.11.07 13:07) [171]
Обязательно! И даже в не работающую, содержащую массу ошибок, в том числе и в защите :)))

Третье заблуждение дельфиста
DELPHI самая крутая система
12 языков программирования, которые потрясли мир ТЕМ, ЧТО НА НИХ НЕВОЗМОЖНО ПРОГРАММИРОВАТЬ
http://articles.best-host.ru/item/522/catid/3


 
Anatoly Podgoretsky ©   (2007-11-11 13:46) [176]

> Virgo_Style  (11.11.2007 13:43:54)  [174]

Видимо надо написать - не используй глобальные переменные FormX, после создания формы сразу удалить объявление из var


 
Leonid Troyanovsky ©   (2007-11-11 13:48) [177]


> Virgo_Style ©   (11.11.07 13:43) [174]

Не используй дельфийские глобальные переменные формы FormX.

Не плоди потоки переменные без меры, не забывай про вызов Synchronize
и используй его только в нужных местах.

--
Regards, LVT.


 
boriskb ©   (2007-11-11 13:50) [178]

> Не, слон - животное полезное, чего ж мы не понимаем :)

:)
Ну, раз всерьез за обучение взялся, тогда надо статистику по "Начинающим" анализировать.


 
Leonid Troyanovsky ©   (2007-11-11 13:52) [179]


> Anatoly Podgoretsky ©   (11.11.07 13:46) [176]

> FormX, после создания формы сразу удалить объявление из
> var

Тогда придется объяснять чем заткнуть Application.CreateForm.


> Не плоди потоки переменные без меры

Переменные - это лишнее вкралось, sorry.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 13:53) [180]


> boriskb ©   (11.11.07 13:50) [178]

> Ну, раз всерьез за обучение взялся, тогда надо статистику
> по "Начинающим" анализировать.

Пока надеюсь обойтись экспертной оценкой.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-11-11 14:03) [181]

> Leonid Troyanovsky  (11.11.2007 13:52:59)  [179]

Данное утверждение не касается главной формы и модуля данных. Если хочешь укажи это в совете. Также надо сразу убрать формы из автосоздаваемых, но это сразу узнает, как только удалит переменную.

Если хочешь, то кроме утверждения можно привести короткий пример, как правильно сделать.


 
Anatoly Podgoretsky ©   (2007-11-11 14:03) [182]

> Leonid Troyanovsky  (11.11.2007 13:53:00)  [180]

Иначе устанешь делать статистику.


 
Leonid Troyanovsky ©   (2007-11-11 14:18) [183]


> Anatoly Podgoretsky ©   (11.11.07 14:03) [181]

> Если хочешь, то кроме утверждения можно привести короткий
> пример, как правильно сделать.

Ну, да, придется. Получается минифак, а хотелось что-то более
компактное, лучше запоминающееся.

Удаляй модальные формы из списка auto-created, показывай так:

with TFormX.Create(nil) do // для ссылок на вызывающую форму пользуй Self
  try  
      DoSomethingBeforeShow;
      case ShowModal of
         mrOk: DoSomething1;
         mrCancel: DoSomething2;
         ..
      end;        
  finally
    Free;
  end;


--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-11-11 14:23) [184]

> Leonid Troyanovsky  (11.11.2007 14:18:03)  [183]

Ну так или заповеди, или заблуждения, или советы, с минифак


 
Leonid Troyanovsky ©   (2007-11-11 14:37) [185]


> Anatoly Podgoretsky ©   (11.11.07 14:23) [184]

> Ну так или заповеди, или заблуждения, или советы, с минифак

Попробуем так: что не нужно делать чайнику.

Не используй дельфийские глобальные переменные FormX.

Не используй оператор with, если четко не представляешь, как он работает.

Не разбивай приложение на exe & dll, и, тем более, не передавай между ними классы.

Не создавай что-то не решив: кем, где и когда оно будет освобождено.

Не вызывай без нужды функции win32 API,  всегда вызывай Win32Check.

Не плоди потоки переменные без меры, не забывай про вызов Synchronize
и используй его только в нужных местах.

Не создавай десятки  кнопок там, где достаточно одного TDrawGrid или TListBox.

Не забывай, что деструктор не обнуляет ссылки на объект.

Не удаляй записи из списка начиная с первой.

--
Regards, LVT.


 
Virgo_Style ©   (2007-11-11 14:37) [186]

> Leonid Troyanovsky ©   (11.11.07 14:18) [183]
> Ну, да, придется. Получается минифак, а хотелось что-то
> более
> компактное, лучше запоминающееся.


А ежели под краткой заповедью делать... э-э... назовем это разворачивающейся панелью. Наподобие того, как разворачиваются дети узла TreeView, надеюсь, понятно о чем я... И уже там объяснять, как надо?


 
boriskb ©   (2007-11-11 14:38) [187]

Не
Такого в инете навалом.
Ну будет 1001-ым и что?

Надо
> более
> компактное, лучше запоминающееся.

Чайники же!
Что-то вроде детских "Вредных советов"  Кто там автор?
И дети их наизусть учат. А и не учат так само запоминается.
А вот "Учебник этики" и не учат и не запоминается :)


 
Leonid Troyanovsky ©   (2007-11-11 14:46) [188]


> boriskb ©   (11.11.07 14:38) [187]

> Чайники же!
> Что-то вроде детских "Вредных советов"  Кто там автор?

О.. отличная идея. Десять вредных советов чайнику :)
Дело осталось только за десятым.

--
Regards, LVT.


 
boriskb ©   (2007-11-11 14:58) [189]

> Leonid Troyanovsky ©

Если "не идёт" - не насилуй себя :)
Настроение нужно. Само придет.
Идею ты дал.
Народ с выходных придет  - насочиняют. У нас же навалом людей с "живым" языком.:)


 
Leonid Troyanovsky ©   (2007-11-11 15:05) [190]


> boriskb ©   (11.11.07 14:58) [189]

> Народ с выходных придет  - насочиняют. У нас же навалом
> людей с "живым" языком.:)

Хорошо, на сегодня, пожалуй, хватит.
Пока рабочий вариант таков:

Десять вредных советов чайнику

Шире используй дельфийские глобальные переменные FormX.

Повсеместно используй оператор with, особенно, если вовсе не представляешь, как он работает.

Разбивай приложение на exe & dll, и смело передавай между ними классы.

Создавая что-то не заботься о том,  кем, где и когда оно будет освобождено.

Почаще пользуй  функции win32 API, и  никогда не вызывай Win32Check.

Создавай побольше потоков, наплюй на Synchronize и используй его где попало.

Вместо убогого  TListBox(TDrawGrid)  создай  лучше десяток кнопок.

Забудь про то, что деструктор не обнуляет ссылки на объект.

Записи из списка всегда  удаляй  начиная с первой.

--
Regards, LVT.


 
isasa ©   (2007-11-11 15:09) [191]

:)
По поводу delphimaster в башке крутится только одно.

Помни, сюда ты попал не по ссылке http://Что.Где,Когда.ru  ?


 
guav ©   (2007-11-11 16:23) [192]

Кандидат на заповедь КП:
Функция и процедура - это одно и то же.


 
Джо ©   (2007-11-11 16:32) [193]

> Разбивай приложение на exe & dll, и смело передавай между
> ними классы.

Разбивай приложение на exe & dll и смело передавай между ними классы [и длинные строки?]


 
KilkennyCat ©   (2007-11-11 16:49) [194]

Самое первое заблуждение, вообще-то, что Делфи - это язык программирования.


 
Джо ©   (2007-11-11 17:00) [195]

> [194] KilkennyCat ©   (11.11.07 16:49)
> Самое первое заблуждение, вообще-то, что Делфи - это язык
> программирования.

А что же это? Если не ошибаюсь, уже с 4 версии в Хелпе этот язык так и называется — Delphi language.


 
SergeyIT   (2007-11-11 17:01) [196]

Забыли!
- Не читай книжки, не пользуйся F1 и не слушай советы.
Можно первым поставить.


 
Alkid ©   (2007-11-11 17:01) [197]

А я в dll формы размещал :)
И работало :)


 
Leonid Troyanovsky ©   (2007-11-11 17:05) [198]


> Джо ©   (11.11.07 16:32) [193]

Предполагается, что это честные чайники, а не ССЗБ.

--
Regards, LVT.


 
SergeyIT   (2007-11-11 17:18) [199]

Написал о чтении книжек и вспомнил, что несколько лет назад (>5) на каком-то программерском форуме (rsdn, ixbt...) уже составляли такой список советов.


 
isasa ©   (2007-11-11 17:25) [200]

Alkid ©   (11.11.07 17:01) [197]
В принципе, я 1.5 года такой проект дорабатывал до полной готовности и, ничего, тоже живой. И проект сдали, рабочий, между прочим. И библиотеки обновлялись независимо. :)


 
Leonid Troyanovsky ©   (2007-11-11 17:33) [201]


> SergeyIT   (11.11.07 17:01) [196]

> - Не читай книжки, не пользуйся F1 и не слушай советы.

Уже совсем близко к КП, надо подумать.

--
Regards, LVT.


 
Virgo_Style ©   (2007-11-11 17:45) [202]

> Leonid Troyanovsky ©   (11.11.07 11:05) [124]
> Малый размер exe, иконка в трее и защита программы - вот
> цели КП.


А скины, скины где??


 
Leonid Troyanovsky ©   (2007-11-11 17:51) [203]


> Virgo_Style ©   (11.11.07 17:45) [202]

> А скины, скины где??

А, дейс-но :)

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 17:57) [204]

Хотелось бы вложить в советы больше конкретики,
но все время тянет на общие темы:

Оформление исходников и написание комментариев - пустая
трата времени, бо компилятор оное игнорирует.

--
Regards, LVT.


 
DVM ©   (2007-11-11 17:58) [205]


> Leonid Troyanovsky ©   (11.11.07 17:51) [203]

И обязательно чтобы его в Диспетчере Задач видно не было!
Еще оно CAD блокировать должно в идеале.


 
turbouser ©   (2007-11-11 18:01) [206]

КП никогда не обращает внимание на хинты и варнинги


 
Leonid Troyanovsky ©   (2007-11-11 18:32) [207]


> DVM ©   (11.11.07 17:58) [205]

> И обязательно чтобы его в Диспетчере Задач видно не было!
> Еще оно CAD блокировать должно в идеале.

Да, КП не чужды высокие идеалы :)

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 18:34) [208]


> turbouser ©   (11.11.07 18:01) [206]

> КП никогда не обращает внимание на хинты и варнинги

Ну, он же не читатель.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-11 18:37) [209]

Бросаю очередную бету для чайников.

Оформление исходников и написание комментариев - пустая трата времени.

Лучший способ повторного использования кода - это copy & paste.

Создавая что-то не заботься о том,  кем, где и когда оно будет освобождено.

Забудь про то, что деструктор не обнуляет ссылки на объект.

Разбивай приложение на exe & dll, и смело передавай между ними классы.

Используй дельфийские глобальные переменные формы FormX.

Почаще пользуй  функции win32 API, и  никогда не вызывай Win32Check.

Создавай побольше потоков, заморачиваться же с Synchronize не стоит.

Вместо убогого TListBox (TDrawGrid, ..)  создай  лучше десяток кнопок.

Повсеместно используй оператор with.

Записи из списка всегда  удаляй  начиная с первой.

Уже есть кандидаты на обрезание, а, еще, видимо, не все резервы в бою.
Будем смотреть с утра.

--
Regards, LVT.


 
Petr V. Abramov ©   (2007-11-11 18:59) [210]

а чего к with првязались-то?


 
Leonid Troyanovsky ©   (2007-11-11 19:05) [211]


> Petr V. Abramov ©   (11.11.07 18:59) [210]
> а чего к with првязались-то?

Fixed.
К стабильной бете добавим

Try finally/except - бесполезные примочки, лишь загромаждающие код.

--
Regards, LVT.


 
Reindeer Moss Eater ©   (2007-11-11 19:08) [212]

"Используя функцию, никогда не обращай внимания на возвращаемый ею результат."


 
Сусл ©   (2007-11-11 19:16) [213]

constructor A.Create();
begin
  inherited;
  bla-bla-bla
  FList := TList.Create();
  bla-bla-bla
end;

destructor A.Destroy();
var
  I: Inteter;
begin
  for I := 0 to FList.Count-1 do
     TObject(FList[I]).Free;
  FList.Free;
  inherited;
end;

стандатная для некоторых недоработка - конструктор мог не доработать => FList = nil, в результате неинформативное сообщение о AV.


 
Anatoly Podgoretsky ©   (2007-11-11 19:20) [214]

> Сусл  (11.11.2007 19:16:33)  [213]

А еще чаще

FList := List.Create();


 
Leonid Troyanovsky ©   (2007-11-11 19:22) [215]


> Reindeer Moss Eater ©   (11.11.07 19:08) [212]

> "Используя функцию, никогда не обращай внимания на возвращаемый
> ею результат."

Тут пересечение с  "не вызывай Win32Check".
Возможно, что стоит их как-то объединить.

--
Regards, LVT.


 
KilkennyCat ©   (2007-11-11 19:35) [216]


> Джо ©   (11.11.07 17:00) [195]
>
> А что же это? Если не ошибаюсь, уже с 4 версии в Хелпе этот
> язык так и называется — Delphi language.


А... ну, тогда американцы разговаривают на американском, канадцы на канадцком :)


 
Германн ©   (2007-11-11 19:58) [217]


> Записи из списка всегда  удаляй  начиная с первой.
>

Нет. Что-то тут не то. Из-за всего одного неудачного варианта for to делать такое обобщение.


 
homm ©   (2007-11-11 19:58) [218]

> [195] Джо ©   (11.11.07 17:00)
> > Самое первое заблуждение, вообще-то, что Делфи - это язык
>
> > программирования.
>
> А что же это? Если не ошибаюсь, уже с 4 версии в Хелпе этот
> язык так и называется — Delphi language.

С 6-й или 7-й. В пятой точно обжект паскаль.


 
Anatoly Podgoretsky ©   (2007-11-11 19:59) [219]

> Германн  (11.11.2007 19:58:37)  [217]

Из-за одного?


 
Anatoly Podgoretsky ©   (2007-11-11 20:00) [220]

> homm  (11.11.2007 19:58:38)  [218]

Ничего они исправились, от студии отняли название Дельфи, а то всегда была неодназначность и было смешно, когда C# и Дельфи студия.


 
homm ©   (2007-11-11 20:03) [221]

А за что with не любят?


 
Германн ©   (2007-11-11 20:10) [222]


> Anatoly Podgoretsky ©   (11.11.07 19:59) [219]
>
> > Германн  (11.11.2007 19:58:37)  [217]
>
> Из-за одного?
>

Имелось в виду что вариантов изначально четыре:
for to
for downto
while do
repeat until

И только первый из них ведет к граблям.


 
фуке   (2007-11-11 20:13) [223]

Leonid Troyanovsky ©   (11.11.07 18:37) [209]
Если это для чайников, то расшифровать надо, почему именно так!


 
Anatoly Podgoretsky ©   (2007-11-11 20:24) [224]

> Германн  (11.11.2007 20:10:42)  [222]

Если точно, все кроме второго. Но речь то про удаление с начала или с конца. Тот же for to нормально работает если правильно написать. Был приведен пример

[i].Free простая замена на [0].Free уже не даст ошибки


 
Anatoly Podgoretsky ©   (2007-11-11 20:25) [225]

> фуке  (11.11.2007 20:13:43)  [223]

Для чайников надо полезные советы, а для КП вредные советы.


 
фуке   (2007-11-11 22:06) [226]

Повсеместно используй оператор with.
В ЕХЕ без разницы
Записи из списка всегда  удаляй  начиная с первой.
Лучше с последней.


 
Leonid Troyanovsky ©   (2007-11-11 23:36) [227]

Десять заповедей выродились :(


Десять первичных потолочных признаков крутого прогера:

КП - не читатель, а писатель.

Настоящий КП пишет  на чистом API  и любит грязный хак.

КП нагл, но ленив.

КП никогда не сомневается в том, что он программист.

Любимые задачи КП: малый размер, иконка в трее и сокрытие от диспетчера .

Главные враги КП - тупые юзеры и засевшие на форумах ламеры.

КП ненавидит исключения  и всячески их скрывает.

КП знает, что за создание объектов и выделение памяти отвечает Пушкин.

КП уверен, что за за все остальное ответит глючный Delphi.

КП убежден, что все окружающие ему должны потому, что крут.


Будем надеятся, что чайникам, все же, достануться вредные советы.
--
Regards, LVT.


 
Petr V. Abramov ©   (2007-11-11 23:56) [228]

> Leonid Troyanovsky ©   (11.11.07 23:36) [227]
ацтой и тупая философия
надо со среднепромежуточных вариантов начинать


 
KilkennyCat ©   (2007-11-11 23:59) [229]

и еще КП любит пиво. Без пива он полный ламер.


 
homm ©   (2007-11-12 00:02) [230]

> Любимые задачи КП: малый размер, иконка в трее и сокрытие
> от диспетчера .

добавь «уменьшение использования памяти приложеним через сворачивание окна» и ответь наконец что плохово в with.


 
Leonid Troyanovsky ©   (2007-11-12 00:04) [231]

Хорошая новость, советов может быть и больше 10

Вредные советы чайнику:

Оформление исходников и написание комментариев - пустая трата времени.

Try finally/except - тупые примочки, загромаждающие код.

Лучший способ повторного использования кода - это copy & paste.

Создавая нечто не заботься о том,  как оно будет освобождено.

Разбивай приложение на exe & dll, и смело передавай между ними классы.

Используй дельфийские глобальные переменные формы FormX

Навсегда забудь про Screen, Application, DecimalSeparator и прочую лабуду.

Всегда полагай, что деструктор обнулит все твои ссылки на объект.

Почаще пользуй  функции win32 API, но никогда не вызывай Win32Check.

Создавай побольше потоков, заморачиваться же с Synchronize не стоит.

Вместо убогого TListBox (TDrawGrid, ..)  создай  лучше пару десятков кнопок.

Записи из списка всегда  удаляй  в цикле for начиная с 0.


--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-12 00:08) [232]


> homm ©   (12.11.07 00:02) [230]

> сворачивание окна» и ответь наконец что плохово в with.

Много искусно замаскированных граблей там,
и не только чайники наступают.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-12 00:12) [233]


> Petr V. Abramov ©   (11.11.07 23:56) [228]

> надо со среднепромежуточных вариантов начинать

Не знаю. Заповеди не так просто написать, тут
видимо, нужна поддержка свыше .

А моральный кодекс строителей коммунизма - не стоит.

--
Regards, LVT.


 
KilkennyCat ©   (2007-11-12 00:12) [234]

Ыщо один совет чайнику: не тащи со своим приложением длл-ки и прочую фигню, которую использовал. У реального юзверя они и так есть, а остальные - лохи.


 
Petr V. Abramov ©   (2007-11-12 00:17) [235]

Leonid Troyanovsky ©   (12.11.07 00:12) [233]
я думаю, надо не заповеди писать, а стырить идею с
http://ln.com.ua/~openxs/articles/smart-questions-ru.html

сама заповедь - чтоб не больше строки, а при клике - комментарий на 3-10 строк

а просто постебаться - хошь ветку заведу?


 
Leonid Troyanovsky ©   (2007-11-12 00:19) [236]


> homm ©   (12.11.07 00:02) [230]

> добавь «уменьшение использования памяти приложеним через
> сворачивание окна»

Это уже прием, c использованием подходящего
измерительного инструмента типа TM.

А хочется чего-нибудь легко узнаваемого, ведь начинают
примерно так "вот пишу сейчас крутую прогу типа.."

--
Regards, LVT.


 
Petr V. Abramov ©   (2007-11-12 00:21) [237]

> Petr V. Abramov ©   (12.11.07 00:17) [235]
> http://ln.com.ua/~openxs/articles/smart-questions-ru.html
один хрен никто не читает, но один из ста прочитавших и из них один из ста прочитавших внявших - потраченного времени стОят


 
Leonid Troyanovsky ©   (2007-11-12 00:26) [238]


> KilkennyCat ©   (12.11.07 00:12) [234]

> Ыщо один совет чайнику: не тащи со своим приложением длл-
> ки и прочую фигню, которую использовал. У реального юзверя
> они и так есть, а остальные - лохи.

Типа:
Знай, что инсталяторы придумали лузеры, у реальных юзеров
и так есть все библиотеки и прочая использованная тобой ерунда.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-12 00:33) [239]


> Petr V. Abramov ©   (12.11.07 00:17) [235]

> я думаю, надо не заповеди писать, а стырить идею с

А зачем повторять?

В ходе обсуждения выяснилось, что в нашей опере не хватает
страшилки и мы попытались ее описать.

Ну, а конечная цель - помочь, все же, хорошим людям :)

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-12 00:39) [240]


> Leonid Troyanovsky ©   (12.11.07 00:33) [239]

> Ну, а конечная цель - помочь, все же, хорошим людям :)

Худо-бедно, а уже есть система координат, теперь
можно хоть статистику вести, хоть формулировки оттачивать.

--
Regards, LVT.


 
Petr V. Abramov ©   (2007-11-12 00:41) [241]

> Leonid Troyanovsky ©   (12.11.07 00:33) [239]
> А зачем повторять?
не copy-paste, а наследумся от хорошего базового класса

> не хватает страшилки и мы попытались ее описать.
страшно только избранному кругу лиц

> Ну, а конечная цель - помочь, все же, хорошим людям :)
не достигается


 
Leonid Troyanovsky ©   (2007-11-12 00:48) [242]


> Petr V. Abramov ©   (12.11.07 00:41) [241]

> не copy-paste, а наследумся от хорошего базового класса

Мы ж собираем вредные советы.

> страшно только избранному кругу лиц

Ну, вот, он и объяснит, почему некто является КП.

--
Regards, LVT.


 
Petr V. Abramov ©   (2007-11-12 00:56) [243]

> Leonid Troyanovsky ©   (12.11.07 00:48) [242]
> Мы ж собираем вредные советы.
и сами или пользуемся???

> Ну, вот, он и объяснит, почему некто является КП.
тут и там и без вредных советов фейсом об table стучать надо.
и об view тоже :))))


 
Leonid Troyanovsky ©   (2007-11-12 01:07) [244]


> Petr V. Abramov ©   (12.11.07 00:56) [243]

> > Мы ж собираем вредные советы.
> и сами или пользуемся???

Иначе не убедиться, что они, дейс-но, вредные :)

--
Regards, LVT,


 
Petr V. Abramov ©   (2007-11-12 01:17) [245]

> Leonid Troyanovsky ©   (12.11.07 01:07) [244]
мы, наверное, о разном, но более некоторое время не прерываю


 
Anatoly Podgoretsky ©   (2007-11-12 09:16) [246]

> Leonid Troyanovsky  (12.11.2007 00:04:51)  [231]

А не вредные будут?


 
Rouse_ ©   (2007-11-12 09:51) [247]

Определение ламера не раскрыто :)
Предлагаю "Ламер - это вскипевший чайник" ;)


 
oldman ©   (2007-11-12 09:58) [248]


> Rouse_ ©   (12.11.07 09:51) [247]
> Определение ламера не раскрыто :)
> Предлагаю "Ламер - это вскипевший чайник" ;)


Ламер - это чайник, возомнивший себя паровозом!


 
Virgo_Style ©   (2007-11-12 10:17) [249]

про скины опять забыли.


 
@!!ex ©   (2007-11-12 10:19) [250]

Любимые задачи КП: малый размер, иконка в трее, сокрытие от диспетчера и интерфейс масимально непохожий на стандартный .


 
Leonid Troyanovsky ©   (2007-11-12 10:26) [251]


> Anatoly Podgoretsky ©   (12.11.07 09:16) [246]

> А не вредные будут?

Полезных и без того много, при желании можно найти любого качества.

А вот научное разоблачение чудес, вроде, должно бы быть,
но чего-то не придумывается как.
Читал, например, фидошную полемику ТТ, даже по dll
материал большой, не знаю как и подступиться.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-11-12 10:32) [252]


> @!!ex ©   (12.11.07 10:19) [250]

> от диспетчера и интерфейс масимально непохожий на стандартный

Это от нелюбви к юзеру.

> Virgo_Style ©   (12.11.07 10:17) [249]

> про скины опять забыли.

Не то что бы забыл, и защитой жертвуем, ради краткости.
Видимо, в этом списке д.б. самые частые и одиозные.

--
Regards, LVT.


 
Думкин ©   (2007-11-12 10:37) [253]

> и интерфейс масимально непохожий на стандартный
>
> Это от нелюбви к юзеру.

Это по задаче. Если это мультимедиа энциклопия, то в ряде окон оправдано. Тотже интерфейс в ДКМультимедиа.


 
Anatoly Podgoretsky ©   (2007-11-12 10:37) [254]

> Virgo_Style  (12.11.2007 10:17:09)  [249]

Ну что ты пристал с этими скинами, давно не актуально, вопросов очень мало по данной теме, а пользователи сами изничтожают таких программистов, вместе с их творениями.


 
Думкин ©   (2007-11-12 10:38) [255]

> а пользователи сами изничтожают таких программистов, вместе
> с их творениями.

опять же - по задаче. Не в офисных поделках - вполне себе живучи.


 
Leonid Troyanovsky ©   (2007-11-12 10:40) [256]


> Virgo_Style ©   (12.11.07 10:17) [249]

В этом портрете д.б. все узнаваемо, т.е., нужны те
самые черты, по которым этих людей и узнают.

Может чем-то другим пожертвовать ради перечня задач?
Но, с другой стороны, не должен это быть офтопик-лист.

А чего-то можно передвинуть в чайники, например,
на Пушкина многие надеются.

--
Regards, LVT.


 
@!!ex ©   (2007-11-12 10:52) [257]

Насчет иконки в трее - вопрос...
Для фоновых приложений это почти всегда очень удобно....


 
Ega23 ©   (2007-11-12 11:08) [258]

На самом деле нужен FAQ.
И первой строчкой, очень жирными буквами:
В DBGrid НЕТ НИКАКИХ ДАННЫХ!


 
Reindeer Moss Eater ©   (2007-11-12 11:10) [259]

самое большое дельфийское заблуждение  - это то, что можно побороть все дельфийские заблуждения.


 
Virgo_Style ©   (2007-11-12 11:35) [260]

Никогда не следует описывать ошибку. "Не работает!" или "Выдает ошибку!" - это более чем подробное описание проблемы.

Сообщение Access V... (забыл, как пишется) указывает на ошибки в Delphi или в Windows.

Хотя это кое в чем пересекается с уже написанным.


 
Leonid Troyanovsky ©   (2007-11-12 11:36) [261]


> Ega23 ©   (12.11.07 11:08) [258]

> На самом деле нужен FAQ.

Дык, есть такие, и не один.

> В DBGrid НЕТ НИКАКИХ ДАННЫХ!

Да. Но, это, IMHO, не имеет того прикладного значения,
как, скажем, возможная неактуальность RecordCount.

В факе не очень просто найти то, чего делать не надо
или как делать не стоит, там, в основном, howto.

--
Regards, LVT.


 
Думкин ©   (2007-11-12 11:37) [262]

List index out of bounds - это фича, а не баг.


 
Ega23 ©   (2007-11-12 12:00) [263]


> Да. Но, это, IMHO, не имеет того прикладного значения,
> как, скажем, возможная неактуальность RecordCount.


Ну тогда до кучи:
1. Next ставить при обходе DataSet
2. Список букмарков при переоткрытии запроса не обязан быть валидным
3. RecordCount известен только тогда, когда данные профетчены до конца
4. TTable - ЗЛО
5. Используйте параметры!


 
Ega23 ©   (2007-11-12 12:03) [264]

А, вот ещё:
6. Число - всегда число. Различается его строковое представление.
7. Читайте внимательно, что такое TDateTime
8. Отсчёт дней в Borland начинается с 30.12.1899, а в MSSQL - с 01.01.1900


 
Leonid Troyanovsky ©   (2007-11-12 12:16) [265]


> Ega23 ©   (12.11.07 12:00) [263]

> Ну тогда до кучи:

Это в тему. Правда, мне кажется, что подобное, за некоторыми
исключениями, адресуется уже не чайникам.
Тут, скорее всего, нужен список граблей на полном серьезе,
бо предполагаются подготовленные читатели.

А про 4 были и более актуальные утверждения про ADO?

Правда сказать, за это я б не взялся, только если только обсудить :)

--
Regards, LVT.


 
Ega23 ©   (2007-11-12 12:37) [266]


> А про 4 были и более актуальные утверждения про ADO?


Дело в самой идеологии TTable. Для Однопользовательской СУБД - ещё можно использовать. Для многопользовательской - я бы не рискнул.


 
Ega23 ©   (2007-11-12 12:38) [267]


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


Вот ещё:
DataSet.DisableControls;
try
....
finally
 DataSet.EnableControls;
end;


 
Rouse_ ©   (2007-11-12 12:41) [268]

Строку в PChar забыли ;)


 
Сергей Суровцев ©   (2007-11-12 12:45) [269]

Не прелюбопытствуй.

>Leonid Troyanovsky ©   (12.11.07 00:33) [239]
>Ну, а конечная цель - помочь, все же, хорошим людям :)

Мелковато. Цель должна быть - спасти мир.


 
Leonid Troyanovsky ©   (2007-11-12 12:47) [270]


> Ega23 ©   (12.11.07 12:38) [267]

> Вот ещё:

Ну, Олег, я ж говорю, не потяну я все :)
хоть бы с чайниками разобраться,
по БД д.б. что-то тематическое, IMHO.

--
Regards, LVT.


 
boriskb ©   (2007-11-12 13:01) [271]

> [269] Сергей Суровцев ©   (12.11.07 12:45)
> Не прелюбопытствуй.


Еще одна прекрасная идея - подобным образом переделать библейские заповеди.
Тяжело наверное...
Но было бы просто здорово!!


 
Leonid Troyanovsky ©   (2007-11-12 13:02) [272]

Вернемся к чайникам.

Оформление исходников и написание комментариев - пустая трата времени.

Самое бредовое чтиво это Delphi Help & VCL sources, да и MSDN.

Помни, что за создание объектов и выделение памяти отвечает А.С.Пушкин.

Забыв разрушить объекты, освободить память или закрыть хендлы -
не беспокойся, Пушкин ответит за все.

Всегда полагай, что деструктор обнулит все твои ссылки на объект.

Сообщение Access Violation относится не к твоим программам.

Try finally/except - тупые примочки, загромождающие код.

Лучший способ повторного использования кода - это copy & paste.

Разбивай приложение на exe & dll и смело передавай между ними классы.

Используй дельфийские глобальные переменные формы FormX.

Навсегда забудь про Screen, Application, DecimalSeparator и прочую лабуду.

Почаще пользуй  функции win32 API, но никогда не вызывай Win32Check.

Создавай побольше потоков, заморочиваться же с Synchronize не стоит.

Убогий TListBox (TDrawGrid, ..) замени парой десятков кнопок, Edit.

Записи из списка всегда  удаляй  в цикле for начиная с 0.

List index out of bounds - это фича, а не баг.

Инсталяторы придумали лузеры, у твоих юзеров и так все есть.

Запомни, что типы PChar & String друг к другу не приводятся.

Пушкина мы забрали, КП его, видимо, все равно, не знают.

Чувствую, что для чайников нужна новая ветка,
портрет КП  и пр. мы пока оставим здесь.

--
Regards, LVT.


 
Reindeer Moss Eater ©   (2007-11-12 13:04) [273]

Еще один яркий экземпляр
http://delphimaster.net/view/2-1194516434/


 
Игорь Шевченко ©   (2007-11-12 13:07) [274]

Leonid Troyanovsky ©   (12.11.07 13:02) [272]

Для записи в файл в record надо использовать string без размера.


 
Anatoly Podgoretsky ©   (2007-11-12 13:09) [275]


> Сообщение Access V... (забыл, как пишется) указывает на
> ошибки в Delphi или в Windows.

Это с в VC, Access D - это в Дельфи, а Access W - это в Windows


 
Leonid Troyanovsky ©   (2007-11-12 13:09) [276]


> boriskb ©   (12.11.07 13:01) [271]

> Тяжело наверное...

Во-первых тяжело (если не поддержат свыше),
а во-вторых, может получиться карикатура.

--
Regards, LVT.


 
@!!ex ©   (2007-11-12 13:09) [277]

> [274] Игорь Шевченко ©   (12.11.07 13:07)

Дельфи не откомпилит это...


 
oldman ©   (2007-11-12 13:10) [278]

Что-там еще часто спрашивали:
про утечки памяти
про "чем free отличается от destroy"
про "где найти русифицированный дельфи, или хотя-бы хелп"
не помню, но что-то еще...


 
Anatoly Podgoretsky ©   (2007-11-12 13:11) [279]


> В факе не очень просто найти то, чего делать не надо
> или как делать не стоит, там, в основном, howto.

Это вообще то не ЧАВО, нет вопрос - нет ответа. А вот howto - это ответ до задания вопроса, тем более часто. Разновидность Tips & Tricks - которым по сути являются большинство "ЧАВО"


 
Думкин ©   (2007-11-12 13:12) [280]


> oldman ©   (12.11.07 13:10) [278]

Assigned(Object) всегда говорит о существовании объекта.


 
Anatoly Podgoretsky ©   (2007-11-12 13:12) [281]


> List index out of bounds - это фича, а не баг.

А не установка проверки диапазонов в настройках - это пофигизм.


 
Ega23 ©   (2007-11-12 13:13) [282]


> Leonid Troyanovsky ©   (12.11.07 13:02) [272]


добавь ещё:

При создании новой dll комменарий, в котором про SharedMem написано - для дебилов.


 
Anatoly Podgoretsky ©   (2007-11-12 13:13) [283]

> Ega23  (12.11.2007 12:00:23)  [263]

Параметры, параметры, параметры - давно стали рефреном.


 
Anatoly Podgoretsky ©   (2007-11-12 13:14) [284]

> Ega23  (12.11.2007 12:03:24)  [264]

6. Число - всегда число. Различается его строковое представление.

Число оно и в Африке число, а представлений много.


 
oldman ©   (2007-11-12 13:15) [285]

Кстати, спасибо за ветку!
Без нападков по поводу флуда можно оторваться на чайниках и ламерах!!!
:)


 
Думкин ©   (2007-11-12 13:16) [286]


> Ega23 ©   (12.11.07 13:13) [282]

При создании новой DLL, первым делом удаляй дебильный комментарий сверху.


 
oldman ©   (2007-11-12 13:16) [287]

Вспомнил:
Как мне запустить свою программу на компьютере, на котором не установлен Delphi?
:)


 
Ega23 ©   (2007-11-12 13:18) [288]


> oldman ©   (12.11.07 13:16) [287]


:))))))))  Точно, обязательно добавить надо


 
Anatoly Podgoretsky ©   (2007-11-12 13:19) [289]

> Leonid Troyanovsky  (12.11.2007 13:02:32)  [272]

Указывать версию Дельфи, базу данных чайник не должен, это ниже его достоинства.


 
Ega23 ©   (2007-11-12 13:26) [290]


> Указывать версию Дельфи, базу данных чайник не должен, это
> ниже его достоинства.


+ DAC


 
Anatoly Podgoretsky ©   (2007-11-12 13:33) [291]

> Ega23  (12.11.2007 13:13:42)  [282]

Это уже есть - сморти про комментарий и поэтому согласно этого правильные пацаны убирают комментарий не читая, тем более, что там какие то закорючки.


 
Algol   (2007-11-12 13:40) [292]

до кучи
1)
procedure incLength(a: array of integer)
begin
 setLength(a, length(a)+1);
end;
2)
a, b:real;
...
if(a=b)then ...


 
Virgo_Style ©   (2007-11-12 13:41) [293]

> Leonid Troyanovsky ©   (12.11.07 13:02) [272]
> Навсегда забудь про Screen, Application, DecimalSeparator
> и прочую лабуду.


Ну неправда же, как раз DecimalSeparator"у надо сразу присвоить свое значение, ибо нефиг. А если речь о dll, то и Application"у.


 
Leonid Troyanovsky ©   (2007-11-12 13:45) [294]


> Anatoly Podgoretsky ©   (12.11.07 13:19) [289]

> Указывать версию Дельфи, базу данных чайник не должен, это
> ниже его достоинства.

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

Анатолий, а у тебя нет мыслей по-поводу представления
доказательств вредности?
И как быть, если собраны не все  доказательства,
т.е. как открытая тема?

--
Regards, LVT.


 
Reindeer Moss Eater ©   (2007-11-12 14:10) [295]

Все ваши вредные советы в текущей редакции предназначаются чайникам, уже переставшим быть чайниками. Просто чайникам они так же малопонятны как и F1.


 
Сергей М. ©   (2007-11-12 14:12) [296]

К Интернету можно подключиться,


 
Сергей М. ©   (2007-11-12 14:19) [297]

Указание stdcall при объявлении экспортируемой функции обязательно, патамушта так нада.
Но при этом за указание соответствующего stdcall в вызывающем коде ответственен А.С.Пушкин.


 
Leonid Troyanovsky ©   (2007-11-12 14:22) [298]


> Reindeer Moss Eater ©   (12.11.07 14:10) [295]

> Все ваши вредные советы в текущей редакции предназначаются
> чайникам, уже переставшим быть чайниками.

Например?
Да, и чайники бывают разные.

Я, например, и не возьмусь дистанционно научить скажем, юриста,
трем составным частям ООП. Пусть это сделают, например,
авторы "Дельфи за 60 секунд".

--
Regards, LVT.


 
@!!ex ©   (2007-11-12 14:29) [299]

> трем составным частям ООП.

А научите меня?
В смысле скажите что это за части..
Спасибо.


 
Alkid ©   (2007-11-12 14:31) [300]


> А научите меня?
> В смысле скажите что это за части..
> Спасибо.

Инкапсуляция, Наследование, Полиморфизм три части эти есть, юный падаван :)


 
Сергей М. ©   (2007-11-12 14:32) [301]

События сами по себе не происходят и никем не возбуждаются, их назначают.

За разыменование переменной указательного типа там, где это явно необходимо, ответственен А.С.Пушкин или его ВРИО - компилятор


 
antonn ©   (2007-11-12 14:32) [302]


> К Интернету можно подключиться,

запросто %) нужно лишь подписать договор с провайдером и настроить коннект, который и вызывать. Т.ч. утверждение ооочень избирательное для каждого случая хотения подключиться к инету :)


 
@!!ex ©   (2007-11-12 14:33) [303]

> [300] Alkid ©   (12.11.07 14:31)

Понятно. Я думал что другое... :(


 
Сергей М. ©   (2007-11-12 14:35) [304]

Возвращать среди результатов вызова подпрограммы адреса ее локальных переменных - святое дело.


 
Сергей М. ©   (2007-11-12 14:37) [305]


> antonn ©   (12.11.07 14:32) [302]


Напиши об этом трактат.


 
Leonid Troyanovsky ©   (2007-11-12 14:39) [306]


> Сергей М. ©   (12.11.07 14:12) [296]

> К Интернету можно подключиться,


Это заблуждение, все же, не имеет такой прикладной направленности,
как скажем писание библиотек.
Ну, считает некто, что оное подключение есть, да и бог с ним.
Когда он прозреет, осмысленность вопросов возрастет, IMHO.

> Указание stdcall при объявлении экспортируемой функции обязательно,
>  патамушта так нада.
> Но при этом за указание соответствующего stdcall в вызывающем
> коде ответственен А.С.Пушкин.

Я бы поберег силы АС путем увеличения нагрузки на самом
ненаписании длл.
Т.е., если чайник сумеет, например, убедить меня в том, что
дейс-но необходимо написание оной, то это будет уже не чайник.

--
Regards, LVT.


 
Сергей Суровцев ©   (2007-11-12 14:40) [307]

>boriskb ©   (12.11.07 13:01) [271]
>Еще одна прекрасная идея - подобным образом переделать библейские
>заповеди. Тяжело наверное...

Ну почему?

Возлюби F1 и (список литературы) как самое себя.

Не возжелай совета ближнего своего, ни кода его, пока не все испробовал сам.

А из вредных:

Чтение отнимает время и портит зрение. Всегда спрашивай любую мелочь.

Никогда не формулируй понятно свой вопрос. Доставь людям удовольствие от угадывания его смысла.


 
Leonid Troyanovsky ©   (2007-11-12 14:50) [308]


> Сергей М. ©   (12.11.07 14:35) [304]

> Возвращать среди результатов вызова подпрограммы адреса
> ее локальных переменных - святое дело.

:) а чего, на самом деле, возвращают?

--
Regards, LVT.


 
Сергей М. ©   (2007-11-12 14:52) [309]


> Ну, считает некто, что оное подключение есть, да и бог с ним


Тут ведь сам факт важен (в тон тобой же предложенной теме) - это весьма распространенное заблуждение, и далеко не только среди адептов Делфи.


 
Сергей М. ©   (2007-11-12 14:55) [310]


> Leonid Troyanovsky ©   (12.11.07 14:50) [308]


> а чего, на самом деле, возвращают?


Мало ли чего они возвращают)


 
Leonid Troyanovsky ©   (2007-11-12 15:09) [311]


> Сергей М. ©   (12.11.07 14:52) [309]

> Тут ведь сам факт важен (в тон тобой же предложенной теме)
> - это весьма распространенное заблуждение, и далеко не только
> среди адептов Делфи.

Да, тут, тема эволиционировала очень быстро.
Пришлось отказаться от многих изначальных замыслов.
Пока решили сделать портрет "крутого прогера" для отделения
негативных психологических составляющих,
и вредные советы для чайников для описания распространненых заблуждений и связанных с ними ошибок.

Т.е., я пошел открывать ветку для последнего.

--
Regards, LVT.


 
Reindeer Moss Eater ©   (2007-11-12 15:11) [312]

Например?
Да, и чайники бывают разные.


например все!


 
Leonid Troyanovsky ©   (2007-11-12 15:32) [313]


> Reindeer Moss Eater ©   (12.11.07 15:11) [312]

> например все!

Да, мы все чайники.
Каждый из нас по-своему чайник.

Если человек хочет, например, dll, то и в списке
он сумеет найти схожее, если это, конечно, не КП.

--
Regards, LVT.


 
Проходил мимо   (2007-11-12 15:34) [314]

> Leonid Troyanovsky ©   (11.11.07 00:26)
...
> 3. Формы можно размещать в dll


А разве нельзя? Что здесь не так?


 
@!!ex ©   (2007-11-12 15:36) [315]

> [314] Проходил мимо   (12.11.07 15:34)

Можно, но не нужно.


 
Проходил мимо   (2007-11-12 15:44) [316]


> @!!ex ©   (12.11.07 15:36) [315]
>
> Можно, но не нужно.


Почему?


 
Leonid Troyanovsky ©   (2007-11-12 15:55) [317]


> Проходил мимо   (12.11.07 15:44) [316]

> Почему?

Если ты чайник, то вопрос к "начинающим",
если нет, проходи себе с богом.

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2007-11-12 15:55) [318]

> Leonid Troyanovsky  (12.11.2007 13:45:54)  [294]

Нет, но я с интересом наблюдаю :-)


 
Anatoly Podgoretsky ©   (2007-11-12 15:58) [319]

> Leonid Troyanovsky  (12.11.2007 15:09:11)  [311]

> Т.е., я пошел открывать ветку для последнего.

Пока ты ходил, уже новые появились.


 
Опять пришел   (2007-11-13 08:22) [320]


> Leonid Troyanovsky ©   (12.11.07 15:55) [317]

Угу. Т.е. вместо внятного ответа "проходящий" получает совет пойти плодить ветки? Или внятного ответа попросту нет?


 
Юрий Зотов ©   (2007-11-13 08:33) [321]

> Опять пришел   (13.11.07 08:22) [320]

Формы (и прочие объекты VCL) размещать в DLL можно. И даже передавать их в EXE и получать обратно - тоже можно.

Но делать это надо умеючи, четко понимая весь механизм. Иначе запросто можно огрести кучу чудес. Поэтому начинающим - настоятельно НЕ рекомендуется. Пока не перестанут быть начинающими. В этом и есть смысл совета.

Теперь вопрос к Вам - разве все это было Вам непонятно? Или, быть может, Вам непонятна, почему для этих "вредных советов" выбрана именно такая форма и стиль? Или просто плохое настроение и обязательно нужно хоть к чему-нибудь придраться?


 
Опять пришел   (2007-11-13 09:29) [322]


> Юрий Зотов ©   (13.11.07 08:33) [321]

ОК. Спасибо.
Непонятно было следующее: чуть ли не в первом посте мастер указал, что формы в dll размещать нельзя. Именно НЕЛЬЗЯ, а не "можно, только если четко понимаешь механизм". А поскольку имею привычку скорее прислушиваться к советам мастеров, чем огульно подвергать их слова сомнению... здесь я и подумал - может чего недопонимаю...


 
Юрий Зотов ©   (2007-11-13 09:44) [323]

> Опять пришел   (13.11.07 09:29) [322]

> Именно НЕЛЬЗЯ, а не "можно, только если четко понимаешь механизм".

Понимаете, нередко начинающие задают вопросы, ответить на которые им просто невозможно. Во-первых, потому, что ответ потребует ОЧЕНЬ много времени, так как сначала придется ОЧЕНЬ многое разжевать. Во-вторых, потому, что даже и в этом случае начинающий вряд ли поймет ответ - и все окажется бесполезно.

В таких случаях часто есть смысл ничего не объяснять, а просто сказать - делай вот так, а вот так - не делай. В расчете на то, что со временем человек или сам поймет, или достигнет такого уровня, когда ему уже будет можно объяснить.

Ведь и в школе нами поначалу сказали - на ноль делить нельзя. Нельзя - и все. И только в старших классах рассказали о понятии "бесконечность".


 
Petr V. Abramov ©   (2007-11-13 09:52) [324]

> Юрий Зотов ©   (13.11.07 09:44) [323]
http://delphimaster.net/view/2-1194516434/

не думаю, что человеку полегчало :)


 
Anatoly Podgoretsky ©   (2007-11-13 10:02) [325]

> Опять пришел  (13.11.2007 08:22:20)  [320]

Пришел, ушел, двадцать раз отжаться.


 
Anatoly Podgoretsky ©   (2007-11-13 10:02) [326]

> Опять пришел  (13.11.2007 09:29:22)  [322]

Ничего, напишем заблуждение и для заблуждающихся.


 
Anatoly Podgoretsky ©   (2007-11-13 12:18) [327]

> Юрий Зотов  (13.11.2007 09:44:23)  [323]

> Ведь и в школе нами поначалу сказали - на ноль делить нельзя. Нельзя - и все. И только в старших классах рассказали о понятии "бесконечность".

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


 
Leonid Troyanovsky ©   (2007-11-16 11:03) [328]

Hi, All!

Вот что осталось в результате:

Портрет КП

КП - не читатель, а писатель.
Настоящий КП пишет  на чистом API  и грязном asm.
КП нагл,  ленив, любит пиво.
КП не сомневается в том, что он программист.
Любимые задачи КП: малый размер exe, иконка в трее и сокрытие от диспетчера.
Враги КП - тупые юзеры и засевшие на DM ламеры.
КП уверен, что во всех ошибках виноват глючный Delphi.
КП убежден, что все окружающие ему должны.

Если чего упущено, напомните, плиз.

--
Regards, LVT.



Страницы: 1 2 3 4 5 6 7 8 9 
вся ветка

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

Наверх





Память: 1.4 MB
Время: 0.052 c
8-1170999683
Belkam
2007-02-09 08:41
2007.12.16
Слайд шоу


11-1181489135
=BuckLr=
2007-06-10 19:25
2007.12.16
Про DeleteLines


15-1195538948
Новый_
2007-11-20 09:09
2007.12.16
record


15-1195017660
Fin
2007-11-14 08:21
2007.12.16
Запуск программ без цифровой подписи в Viste.


2-1195825863
AIK
2007-11-23 16:51
2007.12.16
События сворачивания окна





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский