Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#242

AW: Delphi 10.1 Berlin

  Alt 29. Apr 2016, 01:20
Um Euch stundenlanges Suchen zu ersparen, hier eine Info für Euch:

Eine "Neuerung" in Delphi 10.1, kann im Zusammenhang mit FMX-Grids/ FMX-StringGrids plötzlich zu ganz anderen Programmabläufen führen:

Nun existieren auch die Eigenschaften Grid.col und Grid.row (vorher ja nur ".ColumnIndex" bzw ".Selected").


In Ereignisprozeduren "OnGetValue" wurde der Eintrag bislang so erzeugt:

Delphi-Quellcode:
procedure Tfrm_Main.sgOfferGetValue(Sender: TObject; const Col, Row: Integer;
  var Value: TValue);
In NEUEN Delphi 10.1 nun so:

Delphi-Quellcode:
procedure Tfrm_Main.sgOfferGetValue(Sender: TObject; const ACol, ARow: Integer;
  var Value: TValue);
Dummerweise werden in übernommenen Projekten, die alten Angaben "COL" und "ROW" beibehalten, auch wenn man das Event erstmals anlegt.

So kann sich hier nun ein ganz anderer Programmkontext ergeben:

Delphi-Quellcode:
procedure Tfrm_Main.sgOfferGetValue(Sender: TObject; const Col, Row: Integer;
  var Value: TValue);

var
  sg: TGrind;
begin
  sg := TGrid (Sender);

  with sg do begin
    if row = xyz... //
end;
Vor Delphi 10.1 war row hier der Parameter aus der Prozedurübergabe.
Ab Delphi 10.1 ist row aber die aktive Zeile des Grids !!!

Leider ist das nirgendwo dokumentiert. So hatte ich nun vollkommen unsinnige Anzeigen in meinem Grid, und vorher (Delphi 10 Seattle oder älter) hatte der Source ja funktioniert.

Da muss man erst mal drauf kommen.

Geändert von Harry Stahl (29. Apr 2016 um 01:31 Uhr)
  Mit Zitat antworten Zitat