AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringGrid und PopUp in Firemonkey

Ein Thema von Photoner · begonnen am 3. Jul 2013 · letzter Beitrag vom 4. Jul 2013
 
Photoner

Registriert seit: 6. Dez 2012
Ort: Nürnberg
103 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

AW: TStringGrid und PopUp in Firemonkey

  Alt 4. Jul 2013, 09:10
Hallo,

vielleicht ist dieser Link etwas für Dich.

Der Link ist hilfreich!

Der springende Punkt ist, das OnChange Ereignis weiterzureichen und ein paar Feinheiten zu beachten. Ich habs wie folgt zum Laufen gebracht:

Diese Zeilen im FormCreate o.ä.:
Delphi-Quellcode:
      for I := 0 to StringGrid1.ColumnCount-1 do begin
        StringGrid1.ColumnByIndex(i).ApplyImmediately := false;
Verhindert das sofortige ändern des Grids wenn Eingaben erfolgen. Hat den Vorteil, dass das OnChange beim verlassen des Edits getriggert wird (wird gebraucht).
Auch noch in FormCreate eine Prozedur:

Delphi-Quellcode:
procedure TTestForm.UpdateStringGrid;
var
CellCtrl : TStyledControl;
Col,Row : Integer;
begin
  for col := 0 to StringGrid1.ColumnCount-1 do begin
    for row := 0 to StringGrid1.RowCount-1 do begin
      CellCtrl := StringGrid1.ColumnByIndex(col).CellControlByRow(row);
      if ( CellCtrl <> nil ) and ( CellCtrl is TTextCell ) then begin
        TTextCell( CellCtrl ).OnApplyStyleLookup := GridCellApplyStyleLookup;
        TTextCell( CellCtrl ).UpdateStyle;
        TTextCell( CellCtrl ).OnChange := CellChange;
      end;
    end;
  end;
end;
Damit kann man (auch zur Laufzeit) den Style der Zellen ändern. Hier ist aber wichtig das OnChange zu fangen.

Delphi-Quellcode:
procedure TTestForm.CellChange(Sender : TObject);
begin
  TColumn(TFMXObject(Sender).Parent).EndUpdate;
end;
Was genau bei EndUpdate von TColumn alles geschieht kann vielleicht jemand mit mehr Programmiererfahrung erzählen. Ich kann bloß sagen, dass auch Änderungen im Edit einer Zelle hiermit übernommen werden.
Kopieren, Ausschneiden, etc. wird damit auch übernommen.

Falls dieser Workaround Schwierigkeiten an anderer Stelle verursacht werde ich das hier erwähnen. Ansonsten gelöst.

Nachtrag:
Der Workaround funktioniert doch nicht. Keine Ahnung warum das einmal geklappt hat und jetzt nicht mehr...

Danke für euer Feedback!
Chris

Geändert von Photoner ( 4. Jul 2013 um 09:44 Uhr) Grund: Funktioniert doch nicht...
  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 19:56 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