Конференция "Прочее" » FixInsight for Delphi
 
  • Inovet © (02.05.15 23:11) [140]
    Что-то там такое. В первом случае может быть вызван конструктор, присвоение во временную переменную, сравнение с ней, инкремент первой, возврат из операции инкрементированной переменной. Во втором работа с одним экземпляром.

    Паскалевсикй цикл с постусловием требует каждый раз вспоминания его особенности.
  • Игорь Шевченко © (03.05.15 00:33) [141]
    Sha ©   (02.05.15 15:49) [137]


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


    И для соответствия этой мнемонике существует два разных оператора проверки условия продолжения цикла, потому они в разных местах записи цикла находятся ?
  • Германн © (03.05.15 02:40) [142]

    > И для соответствия этой мнемонике существует два разных
    > оператора проверки условия продолжения цикла, потому они
    > в разных местах записи цикла находятся ?

    Ну вроде бы/как бы ДА. Если сначала нужно проверить некое условие, а потом что-то делать в зависимости от результата проверки, то while.
    Но если нужно обязательно что-то сделать хоть один раз, то почему бы и не repeat?
  • Sha © (03.05.15 11:13) [143]
    > Игорь Шевченко ©   (03.05.15 00:33) [141]

    Мнемоника помогает запомнить, что и как.
    Она  подбирается так, чтобы соответствовать чему-либо, а не наоборот.
  • Kerk © (03.05.15 20:21) [144]
    Было бы удобно еще иметь в Delphi конструкцию вроде while-else, то есть цикл и отдельная ветка для случаев, когда он ни разу не выполнился.

    Вроде

    while i > 0 do
     Dec(I)
    else
     ShowMessage('I <= 0');
  • Inovet © (04.05.15 04:40) [145]
    > [144] Kerk ©   (03.05.15 20:21)

    Имхо, Оккама знал об этом.
  • eldorad © (04.05.15 07:45) [146]
    Согласен с Kerk
  • Sha © (04.05.15 09:20) [147]
    несогласен с eldorad )
  • Юрий Зотов © (04.05.15 09:28) [148]
    И строковый case.
    :o)
  • eldorad © (04.05.15 11:55) [149]
    Согласен с дядей Юрой. Впрочем конструкция множественного else if не занимает больше места.
  • Kerk © (04.05.15 12:20) [150]
    Для case компилятор мог бы какие-нибудь оптимизации применять.
  • eldorad © (04.05.15 12:37) [151]
    Строковый case с регулярками
  • Германн © (05.05.15 00:48) [152]

    > Юрий Зотов ©   (04.05.15 09:28) [148]
    >
    > И строковый case.

    Ну да. А то "женщины уже в баскетбол играют!" (с)
    То бишь я хотел сказать, что в Лазарусе уже есть такой case. :)
  • q1w2e © (15.05.15 18:08) [153]
    С Format-ом есть баг. Ругается на

    Result := Format('uif_%.*x', [8, I]);

    Хотя количество аргументов именно то, которое должно быть - два.
  • q1w2e © (15.05.15 18:13) [154]
    и индесацию параметров тоже не понимает:

    Lines.Add(Format(#9#9'<%s>%d</%0:s>', [xme_FilePos, FilePos]));
  • Kerk © (15.05.15 22:22) [155]

    > q1w2e

    У тебя похоже старая версия. Обновись.
  • q1w2e © (19.05.15 18:00) [156]
    Да, так и есть. После обновления ушло.

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

    Где-то можно об этом почитать?
  • Дмитрий Белькевич © (20.05.15 12:31) [157]
    >Как это переписать так же лаконично через while?


    k := FindFirst(RootPath + 'Html\Report*.html', faReadOnly, SearchRec);
    while k = 0 do
    begin
     ShowMessage(SearchRec.Name);
     k := FindNext(SearchRec);
    end;


    ?
  • Дмитрий Белькевич © (20.05.15 12:36) [158]
    >Некрасиво, конечно, но если нормального способа не предусмотрено, то ничего другого не остается.

    Я у себя делал специальный таймер TThreadTimer - работающий в параллельном потоке и вызывающий код в параллельном потоке, добавил методы Start, Stop и Restart. Почему что-то такое не добавить в VCL/FMX? Неудобно же как есть.
  • Kerk © (23.05.15 13:42) [159]

    > q1w2e ©   (19.05.15 18:00) [156]
    >
    > Да, так и есть. После обновления ушло.
    >
    > Но что-то я не разобрался как обучить утилиту командной
    > строки разбору условной компиляции. Подозреваю, что как-
    > то это можно сделать .ficfg-файл.
    >
    > Где-то можно об этом почитать?

    Директивы компиляции в командной строке можно указывать с помощью параметра --defines
    А написано про это в документации :)
 
Конференция "Прочее" » FixInsight for Delphi
Есть новые Нет новых   [134433   +22][b:0.001][p:0.001]