AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi OnClick Ereignis nur einmal auslösen
Thema durchsuchen
Ansicht
Themen-Optionen

OnClick Ereignis nur einmal auslösen

Ein Thema von Luca Haas · begonnen am 1. Sep 2017 · letzter Beitrag vom 1. Sep 2017
Antwort Antwort
Luca Haas

Registriert seit: 23. Aug 2017
Ort: Bad Breisig
139 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

OnClick Ereignis nur einmal auslösen

  Alt 1. Sep 2017, 10:35
Hallo Leute,
ich habe ein Edit, mit einem Text drin, in welches der Benutzer einige Daten eintragen soll.
Dazu benutze ich:
Code:
procedure TForm1.Edit1Click(Sender: TObject);
begin
  Edit1.Text := '';
end;
Allerdings lösche ich so jedes Mal den Text im Edit, möchte dies allerdings nur beim ersten Mal machen.
Ist es möglich eine Art Edit1.OnFirstClick zu programmieren ?
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#2

AW: OnClick Ereignis nur einmal auslösen

  Alt 1. Sep 2017, 10:37
Ja, mit einer bool'schen Variable, als Feld der Form (FEditClearedOnce: boolean), die im FormCreate initialisiert (FEditClearedOnce := false) und in Deinem Event (if not FEditClearedOnce) abgefragt und umgesetzt wird (FEditClearedOnce := true).
  Mit Zitat antworten Zitat
Benutzerbild von Ritsch
Ritsch

Registriert seit: 15. Apr 2014
Ort: Wolfenbüttel
33 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: OnClick Ereignis nur einmal auslösen

  Alt 1. Sep 2017, 10:38
Einfach die Zuweisung auf das Event löschen.
Code:
procedure TForm1.Edit1Click(Sender: TObject);
begin
  Edit1.OnClick:= nil;
  Edit1.Text := '';
end;
Richard
  Mit Zitat antworten Zitat
Luca Haas

Registriert seit: 23. Aug 2017
Ort: Bad Breisig
139 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: OnClick Ereignis nur einmal auslösen

  Alt 1. Sep 2017, 10:42
Okay danke dir CCRDude, klappt perfekt.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: OnClick Ereignis nur einmal auslösen

  Alt 1. Sep 2017, 11:32
Einfach die Zuweisung auf das Event löschen.
Code:
procedure TForm1.Edit1Click(Sender: TObject);
begin
  Edit1.OnClick:= nil;
  Edit1.Text := '';
end;
Das wäre dann aber sehr radikal. Spätestes dann wenn er die Aktion wieder ausführen wollte würde er sich dann wundern wieso nichts mehr funktioniert. Nichtmal der Debugger würde mehr am Event anhalten. Da ist eine Variable dann 1000 Mal besser.

Die kann dann bei einer bestimmten Aktion auch einfach wieder zurückgesetzt werden und dann klappt auch das Löschen des Inhaltes wieder.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: OnClick Ereignis nur einmal auslösen

  Alt 1. Sep 2017, 11:50
Warum, wenn es nur einmal ausgeführt werden soll?
Im anderen Fall würde ich eher das Control inaktivieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#7

AW: OnClick Ereignis nur einmal auslösen

  Alt 1. Sep 2017, 11:58
Ich vermute, es geht bei dem Edit und dem Text, der vor der Benutzerinteraktion drin steht darum sowas wie Delphi-Referenz durchsuchenTEdit.TextPrompt nachzubauen. Falls ja...lass es und nutze die entsprechende Property. Falls nein, schweige ich wieder.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: OnClick Ereignis nur einmal auslösen

  Alt 1. Sep 2017, 12:01
Ich vermute, es geht bei dem Edit und dem Text, der vor der Benutzerinteraktion drin steht darum sowas wie Delphi-Referenz durchsuchenTEdit.TextPrompt nachzubauen. Falls ja...lass es und nutze die entsprechende Property. Falls nein, schweige ich wieder.
Bzw. Delphi-Referenz durchsuchenTEdit.TextHint in der VCL.
  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 05:17 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