AGB  ·  Datenschutz  ·  Impressum  







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

Stringgrid OnCellChange ?

Ein Thema von Hansa · begonnen am 19. Feb 2014 · letzter Beitrag vom 25. Feb 2014
Antwort Antwort
Seite 2 von 2     12   
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#11

AW: Stringgrid OnCellChange ?

  Alt 20. Feb 2014, 01:23
Hallo,

Zitat:
Allerdings ist da noch eine Sache nicht so optimal. Ich muss ja die Differenz der bestimmten Zellen eventuell auswerten.
Differenz der "bestimmten" Zellen "eventuell" auswerten? Wie, wo, was jetzt?

Was tut denn
Delphi-Quellcode:
procedure TForm1.sg1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String);
begin
  if Value <> 'then
    NeuerWert := Value
  else
    NeuerWert := '0';

  lblDiffWert.Caption := IntToStr (StrToInt (NeuerWert) - StrToInt (AlterWert))
end;
nicht?

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#12

AW: Stringgrid OnCellChange ?

  Alt 25. Feb 2014, 18:45
Im SetEditText die Zelle auszuwerten, das geht ja schon. Nur : das würde bedeuten, bei jedem Tastendruck ändert sich der Bildschirm. Habe ich 42000 eingegeben und ändere ich das gerne auf 52000 ab, dann brauche ich 15 mal einen Tastendruck und 15 mal ändert sich die Zelle, obwohl lediglich EINE einzige falsche Zahl korrigiert werden soll. Das finde ich 1 übertrieben und macht 2. den Bildschirm ziemlich unruhig. Kommt dann noch datenbank ins Spiel dann kommen noch 15 DB-Zugriffe dazu. Das Ganze wäre besser dann durchzuführen, wenn der Editiervorgang beendet ist, z.B. beim drücken von RETURN. Wäre auch kein Problem, aber wehe wenn einer dann mittendrin auf andere Zelle klickt.

On SelectCell liefert z.B. nur nächste Zelle. Nützt also auch nichts. Und mir fällt nun nichts ein, wo man da eingreifen könnte.
Gruß
Hansa
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 4. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#13

AW: Stringgrid OnCellChange ?

  Alt 25. Feb 2014, 20:34
Hallo,

Zitat:
[...] Das Ganze wäre besser dann durchzuführen, wenn der Editiervorgang beendet ist [...]
Würde ich auch so sehen - und wohl auch so machen -, aber Dein Problem erschließt sich mir nicht so ganz.

Zitat:
[...] Und mir fällt nun nichts ein, wo man da eingreifen könnte
Naja, wie wäre es denn mit OnDrawCell? Den entsprechenden Zustand vorher merken und beim Neuzeichnen aktualisieren:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  if FModified and (ACol = FSaveCol) and (ARow = FSaveRow) then
    begin
      StringGrid1.Cells [ACol, ARow] := IntToStr (StrToInt (StringGrid1.Cells [ACol, ARow]) - StrToInt (FSaveValue));
      FModified := False
    end
end;

procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol, ARow: Integer; var Value: string);
begin
  FSaveCol := ACol;
  FSaveRow := ARow;
  FSaveValue := Value
end;

procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string);
begin
  FModified := FSaveValue <> Value
end;
Oder verstehe ich da was falsch?

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 08:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz