dnekrasov

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

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

  • Посещение

  • Days Won

    6

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

dnekrasov had the most liked content!

О dnekrasov

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

Информация

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

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

403 просмотра профиля
  1. Плохо смотрели. Только он не TObjectList а TObjectList<T: class>, к тому же есть еще и TObjectQueue<T: class>, TObjectStack<T: class> и TObjectDictionary<TKey,TValue>
  2. Вот пример как у меня идет добавление в архив используя zip в MacOS: function ZipAdd(AArchName, AFileName: String): boolean; {$IFDEF MACOS} var s, sRoot, sFileName, sArchName: String; {$ENDIF} begin Result := False; {$IFDEF MACOS} try if DirectoryExists(AFileName) then begin if AFileName[AFileName.Length] = PathDelim then System.Delete(AFileName, AFileName.Length, 1); sRoot := ExtractFilePath(AFileName); AFileName := AFileName.Remove(0, sRoot.Length); s := Format('pushd "%s"; zip -r "%s" "%s"; popd', [sRoot, AArchName, AFileName]); _system(PAnsiChar(UTF8String(s))); end else begin s := Format('zip -j "%s" "%s"', [AArchName, AFileName]); _system(PAnsiChar(UTF8String(s))); end; Result := FileExists(AArchName); except Result := False; end; {$ENDIF} end; Замените зиповские команды архивирования на раровские разархивирования, добавьте необходимую Вам логику и наслаждайтесь
  3. Вообще-то TFixedMultiResBitmap предназначена для совместимости с HDPI-мониторами и TImage будет отображать ту битмапку, которую отдаст TFixedMultiResBitmap для текущего масштаба, установленного в системе.
  4. Есть замечательный модуль System.IOUtils. В нем есть класс TPath, а у него есть набор методов для получения стандартных путей. Для Temp, например, TPath.GetTempPath. И зачем давать пользователю вводить путь руками - не лучше ли использовать функцию FMX.Dialogs.SelectDirectory?
  5. Очень советовал бы обратить своё внимание на TTask из System.Threading - ну ооччеень полезный класс Можете посмотреть запись вебинара где про него подробно рассказывают
  6. Попробуйте в его событии 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;
  7. Здесь проблема не в размытии а в используемом алгоритме ресамплинга. Delphi, похоже, использует "по соседним пикселям". Вам же надо - бикубический. Единственное что можно посоветовать - найдите какой-нибудь пакет компонент для работы с графикой или сами реализуйте этот алгоритм.
  8. Выложите куда-нибудь картинку, которую вы ресайзите, а лучше проект
  9. Все просто: 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 вы получите Вашу битмапку сглаженную и с новыми размерами
  10. Canvas.DrawBitmap - последний параметр этого метода отвечает за сглаживание.
  11. Цвет пикселя битмапки получить очень просто: var bmd: TBitmapData; bmp: TBitmap; begin ... if bmp.Map(TMapAccess.ReadWrite, bmd) then try // здесь работаем с TBitmapData - у него есть все что нужно, чтобы работать с пикселями finally bmp.Unmap(bmd); end; end;
  12. Судя по скриншоту - вы просто не видите куда и что добавлять. Откройте Wiew->Structure (Shift+Alt+F11) и работайте со стилем через него
  13. Задача "Показать пользователю что программа не висит а работает" - одна из самых долгоживущих и обсуждаемых. Так что вариантов её решения слишком много. Конкретно в этом случае - я бы вообще отказался от индикатора и Application.ProcessMessages, а после создания каждой кнопки просто сделал бы Repaint - пусть пользователь видит как появляются новые кнопки.
  14. Я же о том и говорю - просто отследить эту возможность и не дать ему это сделать, а как - это уже на рассмотрение разработчика - вариантов куча.
  15. К глюкам привести может любое телодвижение пользователя - главное написать так, чтобы не дать пользователю возбудить эти самые глюки.