Войти
ПрограммированиеФорумОбщее

Вопросы по Delphi (32 стр)

Страницы: 131 32 33 3456 Следующая »
#465
13:45, 3 авг 2022

Да нет, там вот так

      biBitCount = BitCounts[Value];

Value понятное дело TPixelFormat.

#466
13:48, 3 авг 2022

А, хм. Тут хитрее сделано.

  case Value of
    pfDevice:
      {
        HandleType = bmDDB;
        Exit;
      }
    pfCustom: InvalidGraphic(@SInvalidPixelFormat);
  else
    FillChar(DIB, sizeof(DIB), 0);
    DIB.dsbm = FImage.FDIB.dsbm;
    KillPal = False;
    with DIB, dsbm, dsbmih do
    {
      bmBits = nil;
      biSize = sizeof(DIB.dsbmih);
      biWidth = bmWidth;
      biHeight = bmHeight;
      biPlanes = 1;
      biBitCount = BitCounts[Value];

Но это всё равно не отменяет вопроса, что за хитрые массивы в Делфи, которые начинаются с еденицы.

#467
14:01, 3 авг 2022

g-cont
> Но это всё равно не отменяет вопроса, что за хитрые массивы в Делфи, которые
> начинаются с еденицы.
Они с чего задал с того и начинаются. Хочешь с единицы, хочешь с -250.

#468
14:02, 3 авг 2022

g-cont
> что за хитрые массивы в Делфи, которые начинаются с еденицы.

Обычные нединамические массивы.
Всегда так было.
array[n..m] of Type;

#469
14:19, 3 авг 2022

Вот такой еще любопытный вопрос. На данный момент портирую graphics.pas, там много работы с виндовыми структурамиб BITMAP, DIBSECTION и аналогичными. И для уменьшения объема кода активно используется with. Но! В этих структурках дофига переменных с почти одинаковыми названиями, Width, Height, Bpp и так далее. А всё отличие - в префиксе. bm, bi и так далее. И тут я задумался. Это ведь не венгерка, эти буквы не несут никакой полезной информации. И судя по всему их ввели именно для Delphi и для директивы with. Просто ничем иным я это не могу объяснить.

#470
14:23, 3 авг 2022

g-cont
Это приехало из Си без плюсов. Наверное структуры были портированы оттуда. В С не могут использоваться одинаковые имена, даже если они в разных структурах.

#471
14:58, 3 авг 2022

Zab
значит это очень и очень старая версия Си, возможно даже 1973-го года. Там кучи всего не было, даже комментариев с двойным слэшем.

#472
0:20, 4 авг 2022

Super_inoy
> Зато компилирует в сотню раз быстрее.
Ну да, не 10 сек а 1 сек компилится. Разница есть, но на разработку не особо влияет.

#473
(Правка: 1:44) 1:43, 4 авг 2022

samrrr
> Ну да, не 10 сек а 1 сек компилится. Разница есть, но на разработку не особо
> влияет.
Влияет на формирование антипаттерна постоянного тестирования по любому чиху и программирования рандомным кодом с компиляцией и исправлением.

+ Показать
#474
6:15, 4 авг 2022

Super_inoy
> программирования рандомным кодом с компиляцией и исправлением
Этож прям как я иногда делаю, вуду программирование называется.

#475
9:01, 4 авг 2022

TDD ещё есть, там тот же принцип. написал тест, убедился что красный, написал код, убедился что зелёный. Повторить.

#476
11:41, 4 авг 2022

samrrr
> Этож прям как я иногда делаю, вуду программирование называется.
Так это норма же, просто плюсы из-за долгого компила за такое по сути по рукам бьют.
Поэтому плюсы говно :)

#477
12:07, 4 авг 2022
  TWMSysCommand = packed record
    Msg: Cardinal;
    case CmdType: Longint of
      SC_HOTKEY: (
        ActivateWnd: HWND);
      SC_KEYMENU: (
        Key: Word);
      SC_CLOSE, SC_HSCROLL, SC_MAXIMIZE, SC_MINIMIZE, SC_MOUSEMENU, SC_MOVE,
      SC_NEXTWINDOW, SC_PREVWINDOW, SC_RESTORE, SC_SCREENSAVE, SC_SIZE,
      SC_TASKLIST, SC_VSCROLL: (
        XPos: Smallint;
        YPos: Smallint;
        Result: Longint);
  end;

А вот эту штуку как рассматривать? Просто юнион с именем?

#478
12:10, 4 авг 2022

g-cont
Ду прочти уж книжку по Паскаль, короче чем твоя тема

#479
12:10, 4 авг 2022

g-cont
да, CmdType: Longint с точки зрения компилятора - просто поле, соответствие никак не контролируется, чисто для читаемости.

Страницы: 131 32 33 3456 Следующая »
ПрограммированиеФорумОбщее