dnekrasov

Пользователи
  • Публикации

    80
  • Зарегистрирован

  • Посещение

  • Days Won

    6

dnekrasov last won the day on 16 ноября 2016

dnekrasov had the most liked content!

О dnekrasov

  • Звание
    Продвинутый пользователь
  • День рождения 21.02.1974

Информация

  • Пол
    Мужчина
  • Город
    Минск

Посетители профиля

352 просмотра профиля
  1. Очень советовал бы обратить своё внимание на TTask из System.Threading - ну ооччеень полезный класс Можете посмотреть запись вебинара где про него подробно рассказывают
  2. Попробуйте в его событии OnWork просто вызвать Abort (при определенном условии, конечно) А вообще у меня прекрасно отрабатывает следующее: if Assigned(FIdFTP) and FIdFTP.Connected then begin // Cancel FTP upload FIdFTP.Abort; FIdFTP.DisconnectNotifyPeer; FIdFTP.Disconnect; end; if Assigned(FIdHTTP) and FIdHTTP.Connected then begin // Cancel HTTP upload FIdHTTP.DisconnectNotifyPeer; FIdHTTP.Disconnect; end;
  3. Здесь проблема не в размытии а в используемом алгоритме ресамплинга. Delphi, похоже, использует "по соседним пикселям". Вам же надо - бикубический. Единственное что можно посоветовать - найдите какой-нибудь пакет компонент для работы с графикой или сами реализуйте этот алгоритм.
  4. Выложите куда-нибудь картинку, которую вы ресайзите, а лучше проект
  5. Все просто: bmpDest.Canvas.BeginScene; try bmpDest.Canvas.DrawBitmap(bmpSource, RectF(0, 0, bmpSource.Width, bmpSource.Height), RectF(0, 0, bmpDest.Width, bmpDest.Height), 1, False); finally bmpDest.Canvas.EndScene; end; и в bmpDest вы получите Вашу битмапку сглаженную и с новыми размерами
  6. Canvas.DrawBitmap - последний параметр этого метода отвечает за сглаживание.
  7. Цвет пикселя битмапки получить очень просто: var bmd: TBitmapData; bmp: TBitmap; begin ... if bmp.Map(TMapAccess.ReadWrite, bmd) then try // здесь работаем с TBitmapData - у него есть все что нужно, чтобы работать с пикселями finally bmp.Unmap(bmd); end; end;
  8. Судя по скриншоту - вы просто не видите куда и что добавлять. Откройте Wiew->Structure (Shift+Alt+F11) и работайте со стилем через него
  9. Задача "Показать пользователю что программа не висит а работает" - одна из самых долгоживущих и обсуждаемых. Так что вариантов её решения слишком много. Конкретно в этом случае - я бы вообще отказался от индикатора и Application.ProcessMessages, а после создания каждой кнопки просто сделал бы Repaint - пусть пользователь видит как появляются новые кнопки.
  10. Я же о том и говорю - просто отследить эту возможность и не дать ему это сделать, а как - это уже на рассмотрение разработчика - вариантов куча.
  11. К глюкам привести может любое телодвижение пользователя - главное написать так, чтобы не дать пользователю возбудить эти самые глюки.
  12. А если Application.ProcessMessages поставить после создания каждой кнопки - то и анимация должна появиться, только будет не совсем плавная, да и время выполнения увеличится
  13. Конечно можно. Что-то вроде этого:
  14. Проблема еще может быть в свойстве WrapMode. Попробуйте поиграться с ним. По идее, в Вашем случае, его надо выставить в Original
  15. HotKeys

    Легче всего, по моему мнению, сделать так: ... FWnd := AllocateHWnd(WindowProc); ... procedure WindowProc(var AMsg: TMessage); begin case AMsg.Msg of WM_HOTKEY: case TWMHotKey(AMsg).hotkey of 1: ...; 2: ...; ... end; end; end; ... RegisterHotkey(FWnd, ...); // как обычно в VCL ... UnregisterHotkey(...); // как обычно в VCL ...