AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi XE7: Mobile App und TStringGrid
Thema durchsuchen
Ansicht
Themen-Optionen

XE7: Mobile App und TStringGrid

Ein Thema von Kralle · begonnen am 17. Okt 2014 · letzter Beitrag vom 17. Okt 2014
 
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: XE7: Mobile App und TStringGrid

  Alt 17. Okt 2014, 23:16
Ok, zur generellen Abhilfe hier ein netter Helper
Delphi-Quellcode:
unit FMX.Helper.Controls;

interface

uses
  FMX.Controls;

type
  IControlUpdater = interface
    ['{D90FA99C-F9EC-4A55-9E99-95A54D1E30F8}']
  end;

  TControlUpdater = class( TInterfacedObject, IControlUpdater )
  private
    FControl: TControl;
    constructor Create( AControl: TControl );
  public
    destructor Destroy; override;
  end;

  TControlHelper = class helper for TControl
    function BeginAutoUpdate: IControlUpdater;
  end;

implementation

uses
  System.SysUtils;

{ TControlUpdater }

constructor TControlUpdater.Create( AControl: TControl );
begin
  inherited Create;
  FControl := AControl;
  // BeginUpdate
  FControl.BeginUpdate;
end;

destructor TControlUpdater.Destroy;
begin
  // EndUpdate
  FControl.EndUpdate;
  // Refresh auf dem sichtbaren Bereich anmelden
  // das ist schonender als ein hartes Repaint
  FControl.InvalidateRect( FControl.ClipRect );
  inherited;
end;

{ TControlHelper }

function TControlHelper.BeginAutoUpdate: IControlUpdater;
begin
  Result := TControlUpdater.Create( Self );
end;

end.
Und so verwenden (geht jetzt bei jedem Control)
Delphi-Quellcode:
uses
  FMX.Helpers.Controls;

procedure TSomeForm.SomeMethod;
begin
  StringGrid1.BeginAutoUpdate;

  StringGrid1.Cells[2,2] := 'Test';
end;
Sobald die Methode verlassen wird, wird auch das erzeugte Interface IControlUpdater wieder freigegeben (RefCount geht auf 0)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (18. Okt 2014 um 07:26 Uhr)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz