Autor Beitrag
mexx
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 09.11.05 08:21 
Hallo,

ich habe ein DBEdit-Feld welches nur zewi Werte eingetragen bekommen darf. Wie deklariere ich das am professionellsten?

gruß
digi_c
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1905

W98, XP
D7 PE, Lazarus, WinAVR
BeitragVerfasst: Mi 09.11.05 08:45 
Du könntest mit dem OnkeyPress/OnkeyDown Ereignis arbeiten, so macht man das eigentlich.

Falls du eine Auswahl von zwei Werten machen willst, kannst du doch auch einfach eine Combobox nehmen, oder?
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 09.11.05 08:48 
Ja, da will ich ja auch die Kontrolle hinlegen, aber ich dachte mir, es gibt doch sicherlich eine proffesionellere Variante als eine IF-Abfrage des Wertes? Immerhin dürfen ja auch nur 2 verschiedene Zahlen rein und keine anderen Zeichen. Ich dachte mir, es muss doch auch schöner zu lösen sein als ne IF-Abfrage und einen try-Block zum Abfangen von falschen Werten.

Muss ein Edit bleiben!
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 09.11.05 10:32 
Habe es folgendermassen gelöst.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TZeitmodelle.DBEdit8KeyPress(Sender: TObject; var Key: Char);
begin
If not (key in ['1'..'4',chr(8)]) then
 Begin
  ErrorMessage('Anzahl ungültig!');
  key := #0;
 End;


Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mi 09.11.05 10:46 
Hallo! :wink2:

user profile iconmexx hat folgendes geschrieben:
Ich dachte mir, es muss doch auch schöner zu lösen sein als ne IF-Abfrage und einen try-Block zum Abfangen von falschen Werten.

Wenn nur zwei Werte eingetragen werden dürfen dann musst du halt eine Prüfung einbauen und eine Prüfung geht nun mal mit einer IF-Anweisung. Also genau DAS was du brauchst. Deswegen verstehen ich nicht was daran nicht "schön" sein soll.

Als "nicht schön" könnte man aus der Sicht des Anwendungsbenutzer aber die Eingabeform bezeichnen. Zwei RadioButtons sind für diese Eingabeart viel eleganter als ein Edit-Feld mit einer Prüfung.

Lg Martin

_________________
Ein Nutzer der Ecke ;-)
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 09.11.05 10:48 
Ja, ist ja richtig, aber es MUSS nun mal leider ein Editfeld sein, auch wenn es gegen jede Logik geht.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mi 09.11.05 10:55 
Hm... dann hast du aber irgendwo Mist gebaut (Designfehler?). ;-)

Warum "muss" es denn ein Editfeld sein?

_________________
Ein Nutzer der Ecke ;-)
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 09.11.05 11:00 
Nicht ich, CHEFE!!!

Und CHEFE sagt, mach Editfeld!

Und was CHEFE sagt, ist richtig....
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mi 09.11.05 11:04 
Ah so läuft das bei Euch. Super! Naja, dann erspare ich mir mal jeglichen Kommentar.

Lg Martin

_________________
Ein Nutzer der Ecke ;-)
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 09.11.05 11:11 
Ich weis, nicht korrekt aber ich bin nocht nicht lange hier, somit halte ich die Bälle flach und befolge zunächst nur Befehle, bis ich ein paar Steine im Brett habe.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mi 09.11.05 11:14 
War ja auch nicht negativ auf dich bezogen sondern auf deinen Chef. ;-)

Aber trotzdem kannst du doch von Deinem Chef erwarten, dass er dir eine vernüftige Begrüdung für seine Entscheidung liefert. Aber jetzt werden wir hier Off-Topic. ;-)

_________________
Ein Nutzer der Ecke ;-)
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 09.11.05 11:22 
ICH: "Warum Edit und nicht GroupBox?"
CHEF: "Weil es möglich ist, das sich die Zahl der möglichen Werte irgendwann erhöht. Wäre dies der Fall so müsse man im Quelltext Änderungen vornehmen."
ICH: "Wenn ich auf das Editfeld eine Prüfung mache, ob die Inhalte auch korekte Inhalte sind, so müsse man die Änderung der möglichen Werte auch im Quelltext bei der Prüfung ändern. Zwangsläufig kommt es auf eine Änderung des Quellstextes herraus, wenn man die Anzahl ändert."
CHEF: "..."

GOIL!!!!!!

PS: Off Topic? Solange es der Moderator net merkt! :wink:
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mi 09.11.05 11:32 
Eine Änderung im Quelltext, wie du selbst geschrieben hast, musst du wahrscheinlich immer durchführen.

Mein Einwand war ja aus der Sicht des Anwendungsbenutzers gestellt und nicht aus der Sicht des Programmierers. Wenn sich die Liste der erlaubten Werte wirklich mal ändern/erweitert wird dann würde ich vielleicht eine Listbox empfehlen in der dann die erlaubten Werten enthalten sind.

Die Listbox hat den Vorteil, das sie optisch und vom Layout her meistens besser integriet werden kann vor allem dann, wenn Dein Chef auf "Edit" Felder steht. :-D Außerdem hat es den Vorteil, dass du am Fenster und am Layout nachträglich nichts ändern musst wenn neue mögliche Werte hinzugefügt werden müssen. Denn es reicht ja eine simple Erweiterung im Quelltext:
ausblenden Delphi-Quelltext
1:
Listbox.Items.Add ('neuer möglicher Wert');					


Lg Martin

_________________
Ein Nutzer der Ecke ;-)
mexx Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1183



BeitragVerfasst: Mi 09.11.05 11:37 
Wie gesagt, viel wind um nix. Das Editfeld ist kein Feld, welches regelmäsig benutzt wird. Höchtens 1-3 mail im Jahr. Da sollte es wohl kein Problem sein, wenn der User eine Maske sieht, die nicht den Standart entspricht.
Martin1966
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1068

Win 2000, Win XP
Delphi 7, Delphi 2005
BeitragVerfasst: Mi 09.11.05 12:04 
Deine Entscheidung.

_________________
Ein Nutzer der Ecke ;-)