AGB  ·  Datenschutz  ·  Impressum  







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

Zustand eines Buttons erkennen

Ein Thema von Luckner · begonnen am 20. Okt 2015 · letzter Beitrag vom 23. Okt 2015
Antwort Antwort
Seite 3 von 4     123 4      
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#21

AW: Zustand eines Buttons erkennen

  Alt 20. Okt 2015, 15:20
Deswegen ist es wohl am besten einfach beides zu machen

Ist doch bei Formularen im Internet meist auch so. Wenn möglich wird begrenzt, was da so eingegeben werden kann, trotzdem findet eine serverseitige Validierung statt, die dann entsprechende Fehleingaben zurückmeldet.
Das wäre dann (bezogen auf dieses Beispiel) aber nicht unbedingt beim OnExit eines Controls, sondern bei drücken des Speichern-Buttons.
Ralph
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#22

AW: Zustand eines Buttons erkennen

  Alt 20. Okt 2015, 15:22
Hallo,

folgendes Problem. Ich habe ein Editfeld und einen Abbruch-Button. Im Editfeld sollen und müssen nur Zahlen eingetragen werden....
Wenn ich das "müssen" richtig interpretiere, darf der Inhalt des TEdit nicht leer sein. Folglich muss an anderer Stelle sowieso noch eine Validierung auf <> '' stattfinden, womöglich auch noch Wertebereich-Check usw.

BTW ein einfaches TEdit ist nun mal keine "gute" Komponente für ein rein numerisches Eingabefeld. Auch nicht die neue Variante mit "NumbersOnly", denn wenn die z.B. noch mit dem Default-Text "Edit1" vorbelegt ist, oder der Text falsch vorbelegt wird (Edit1.Text := 'Hallo') dann hat man ein ähnliches Problem.
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
FarAndBeyond
(Gast)

n/a Beiträge
 
#23

AW: Zustand eines Buttons erkennen

  Alt 20. Okt 2015, 15:56
FormKeyPress:
Delphi-Quellcode:
If Sender Is TEdit
Then
 Begin
  If Pos(Key,'1234567890'+#8#27#13) = 0 Then Key:= #0;
 End;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#24

AW: Zustand eines Buttons erkennen

  Alt 20. Okt 2015, 15:58
Nur ein Tipp zum Vorgehen, ohne dass etwas blockiert:

Keine blokierenden Operationen im OnExit und es gibt keine Probleme.


Im OnExit oder OnChange nur prüfen und dann per Farbe, Hint, BallonHint oder Dergleichen den Status/Hinweis anzeigen.
Der HintText ist auch nett, wenn etwas eingegeben werden muß, da er nur angezeigt wird, wenn nichts in Text steht.

Und bei "OK" (Ausführen der Aktion) dann mit richtigen Fehlermeldungen um sich werden, wenn dann immernoch nichts drin steht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Zustand eines Buttons erkennen

  Alt 20. Okt 2015, 16:04
Ich hab die Jedis nicht, aber hat so ein TJvValidateEdit kein OnValidate-Event?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
FarAndBeyond
(Gast)

n/a Beiträge
 
#26

AW: Zustand eines Buttons erkennen

  Alt 20. Okt 2015, 19:12
Zitat:
Bei der KeyPress-Variante wird aber die Zwischenablage nicht berücksichtigt, d.h. damit bekommt man immer noch Grütze ins Edit.
Seit wann kann Grütze selbstständig irgendwo hingehen?
Außerdem kann man den einfachen Zugang ja blocken:
Delphi-Quellcode:
Procedure TForm1.Edit1ContextPopup(Sender: TObject; MousePos: TPoint; Var Handled: Boolean);
 Begin
  Handled:= True;
 End;

Procedure TForm1.Edit1KeyDown(Sender: TObject; Var Key: Word; Shift: TShiftState);
 Begin
  If (ssShift In Shift) Then Key:= 0;
 End;

Procedure TForm1.Edit1KeyPress(Sender: TObject; Var Key: Char);
 Begin
  If Pos(Key,'1234567890'+#8#27#13) = 0 Then Key:= #0;
 End;
STRG+V und Shift+Einfg fällt jetzt flach und ebenso die rechte Maustaste...

Das sollte doch erstmal reichen, außerdem gibt es immernoch Try Except End.
Was bleibt wäre expliziter Code... gibt es sonst noch 'was???
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#27

AW: Zustand eines Buttons erkennen

  Alt 20. Okt 2015, 19:22
Die Jedi's kenne ich nicht. (Vorab-)Validierung bei der Eingabe lässt sich meiner Meinung nach immer noch am Benutzerfreundlichsten mit der Orpheus-Bibliothek von Turbopower realisieren, die ich mittlerweile schon ca. 18 Jahren verwende. Sind OpenSource und heute immer noch erste Sahne, dazu die komfortablen Einstellungen im OvcController wie AutoAdvanceChar, AutoAdvanceLeftRight, AutoAdvanceUpDown, AutoSelect, BeepOnError und InsertPushes.
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
970 Beiträge
 
Delphi 6 Professional
 
#28

AW: Zustand eines Buttons erkennen

  Alt 20. Okt 2015, 20:04
Um mal zur Fragestellung zurück zu kommen...

Mit Delphi 6 gehts z.B. so:

Delphi-Quellcode:
procedure TForm1.Edit1Exit(Sender: TObject);
begin
  if not(ActiveControl is TButton) then DoValidate(Edit1.Text);
end;
Statt '(ActiveControl is TButton)' kannst Du auch 'ActiveControl = AbbruchButton' benutzen und somit wird das Validieren nur ausgeführt, wenn du NICHT auch Abbruch clickst..
  Mit Zitat antworten Zitat
Luckner

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

AW: Zustand eines Buttons erkennen

  Alt 21. Okt 2015, 13:32
Danke an Alle. HolgerX werde Deinen Vorschlag mal ausprobieren und werde das Ergebnis hier melden.

Luckner.
  Mit Zitat antworten Zitat
Luckner

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

AW: Zustand eines Buttons erkennen

  Alt 23. Okt 2015, 11:03
Hallo HolgerX,

bin gerade erst dazu gekommen Dein Vorschlag auszuprobieren. Leider schmeißt mein Delphi7 Ent. 'ActiveControl' als undefinierten Bezeichner raus. Benutzt Du spezielle Buttons?

Gruß, Luckner
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 02:57 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