AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Refresh einer View (Sichten) auslösen
Thema durchsuchen
Ansicht
Themen-Optionen

Refresh einer View (Sichten) auslösen

Ein Thema von Perlsau · begonnen am 19. Mär 2014 · letzter Beitrag vom 19. Mär 2014
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.554 Beiträge
 
Delphi 12 Athens
 
#1

AW: Refresh einer View (Sichten) auslösen

  Alt 19. Mär 2014, 12:34
Es geht aber gerade um das Post: Das wird beim Ändern des Checkstatus einer TDBCheckBox erst ausgelöst, wenn sich der Datensatzzeiger ändert. Durch reines Klicken auf die Komponente passiert noch gar nix.
Ich dachte das sollte so werden?
- anklichen/umschalten der Chackbox ändert noch nichts
- das Speichern des Datensatzes (Post) aktualisiert dann den View.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Refresh einer View (Sichten) auslösen

  Alt 19. Mär 2014, 12:42
Es geht aber gerade um das Post: Das wird beim Ändern des Checkstatus einer TDBCheckBox erst ausgelöst, wenn sich der Datensatzzeiger ändert. Durch reines Klicken auf die Komponente passiert noch gar nix.
Ich dachte das sollte so werden?
- anklichen/umschalten der Chackbox ändert noch nichts
- das Speichern des Datensatzes (Post) aktualisiert dann den View.
Schon klar, aber "das Speichern des Datensatzes (Post)" wird nicht allein durch das Klicken auf die DBCheckBox ausgelöst. Mit anderen Worten: Das Klicken auf die DBCheckBox ändert lediglich den Wert des Feldes im Dataset, ohne daß ein Post ausgelöst wird. Ich wollte jedoch erreichen, daß bereits ein Klick auf die Checkbox eine Änderung in der Datenbank auslöst, ohne daß der Anwender noch eine weitere Aktion bringen muß. Das habe ich mit der TCheckBox nun erreicht: Die Anzeige der Änderung im DBGrid (View) erfolgt jetzt wie gewünscht sofort. Jetzt kann der Anwender einfach Strg-G drücken, um den Status des Gesehen-Feldes zu ändern, auch wenn der Fokus gerade auf dem DBGrid ist, weil der Anwender darin herumscrollt.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

Nachtrag

  Alt 19. Mär 2014, 12:56
Jetzt blieb nur noch der unschöne Effekt, daß sich die Position der vertikalen Scrollbar im DBGrid verändert. Dem konnte ich mit GetScrollPos und SetScrollPos abhelfen. Der Vollständigkeit halber hier der überarbeitete Code:
Delphi-Quellcode:
Procedure TFormMain.Check_GesehenClick(Sender: TObject);
Var
  ScrollPos : Integer;

begin
  IF GL.CheckModus THEN Exit;
  GL.CheckModus := True;
  DatMod.Aset_Datei.Edit;
  DatMod.Aset_Datei.FieldByName('Gesehen').AsBoolean := Check_Gesehen.Checked;
  DatMod.Aset_Datei.Post;
  ScrollPos := GetScrollPos(Handle, SB_VERT);
  DatMod.ViewDateienRefresh;
  SetScrollPos(Handle, SB_VERT, ScrollPos, True);
  GL.CheckModus := False;
  AL_ED_Gesehen.Checked := Check_Gesehen.Checked;
end;
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.212 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Refresh einer View (Sichten) auslösen

  Alt 19. Mär 2014, 13:11
Das kann doch nicht sein- So viel Arbeit, nur weil man eigentlich will, dass die Änderungen an der Checkbox sofort übernommen werden?

Kann man im OnDataChange-Event nicht einfach auf myDataSource.DataSet.Modified prüfen und dann irgendwie die Änderungen "schon jetzt" abschicken?
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:52 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