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

Лидеры

  1. Anasazi

    Anasazi

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


    • Баллы

      2

    • Постов

      65


  2. Евгений Корепов

    Евгений Корепов

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


    • Баллы

      2

    • Постов

      738


  3. ENERGY

    ENERGY

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


    • Баллы

      2

    • Постов

      568


  4. denprox

    denprox

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


    • Баллы

      2

    • Постов

      44


Популярный контент

Показан контент с высокой репутацией 22.05.2017 во всех областях

  1. @RoschinSpb Ну нет же. В не ARC (Auto reference counter), классическом компиляторе (Windows и Mac) Free всегда вызывает деструктор и освобождает память выделенную под класс и его поля. Т.е. если обратиться потом к такому классу произойдет исключение AV. А вот в ARC компиляторах, DisposeOf вызовет деструктор, но память выделенная под класс и его поля, останется занятой, и не освободиться. Т,е. если после DisposeOf обратится к полям класса, не будет исключения AV, но поля уже будут очищены. При этом в деструкторе можно освободить свои данные и уничтожить инкапсулированные классы. Такие объекты называют зомби-объекты - т.к. они остаются висеть в памяти до конца работы программы, и даже если ссылка позже на него уменьшиться до 0, память не освободиться и деструктор не будет вызван повторно. Чтобы узнать находится ли объект в зомби состоянии, есть метод Disposed - это аналог Assign. Повторюсь всем рекомендую статью GunSmoker, там эта тема хорошо освещена.
    2 балла
  2. Название топика содержит ответ на ваш вопрос - TIdTCPClient, ключевое слово "TCP". Этот протокол адресует устройства (или интерфейсы) исключительно по IP адресу(IPv4 или IPv6). Компонент TIdTCPClient работает следующим образом - если TIdTCPClient.Host содержит IP адрес, все нормально, отправляем туда пакет, но если в TIdTCPClient.Host строка, то ресолвим ее в IP адрес и после этого отправляем пакет на полученный адрес. Разрешение (ресолвинг) DNS имен происходит по примерно такой цепочке : Если это localhost, то система без вопросов возвращает 127.0.0.1 Операционка смотрит свои локальные настройки (windows C:\Windows\System32\drivers\etc\hosts, unix /etc/hosts) Проверяется локальный кэш dns записей Делается запрос на DNS сервер Так же могут применяться экзотические или устаревшие методы, к примеру Windows NetBIOS Name Server (WINS server). И попробуйте перефразировать свой вопрос, уточните конкретную задачу, так будет проще понять что вам нужно.
    2 балла
  3. Получилась программа по отсылке пушей при взаимодействии с сервером PHP ZuBy. Кто пользуется этим PHP сервером и кого есть время покритикуйте... Скачать: http://my-files.ru/uwtv19
    1 балл
  4. denprox

    Стрелковый тир (игра)

    krapotkin Предполагается, что пользователь сам должен создать свой "тренировочный полигон", установить фон, выбрать мишени и укрытия. Для упрощения предлагается нарисовать в Paint мишени/укрытия, как на картинках ниже. По большому большой роли не играет Image это или Bitmap. Для Укрытия красный цвет означает стену, белый (или отсутствие цвета, если это png с альфа каналом) - соответственно окно. Для мишени, у маски несколько цветов, каждый из которых отвечает за определенный балл. dnekrasov На счет регионов, думаю этот вариант подошел бы как нельзя кстати. Но как я уже писал ранее, к примеру для функции SetWindowRgn - нужен хэндл окна (объекта). В VCL к примеру без проблем можно для TPanel применить эту функцию.
    1 балл
  5. Вот примерно так PostData:= TStringList.Create; try // Создаём подключение IdHTTP1 := TIdHTTP.Create; // Указываем данные для отправки PostData.Clear; postdata.Add('text_push=' + Memo1.Text); postdata.Add('action=send_push'); // Отправляем запрос Result:=IdHTTP1.Post(DOMAIN + 'push.php', postdata); finally end; Потом можешь куда-нибудь отобразить результат. showmessage(result);
    1 балл
  6. dnekrasov

    Стрелковый тир (игра)

    Если игра под Windows, то самый простой выход (по моему мнению) - работа с регионами. Ведь каждый объект это по сути дела какой-то замкнутый полигон, а функции CreatePolygonRgn и PtInRegion еще никто не отменял. А вообще функций для работы с регионами немало, так что почитайте о них на MSDN. Если не хотите использовать WinAPI-шные функции - работайте с полигонами. Мне когда-то очень помогла библиотека AlgLib - из нее можно вытянуть много полезных функций, чтобы самому не реализовывать алгоритмы.
    1 балл
  7. Не трогай TWebBrowser1. Делай все через пост-запросы. Пример нужен?
    1 балл
  8. Доброго времени суток! Пытаюсь сделать форму программы произвольной формы. Нагуглил такой пример: function BitmapToRgn(Image: TBitmap): HRGN; var TmpRgn: HRGN; x, y: integer; ConsecutivePixels: integer; CurrentPixel: TColor; CreatedRgns: integer; CurrentColor: TColor; tmpImage:TBitmapData; //добавлено мной begin Image.Map(TMapAccess.ReadWrite, tmpImage); //Добавлено мой для совместимости CreatedRgns := 0; Result := CreateRectRgn(0, 0, Image.Width, Image.Height); inc(CreatedRgns); if (Image.Width = 0) or (Image.Height = 0) then exit; for y := 0 to Image.Height - 1 do begin //CurrentColor := Image.Canvas.Pixels[0,y]; -- было CurrentColor := tmpImage.GetPixel(0,y); //стало ConsecutivePixels := 1; for x := 0 to Image.Width - 1 do begin //CurrentPixel := Image.Canvas.Pixels[x, y]; -- было CurrentColor := tmpImage.GetPixel(x,y); //стало if CurrentColor = CurrentPixel then inc(ConsecutivePixels) else begin // Входим в новую зону if CurrentColor = TColorRec.White then begin TmpRgn := CreateRectRgn(x - ConsecutivePixels, y, x, y + 1); CombineRgn(Result, Result, TmpRgn, RGN_DIFF); inc(CreatedRgns); DeleteObject(TmpRgn); end; CurrentColor := CurrentPixel; ConsecutivePixels := 1; end; end; if (CurrentColor = TColorRec.White) and (ConsecutivePixels > 0) then begin TmpRgn := CreateRectRgn(x-ConsecutivePixels, y, x, y+1); CombineRgn(Result, Result, TmpRgn, RGN_DIFF); inc(CreatedRgns); DeleteObject(TmpRgn); end; end; end; По скольку пример был для VCL, немного изменил/добавил код Затем по нажатию кнопки применяем: procedure TForm1.Button1Click(Sender: TObject); var MaskBmp: TBitmap; begin MaskBmp := TBitmap.Create; try MaskBmp.LoadFromFile(ExtractFileDir(ParamStr(0))+ '\rgn.png'); Height := MaskBmp.Height; Width := MaskBmp.Width; // ОС владеет регионом, после вызова SetWindowRgn SetWindowRgn(FmxHandleToHWND(Handle), BitmapToRgn(MaskBmp), True); finally MaskBmp.Free; end; end; В результате окно программы остается такое же прямоугольное, только высота и ширина становятся по размеру картинки. В чем может быть проблема ?? p.s. Если использовать не Bitmap а к примеру: var Rgn : HRGN; begin Rgn := CreateEllipticRgn(0, 0, 200, 200); SetWindowRgn(FmxHandleToHWND(Self.Handle), Rgn, TRUE); end; То окно программы становится круглым, как и задумано.
    1 балл
  9. AliZairov

    Native Android VideoView

    Добрый вечер. Скоро будет полностью подготовлен.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...