AGB  ·  Datenschutz  ·  Impressum  







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

OnChange-Events aller Editfields abfangen

Ein Thema von bwolf · begonnen am 27. Jan 2006 · letzter Beitrag vom 27. Jan 2006
Antwort Antwort
bwolf

Registriert seit: 17. Jan 2006
368 Beiträge
 
Delphi 2009 Professional
 
#1

OnChange-Events aller Editfields abfangen

  Alt 27. Jan 2006, 09:28
Hi Leute,

gibt es eine Möglichkeit, wie man feststellen kann ob es für ein vorhandenes Editfield (oder was auch immer..) ein onChange-Event gab, und dann in diesem Event feststelle, in welchem Feld die Änderung stattgefunden hat?

Ich hab schon eine weile rumprobiert, aber leider nix vernünftiges Zustande bekommen, könnt ihr mir einen Tip geben?

Vielen Dank schonmal,
grüße Ben
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: OnChange-Events aller Editfields abfangen

  Alt 27. Jan 2006, 10:36
Hi,
kannst du deine Frage etwas genauer formulieren? Willst du nachträglich feststellen, ob irgendwann (seit Start der Anwendung) ein OnChange Ereignis eingetreten ist?
Das geht so ohne weiteres nicht. Die Benachrichtung wird genau dann erzeugt, wenn das Ereignis stattfindet. Anders als mittels polling vermeidet man so gerade das speichern von allen Events und deren spätere Behandlung (da würdest du einfach in einem gewissen Interval nachschauen ob sich was geändert hat).
Falls du also das möchtest würde mir aber kein guter Grund einfallen wofür man es brauchen könnte. Kannst du vielleicht einfach noch sagen was genau du damit machen möchtest?

Ansonsten gibt es natürlich die Möglichkeit auf ein OnChange zu reagieren. Es wird ein TNotifyEvent ausgelöst. Dies ist eine Prozedur die dir in der Variable Sender den Erzeuger der Nachricht übergibt. Du kannst natürlich für alle Editfelder (oder was auch immer) die gleiche OnChange Prozedur eintragen und bei jedem OnChange Ereignis abspeichern wer wann das Ereignis ausgelöst hat. Wie gesagt, bliebe die Frage nach dem warum?

Gruß Der Unwissende
  Mit Zitat antworten Zitat
bwolf

Registriert seit: 17. Jan 2006
368 Beiträge
 
Delphi 2009 Professional
 
#3

Re: OnChange-Events aller Editfields abfangen

  Alt 27. Jan 2006, 11:02
Hi Unwissender

danke für deine Antwort!

Mein Vorhabene: In einem Formular sind Editfields, und sobald der User in einem dieser Felder eine Änderug vorgenommen hat, soll diese sofort gespeichert werden.
Und da ich nicht für jedese einzelene Feld ein OnChange-Event schreiben will, würde ich das gerne so lösen, das ich einfach auf jedes onChange reagiere.


Mit dem TNotifyEvent müßte dies dann ja zu machen sein, oder?
Grüße,
Ben
  Mit Zitat antworten Zitat
Benutzerbild von Schaedel
Schaedel

Registriert seit: 5. Jan 2006
Ort: Saarland
174 Beiträge
 
Delphi 2007 Professional
 
#4

Re: OnChange-Events aller Editfields abfangen

  Alt 27. Jan 2006, 11:04
Hallo
Na das ist nun echt einfach

schreibe eine Onchange prozedure

markeire danach alle Editfelder die du in das Onchange beziehen willst und gib diesen im Objektinspector die Prozedure als Onchange
Michael S.
  Mit Zitat antworten Zitat
bwolf

Registriert seit: 17. Jan 2006
368 Beiträge
 
Delphi 2009 Professional
 
#5

Re: OnChange-Events aller Editfields abfangen

  Alt 27. Jan 2006, 11:08
Hi Schaedel,

thx für die Antwort...jo daruf wär ich auch gekommen, aber ich würde mir gerne die Arbeit und den Code sparen, für jedes Feld ein eigenes OnChange zu schreiben. Deswegen würde ich gerne allgemein auf ein OnChange reagieren und anschl. feststellen, wo sich was geänderet hat.
  Mit Zitat antworten Zitat
Benutzerbild von Schaedel
Schaedel

Registriert seit: 5. Jan 2006
Ort: Saarland
174 Beiträge
 
Delphi 2007 Professional
 
#6

Re: OnChange-Events aller Editfields abfangen

  Alt 27. Jan 2006, 11:15
Also du machst für jedes Editfeld das selbe?
Also du schaust was sich in einem Edit geändert hat...
mit TEdit(FindComponent(Sender)).text bekommst du den Text des geänderten edit
dann schaust du was sich geändert hat und gut

edit
Sender hinzugefügt

bin mir nicht sicher ob das funktioniert ist aber in Anfang...

Delphi-Quellcode:
  if Sender is TDBEdit then begin
    (Sender as TDBedit).text :=LoescheFuehrendeNullen((Sender as TDBedit).text);
  end;
das sind jetz zawr DBedits aber is das selbe ...
Michael S.
  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 13:50 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