AGB  ·  Datenschutz  ·  Impressum  







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

Änderungen an Edits und Co feststellen

Ein Thema von Assertor · begonnen am 23. Jun 2007 · letzter Beitrag vom 25. Jun 2007
Antwort Antwort
Seite 2 von 2     12   
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#11

Re: Änderungen an Edits und Co feststellen

  Alt 24. Jun 2007, 00:11
Idee gut, Ausführung schlecht. Einige Componenten ohne OnChange haben bereits OnClick Events zugeordnet.

Da muß ich wohl alle einzeln durchgehen...
Frederik
  Mit Zitat antworten Zitat
Hansa

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

Re: Änderungen an Edits und Co feststellen

  Alt 24. Jun 2007, 00:28
Benutze : if XX is TEdit usw. Das Ganze am besten in der Objektablage.
Gruß
Hansa
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: Änderungen an Edits und Co feststellen

  Alt 24. Jun 2007, 00:51
Zitat von winkel79:
Hallo,

ich suche gerade eine gescheite Möglichkeit, für Eingabeforms Änderungen festzustellen (um einen SaveButton zu enablen).

Ich möchte natürlich möglichst nicht jedem einzelnen Edit/Memo/Combo etc.pp. einen OnChange zuweisen und dort rumprüfen und dann eine globale Variable setzen. Das geht sicherlich, aber wirkt nicht sehr schön und professionell.

Meine Überlegung: Kann man die OnChange Events (sind doch TNotifyEvents) irgendwie global abfangen und prüfen (modified?).

Hat da jemand schon was praktikables gefunden, oder geht Ihr die per OI mit Zuweisung durch?

Gruß und vielen Dank im Voraus!
winkel79
Vielleicht ist das genau das was du suchst:

"This unit implements a class that can store the content of controls on TWinControl container (e. g. a form), allows the containers current content to be checked for changes against a stored state, and also to be restored from a stored state."

Siehe angehängtes Archiv. Hab leider die Webadresse nicht mehr, von der ich es heruntergeladen habe.
Angehängte Dateien
Dateityp: zip formstatesaveandrestore_195.zip (289,5 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#14

Re: Änderungen an Edits und Co feststellen

  Alt 24. Jun 2007, 09:51
@winkel79:
TRichEdit, TEdit, TMaskEdit, TMemo haben die Eigenschaft MODIFIED
Diese Eigenschaft wird TRUE, wenn sich das entsprechende Control bzw der Text im selbigen (ver)ändert.
Nach dem Speichern bspw. sollte man natürlich MODIFIED wieder auf false setzen (sofern die Form nach dem Speichern nicht geschlossen wird).
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#15

Re: Änderungen an Edits und Co feststellen

  Alt 24. Jun 2007, 10:15
Aaaalso:

Ich mach das bei den meisten Anwendungen so:
Auf dem Formular habe ich eine Procedure ToggleButtons. Diese rufe ich nach jeder Aktion auf (OnChange, OnClick etc.). In dieser Methode werden alle Bedingungen für die jeweiligen Controls evaluiert und die dinger enabled / disabled visible / invisble etc. gemacht.

Damit kannst Du diese Methode z.B. direkt im OnChange Deiner Edits, aber auch im OnClick Deiner Checkboxen aufrufen und alles ist in Butter.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#16

Re: Änderungen an Edits und Co feststellen

  Alt 24. Jun 2007, 11:12
Hallo,

danke für die zahlreichen Antworten.

@PeterPanino: Wow, das ist ja ein ziemlich umfangreiches Library. Sieht ja ziemlich gut aus, da muß ich aber mal die Unicode Verarbeitung prüfen - das verwendet ja viele Stringlisten für die Prüfung...

Ich werde auch mal die Ansätze von raiguen und Phoenix gleich ausprobieren.

Bis bald.
Frederik
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#17

Re: Änderungen an Edits und Co feststellen

  Alt 24. Jun 2007, 12:16
Hallo,

du solltest zwei Problemfelder sauber voneinander trennen: Die Feststellung, ob sich etwas geändert hat und die Steuerung der Aktionsschalter. Letzteres wird zeitgemäß über das Ereignis OnUpdate() einer Action erledigt, welche dann den Aktionselementen zugeordnet wird.

Beim angehängten Beispiel muss beachtet werden, dass Controls mit gekapselten StringListen (ListBox) Änderungen an diesen Listen nicht melden.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip modified_181.zip (2,0 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#18

Re: Änderungen an Edits und Co feststellen

  Alt 24. Jun 2007, 14:47
Hallo marabu!

Zitat von marabu:
[...] und die Steuerung der Aktionsschalter. Letzteres wird zeitgemäß über das Ereignis OnUpdate() einer Action erledigt, welche dann den Aktionselementen zugeordnet wird.
Mit Deinem Beispiel und dieser Erklärung hast Du gerade ein ganz anderes Problem für mich gelöst. Ich hatte immer einzelne ActionExecutes zugewiesen und nicht auf den Sender geprüft. Zusätzlich hatte ich manuelle Enabled/Disabled-Prüfungen.

Jetzt liegt alles in jeweils einer Prozedur (1x Execute, 1x Update), die alles prüft.

Nun habe ich endlich die ActionsLists verstanden! Danke Dir, das suchte ich auch noch!!



Zurück zum Problem:
Ich sehe gerade, daß z.B. Borland in der IDE den "Speichern" Button immer verfügbar hält. Die haben sich also auch nicht die Arbeit gemacht.

Da frage ich mich, ob ich mir überhaupt die Arbeit machen sollte. Insbesondere bei Komponenten wie VST oder anderen, die garnicht Modified oder OnChange bieten...

Gibt es hier welche, die Speichern auch immer anbieten (nicht verwechseln mit "Speichern Unter").

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#19

Re: Änderungen an Edits und Co feststellen

  Alt 24. Jun 2007, 16:13
Hallo,

die Aktion "Speichern" immer anzubieten finde ich nicht so gut, der Benutzer hat dann keine visuelle Kontrolle mehr. Die Überwachung von komplexen Komponenten lässt sich immer auf ein einfaches Problem zurückführen. Bei einem Grid (VST kann auch als ein Grid betrachtet werden) würde ich den Änderungsstatus des einzelnen Datensatz überwachen.

Freundliche Grüße
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#20

Re: Änderungen an Edits und Co feststellen

  Alt 25. Jun 2007, 08:18
Hi marabu!

Zitat von marabu:
die Aktion "Speichern" immer anzubieten finde ich nicht so gut, der Benutzer hat dann keine visuelle Kontrolle mehr. Die Überwachung von komplexen Komponenten lässt sich immer auf ein einfaches Problem zurückführen. Bei einem Grid (VST kann auch als ein Grid betrachtet werden) würde ich den Änderungsstatus des einzelnen Datensatz überwachen.
Mist, ich hoffte schon einen Fürsprecher zu finden, um mir die Arbeit zu sparen

Aber Du hast mich überzeugt. Ich habe bei VST die Prüfung einfach in das EndEdit der EditLink-Propertyclass eingebaut. Habe nur noch eine Komponente, die kein OnChange o.ä. hat. Onclick geht zwar, aber das klappt mit Änderungen per Tastatur nicht...

Gruß winkel79
Frederik
  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 12:13 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