Announcement

Collapse
No announcement yet.

Save Button enable/disable

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Save Button enable/disable

    Hallo,

    Ich hab ein Formular auf dem die Programmparameter gewartet werden.
    Ich hab oben in der Button-Leiste einen Button zum speichern. Ich möchte nun diesen Button enablen sobald eines der Eingabefelder (Edit, Combobox, ...) verändert hat.
    Ich kann zwar in jede Komponente auf dem Form den entsprechenden Code eingeben aber das ist fehleranfällig.
    Gibts da eine andere Lösung?

    LG
    Peter

  • #2
    Hallo Peter,

    mach doch folgendes: 1. alle Felder enabled:=false
    dann den button so bauen das man über den Button, die Felder zur Eingabe freischaltet und dann über den Button wieder speichern.

    hier ein kleines Beispiel:

    <pre>
    var config_edit:boolean; // globale Variable

    // config_edit:= false; // standardmäßig setzen beim Programmstart!

    procedure THauptformular.B_config_edit_saveClick(Sender: TObject);
    begin
    if config_edit then
    begin
    b_config_edit_save.caption:='Konfiguration bearbeiten';
    application.ProcessMessages;
    main_daten.Daten.T_config.post;
    config_edit:=false;
    end
    else
    begin
    b_config_edit_save.caption:='Konfiguration speichern';
    application.ProcessMessages;
    main_daten.Daten.T_config.post;
    config_edit:=true;
    end;
    config_feld1.enabled:=ap_edit;
    config_feld2.enabled:=ap_edit;
    // und so weiter für jedes Feld

    end;
    </pre>

    Klappt ganz hervoragend, und man kann damit verhindern, das etwas verändert werden ohne das die Werte gespeichert werden.

    Gruß Marti

    Comment


    • #3
      Hi,
      reicht es Dir nicht, wenn Du bei einer Komponente im onChange-Ereignis hinterlegst
      <BR>"SpeichernButton.enabled:=true"<BR> und Du dann diese Procedure bei allen anderen Komponenten referenzierst?
      <BR> Andrea

      Comment


      • #4
        @Andreas:<br>
        Ja, dass sollte reichen, wenn er davor noch die Prüfung Sender<>NIL stellt. Sonst wird schon beim Befüllen der Felder vom Programm aus der Button eingeschaltet. Oder wenn er die Prüfung auf Visible=TRUE beschränkt und die Felder vom Programm her vor der Anzeige befüllt.<p>
        Schöne Grüße, Mario Noac
        Schöne Grüße, Mario

        Comment


        • #5
          He Leute,

          Super toll, Genau das was ich brauchte.
          einfach, wirkungsvoll und störungsfrei.

          vielen DANK auch

          Lg
          Pete

          Comment

          Working...
          X