Wirf eine TActionList auf das Form, mach einen Doppelklick drauf um den zugehörigen Komponenteneditor zu öffnen. In dessen Toolbar gibt es einen Add-Knopf, damit fügst Du eine TAction zu der Liste hinzu, die dann auch automatisch in der Komponentenliste des Forms auftaucht und im Objektinspektor bearbeitet werden kann. Gehe dort auf den Tab für die Events. Die relevanten Events für eine TAction sind OnExecute und OnUpdate. Wenn Du die dropdownliste für OnExecute aufklappst solltest Du da die Methode sehen, die Du dem Button OnClick-Event zugeordnet hast (plus alle anderen TNotifyEvents auf dem Form), die kannst Du direkt auswählen. Mach dann einen Doppelklick auf OnUpdate um die
IDE einen Handler dafür erzeugen zu lassen. Den füllst Du dann etwas so aus:
Delphi-Quellcode:
procedure TForm1.Action1Update(Sender: TObject);
begin
(Sender as TAction).Enabled := edit1.GetTextLen > 0;
end;
Dann klick auf den Button und setzte im
OI seine Action-Eigenschaft auf die Action (hier Action1). Der Button übernimmt dadurch auch Caption, Hint, Imageindex etc. von der Action, die muss man also auch in den Eigenschaften der Action festlegen.
Wenn Du das Programm dann laufen läßt wird der Button automatisch disabled solange das edit1-Control leer ist.