Changeset 266


Ignore:
Timestamp:
Jun 26, 2020, 1:13:34 AM (4 years ago)
Author:
chronos
Message:
Location:
branches/highdpi
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/highdpi/GameServer.pas

    r246 r266  
    289289        FreeLibrary(hm);
    290290    end;
    291   PlayersBrain.Free;
    292   bix.Free;
    293   Brains.Free;
     291  FreeAndNil(PlayersBrain);
     292  FreeAndNil(bix);
     293  FreeAndNil(Brains);
    294294end;
    295295
  • branches/highdpi/Packages/CevoComponents/BaseWin.pas

    r210 r266  
    106106destructor TBufferedDrawDlg.Destroy;
    107107begin
    108   Offscreen.Free;
     108  // Name
     109  FreeAndNil(Offscreen);
    109110  inherited Destroy;
    110111end;
     
    496497begin
    497498  if Offscreen <> nil then
    498     exit;
     499    Exit;
    499500  Offscreen := TDpiBitmap.Create;
    500501  Offscreen.PixelFormat := pf24bit;
  • branches/highdpi/Packages/CevoComponents/ScreenTools.pas

    r265 r266  
    406406    jtex := TDpiJpegImage.Create;
    407407    try
    408       jtex.LoadFromFile(Path);
    409     except
    410       Result := False;
    411     end;
    412     if Result then
    413     begin
    414       if Options and gfNoGamma = 0 then
    415         bmp.PixelFormat := pf24bit;
    416       Bmp.SetSize(jtex.Width, jtex.Height);
    417       Bmp.Canvas.Draw(0, 0, jtex);
    418     end;
    419     jtex.Free;
     408      try
     409        jtex.LoadFromFile(Path);
     410      except
     411        Result := False;
     412      end;
     413      if Result then
     414      begin
     415        if Options and gfNoGamma = 0 then
     416          bmp.PixelFormat := pf24bit;
     417        Bmp.SetSize(jtex.Width, jtex.Height);
     418        Bmp.Canvas.Draw(0, 0, jtex);
     419      end;
     420    finally
     421      FreeAndNil(jtex);
     422    end;
    420423  end
    421424  else
    422425  if ExtractFileExt(Path) = '.png' then begin
    423426    Png := TDpiPortableNetworkGraphic.Create;
    424     Png.PixelFormat := Bmp.PixelFormat;
    425427    try
    426       Png.LoadFromFile(Path);
    427     except
    428       Result := False;
    429     end;
    430     if Result then
    431     begin
    432       if Options and gfNoGamma = 0 then
    433         bmp.PixelFormat := pf24bit;
    434       bmp.SetSize(Png.Width, Png.Height);
    435       if (Png.RawImage.Description.Format = ricfGray) then
    436       begin
    437         // LCL doesn't support 8-bit colors properly. Use 24-bit instead.
    438         Bmp.PixelFormat := pf24bit;
    439         CopyGray8BitTo24bitBitmap(Bmp, Png);
    440       end
    441       else
    442         Bmp.Canvas.draw(0, 0, Png);
    443     end;
    444     Png.Free;
    445   end
    446   else
     428      Png.PixelFormat := Bmp.PixelFormat;
     429      try
     430        Png.LoadFromFile(Path);
     431      except
     432        Result := False;
     433        end;
     434      if Result then begin
     435        if Options and gfNoGamma = 0 then
     436          bmp.PixelFormat := pf24bit;
     437        bmp.SetSize(Png.Width, Png.Height);
     438        if (Png.RawImage.Description.Format = ricfGray) then
     439        begin
     440          // LCL doesn't support 8-bit colors properly. Use 24-bit instead.
     441          Bmp.PixelFormat := pf24bit;
     442          CopyGray8BitTo24bitBitmap(Bmp, Png);
     443        end else
     444          Bmp.Canvas.draw(0, 0, Png);
     445      end;
     446    finally
     447      FreeAndNil(Png);
     448    end;
     449  end else
    447450  if ExtractFileExt(Path) = '.bmp' then begin
    448451    try
     
    455458        bmp.PixelFormat := pf24bit;
    456459    end;
    457   end
    458   else
     460  end else
    459461    raise Exception.Create('Unsupported image file type ' + ExtractFileExt(Path));
    460462
     
    17281730  RestoreResolution;
    17291731  for I := 0 to nGrExt - 1 do begin
    1730     GrExt[I].Data.Free;
    1731     GrExt[I].Mask.Free;
     1732    FreeAndNil(GrExt[I].Data);
     1733    FreeAndNil(GrExt[I].Mask);
    17321734    FreeMem(GrExt[I]);
    17331735  end;
  • branches/highdpi/Packages/DpiControls/UDpiControls.pas

    r265 r266  
    812812    FMainForm: TDpiForm;
    813813    FCreatingForm: TDpiForm;
     814    FOldExitProc: Pointer;
    814815    function GetActive: Boolean;
    815816    function GetShowMainForm: Boolean;
     
    821822  protected
    822823    function GetNativeApplication: TApplication; virtual;
     824    procedure DoBeforeFinalization;
    823825  public
    824826    constructor Create(AOwner: TComponent); override;
     
    15941596end;
    15951597
     1598procedure DpiBeforeFinalization;
     1599// This is our ExitProc handler.
     1600begin
     1601  DpiApplication.DoBeforeFinalization;
     1602end;
     1603
     1604procedure TDpiApplication.DoBeforeFinalization;
     1605var
     1606  i: Integer;
     1607  C: TComponent;
     1608begin
     1609  if Self = nil then Exit;
     1610  for i := ComponentCount - 1 downto 0 do begin
     1611    if i < ComponentCount then begin
     1612      C := Components[i];
     1613      // C.Name
     1614      C.Free;
     1615    end;
     1616  end;
     1617end;
     1618
    15961619function DpiFindApplicationComponent(const ComponentName: string): TComponent;
    15971620// Note: this function is used by TReader to auto rename forms to unique names.
     
    16031626begin
    16041627  RegisterFindGlobalComponentProc(@DpiFindApplicationComponent);
     1628  FOldExitProc := ExitProc;
     1629  ExitProc := @DpiBeforeFinalization;
    16051630  inherited;
    16061631end;
     
    16081633destructor TDpiApplication.Destroy;
    16091634begin
     1635  ExitProc := FOldExitProc;
    16101636  inherited Destroy;
    16111637end;
     
    37363762destructor TDpiForm.Destroy;
    37373763begin
     3764  // Name
    37383765  // TODO: Can't destroy directly?
    37393766  //FreeAndNil(NativeForm);
     3767
     3768  TFormEx(NativeForm).OnMessage := nil;
    37403769  DpiScreen.RemoveForm(Self);
    37413770end;
Note: See TracChangeset for help on using the changeset viewer.