AGB  ·  Datenschutz  ·  Impressum  







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

Status eines Buttons abfragen

Ein Thema von Luckner · begonnen am 16. Jan 2019 · letzter Beitrag vom 18. Jan 2019
Antwort Antwort
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Status eines Buttons abfragen

  Alt 16. Jan 2019, 15:01
Hallo peterbelow,

könntest Du mir ein Beispiel für "Action mit dem Button" zeigen? Habe damit so nie gearbeitet.

Gruß, Luckner
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
493 Beiträge
 
Delphi 12 Athens
 
#2

AW: Status eines Buttons abfragen

  Alt 16. Jan 2019, 15:12
Hallo mit
Delphi-Quellcode:
  
procedure TForm1.e1Exit(Sender: TObject);
begin
  if Screen.ActiveControl = btCancel then
    exit
  else
    ...;
end;
könnte man das erreichen.
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
718 Beiträge
 
Delphi 12 Athens
 
#3

AW: Status eines Buttons abfragen

  Alt 17. Jan 2019, 10:36
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.
Peter Below
  Mit Zitat antworten Zitat
DasWolf

Registriert seit: 7. Jun 2016
76 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: Status eines Buttons abfragen

  Alt 17. Jan 2019, 11:18
Hallo,

der TE hat doch geschrieben, dass es einen Schalter "Abbrechen" gibt, der das Panel schließen soll. Interpretiert man den Text richtig, kommt dabei heraus, dass dieser Schalter auch freigegeben sein soll, wenn im Edit-Feld nichts steht.
Also muss der Schalter immer Enabled sein.

Er kann einfach nur einen TSpeedButton nehmen. Dieser lässt beim Klick den Focus auf dem Edit-Feld, führt kein OnExit-Ereignis aus und schließt das Panel.
Dafür braucht man keine Action oder sonst irgendeinen Code.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Status eines Buttons abfragen

  Alt 17. Jan 2019, 11:26
Hallo,

der TE hat doch geschrieben, dass es einen Schalter "Abbrechen" gibt, der das Panel schließen soll. Interpretiert man den Text richtig, kommt dabei heraus, dass dieser Schalter auch freigegeben sein soll, wenn im Edit-Feld nichts steht.
Also muss der Schalter immer Enabled sein.

Dagegen spricht auch nichts, aber der Button "OK" (oder wie er zum Bestätigen auch immer heißt) betrifft das enablen oder disablen.

Der "Abbrechen"-Button muss natürlich immer enabled sein. Sein Problem war nur das "OnExit"-Event.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Status eines Buttons abfragen

  Alt 17. Jan 2019, 15:44
Wie wäre es damit, alles in dem Form zu deaktivieren, bis auf das Edit und den Button?
Im OnExit kannste prüfen, ob was im Edit steht und danach alles Andere aktivieren; wenn nicht, dann ist nur der Button erreichbar.
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Status eines Buttons abfragen

  Alt 18. Jan 2019, 07:26
Mit meinem Lösungsvorschlag braucht es (sofern nicht für andere Funktionen genutzt) kein onExit-Event = kein Problem mehr.
Und mit der Lösung von peterbelow wohl auch nicht, habe ich aber bisher selber noch nicht mit gearbeitet.

Und warum gleich ALLES disablen, wenn es reicht den "Bestätigungsbutton" zu ein-/auszuschalten!?
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Status eines Buttons abfragen

  Alt 18. Jan 2019, 08:12
Weil man ohnehin nirgends hinwechseln darf, sollte nichts eingetragen sein, war aber nur so eine Idee, kein credo
Nr.1 Delphi-Tool: [F7]
  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 10:53 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