Перейти к содержанию
Fire Monkey от А до Я

dnekrasov

Пользователи
  • Постов

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

  • Посещение

  • Победитель дней

    52

Весь контент dnekrasov

  1. А можно еще просто использовать встроенную команду Windows "MSG" Например, команда msg * /server:192.168.0.2 "Тестовое сообщение " отправит сообщение, написанное в кавычках всем пользователям компьютера с адресом 192.168.0.2 В XP/2000 еще была команда net send, но начиная с Висты она больше не поддерживается
  2. Плохо смотрели. Только он не TObjectList а TObjectList<T: class>, к тому же есть еще и TObjectQueue<T: class>, TObjectStack<T: class> и TObjectDictionary<TKey,TValue>
  3. Вот пример как у меня идет добавление в архив используя 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; Замените зиповские команды архивирования на раровские разархивирования, добавьте необходимую Вам логику и наслаждайтесь
  4. Вообще-то TFixedMultiResBitmap предназначена для совместимости с HDPI-мониторами и TImage будет отображать ту битмапку, которую отдаст TFixedMultiResBitmap для текущего масштаба, установленного в системе.
  5. Есть замечательный модуль System.IOUtils. В нем есть класс TPath, а у него есть набор методов для получения стандартных путей. Для Temp, например, TPath.GetTempPath. И зачем давать пользователю вводить путь руками - не лучше ли использовать функцию FMX.Dialogs.SelectDirectory?
  6. Очень советовал бы обратить своё внимание на TTask из System.Threading - ну ооччеень полезный класс Можете посмотреть запись вебинара где про него подробно рассказывают
  7. Попробуйте в его событии 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;
  8. Здесь проблема не в размытии а в используемом алгоритме ресамплинга. Delphi, похоже, использует "по соседним пикселям". Вам же надо - бикубический. Единственное что можно посоветовать - найдите какой-нибудь пакет компонент для работы с графикой или сами реализуйте этот алгоритм.
  9. Выложите куда-нибудь картинку, которую вы ресайзите, а лучше проект
  10. Все просто: 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 вы получите Вашу битмапку сглаженную и с новыми размерами
  11. Canvas.DrawBitmap - последний параметр этого метода отвечает за сглаживание.
  12. Цвет пикселя битмапки получить очень просто: var bmd: TBitmapData; bmp: TBitmap; begin ... if bmp.Map(TMapAccess.ReadWrite, bmd) then try // здесь работаем с TBitmapData - у него есть все что нужно, чтобы работать с пикселями finally bmp.Unmap(bmd); end; end;
  13. Судя по скриншоту - вы просто не видите куда и что добавлять. Откройте Wiew->Structure (Shift+Alt+F11) и работайте со стилем через него
  14. Задача "Показать пользователю что программа не висит а работает" - одна из самых долгоживущих и обсуждаемых. Так что вариантов её решения слишком много. Конкретно в этом случае - я бы вообще отказался от индикатора и Application.ProcessMessages, а после создания каждой кнопки просто сделал бы Repaint - пусть пользователь видит как появляются новые кнопки.
  15. Я же о том и говорю - просто отследить эту возможность и не дать ему это сделать, а как - это уже на рассмотрение разработчика - вариантов куча.
  16. К глюкам привести может любое телодвижение пользователя - главное написать так, чтобы не дать пользователю возбудить эти самые глюки.
  17. А если Application.ProcessMessages поставить после создания каждой кнопки - то и анимация должна появиться, только будет не совсем плавная, да и время выполнения увеличится
  18. Проблема еще может быть в свойстве WrapMode. Попробуйте поиграться с ним. По идее, в Вашем случае, его надо выставить в Original
  19. Легче всего, по моему мнению, сделать так: ... 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 ...
  20. А чем Вам не угодил блок try..finaly? Ну а утечки памяти легко проверить указав ReportMemoryLeaksOnShutdown := True;
  21. Пишу на Delphi с ноября 1995 года (Delphi 1 под Win 3.11). До этого использовал TurboPascal и TurboC (еще с 1989 года), но как только увидел Delphi - то сразу влюбился в эту среду разработки. В последствии приходилось писать на С++, С#, PowerBuilder, но всегда возвращался на Delphi и каждый раз вздыхал с облегчением Однако в 2009-м уже серьёзно начал склоняться в сторону Java, но с появлением FireMonkey в очередной раз с радостью вздохнул и Delphi стала опять моей основной IDE. Теперь RAD Studio удовлетворяет все мои потребности в плане программирования и больше ни на какой другой язык я даже не смотрю.
  22. На Mac-е как раз таки важна. Если деплоится в "Contents\Resources\StartUp\" (устанавливается по-умолчанию при добавлении файла вручную и для ресурсов), то после запуска приложения все файлы в этой папке выгружаются в TPath.GetHomePath, если же деплоить в "Contents\Resources\" - то ничего никуда не выгружается (проверено на OS X El Capitan).
×
×
  • Создать...