AGB  ·  Datenschutz  ·  Impressum  







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

cxGrid RecordChanged

Ein Thema von peberhardt · begonnen am 5. Feb 2013 · letzter Beitrag vom 6. Feb 2013
Antwort Antwort
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: cxGrid RecordChanged

  Alt 6. Feb 2013, 07:42
'Kettenreaktion' trifft den Nagel auf den Kopf.

Delphi-Quellcode:
Procedure TMyForm.InitializeData;
Begin
  MyProductGridView.OnRecordChanged := Nil;
  Try
    LoadDataFromDatabase();
    ..
  Finally
    MyProductGridView.OnRecordChanged := MyProductGridViewRecordChangedEvent;
  End
End;
So in etwa. Natürlich alle relevanten Events vorher per ':= Nil' aushängen und hinterher wieder einhängen.

Eine Alternative ist die Verwendung eines privaten boolschen Feldes 'fInitializing'.
Delphi-Quellcode:
Procedure TMyForm.InitializeData;
Begin
  fInitializing := True;
  Try
    LoadDataFromDatabase();
    ..
  Finally
    fInitializing := False;
  End
End;
und in jedem Eventhandler
Delphi-Quellcode:
Procedure TMyForm.MyProductGridViewRecordChanged(...);
Begin
  if fInitializing then exit; // <-- diese Zeile am Anfang jedes Eventhandlers
...
End;
Beides hat Vor- und Nachteile. Ich tendiere zur 2.Möglichkeit, weil ich dadurch generell steuern kann, wann meine Events feuern sollen.

Falls die Daten schon geladen sind und dein Problem beim instantiieren der Form auftritt, dann würde ich so vorgehen

Delphi-Quellcode:
Procedure TMyForm.FormCreate(...)
Begin
  MyGridView.DataBinding.DataSource := Nil;
End;

Procedure TMyForm.FormActivate(...)
Begin
  MyProductGridView.OnRecordChanged := Nil;
  Try
    MyGridView.DataBinding.DataSource := MyDataSource;
  Finally
    MyProductGridView.OnRecordChanged := MyProductGridViewRecordChangedEvent;
  End
End;

Geändert von Furtbichler ( 6. Feb 2013 um 07:46 Uhr)
  Mit Zitat antworten Zitat
peberhardt

Registriert seit: 14. Jun 2011
11 Beiträge
 
#2

AW: cxGrid RecordChanged

  Alt 6. Feb 2013, 08:06
besten dank

werde das heute abend mal testen

ich melde mich dann wieder

mfg peberhardt
  Mit Zitat antworten Zitat
peberhardt

Registriert seit: 14. Jun 2011
11 Beiträge
 
#3

AW: cxGrid RecordChanged

  Alt 6. Feb 2013, 21:18
Hallo,

habs jetzt doch anders hinbekommen.

Delphi-Quellcode:
procedure TDataModul_haupt.Query_MySQl_lieferantenBeforeScroll(DataSet: TDataSet);
begin
form_haupt.var_counter:='a';
end;

procedure TDataModul_haupt.Query_MySQl_produkt_gruppenBeforeScroll(DataSet: TDataSet);
begin
form_haupt.var_counter:='a';
end;
und im FocusedRecordChanged frage ich die globale variable ab...

Delphi-Quellcode:
  if var_counter = 'athen
  begin
    du was... und zwar nur einmal....
    var_counter := 'x';
  end;
Danke für deine Mühe.

mfg
peberhardt
  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 22:25 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