AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Spinedits deren Eingaben sich gegenseitig begrenzen
Thema durchsuchen
Ansicht
Themen-Optionen

Spinedits deren Eingaben sich gegenseitig begrenzen

Ein Thema von DelphiManiac · begonnen am 6. Feb 2007 · letzter Beitrag vom 9. Feb 2007
Antwort Antwort
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Spinedits deren Eingaben sich gegenseitig begrenzen

  Alt 6. Feb 2007, 09:40
Hallo,

ich habe wieder einmal ein logisches Problem.
Ich nutzte 2 JvSpinedit Felder (für diejenigen, die die Komponente nicht kennen Screeni im Anhang)
Es sind Editfelder, die Fliesskommazahlen zulassen, und normale Integer, die man über ein Spinbutton,
hoch und runter zählen kann.

Mein Problem, ich habe jenachdem was für ein Zweck die Editfelder gerade haben (d.h. mit welchen Werten,
die Felder gefüllt werden) müssen die möglichen Eingaben der Felder sich gengenseitig begrenzen.

Beispiel:
Edit1 hat den MinWert:= 0 und den MaxWert: (Edit2-100)
Edit2 hat den MinWert: Edit1 + 100 max:=10000

Also es besteht immer ein Offset von 100.

Das das Delta(zwischen Edit1 und Edit2) muss 100 betragen.
Also darf z.B. folgender Zustand nicht auftreten:
Delphi-Quellcode:
Edit1.Value:= 0;
Edit1.Value:= 99;
Wo und wie mache ich diese Überprüfung und Begrenzung am Besten?
Es soll die Eingaben des Benutzters begrenzen, nicht die Quelltextdefinition)

Vielen Dank

Gruß
DelphiManiac
//Edit: Bild eingefügt
Miniaturansicht angehängter Grafiken
spin_113.gif  
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Spinedits deren Eingaben sich gegenseitig begrenzen

  Alt 6. Feb 2007, 09:47
im edit1.onchange den Grenzwert für edit2 setzen und umgekehrt.

Pseudocode:
Delphi-Quellcode:
Edit1.onChange:
  Edit2.min := Edit1.wert + 100;
Edit2.onChange:
  Edit1.max := Edit2.wert + 100;
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#3

Re: Spinedits deren Eingaben sich gegenseitig begrenzen

  Alt 6. Feb 2007, 09:50
Habe mal die Ereignisse im Screenshot angehängt
Miniaturansicht angehängter Grafiken
ereig_118.gif  
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Spinedits deren Eingaben sich gegenseitig begrenzen

  Alt 6. Feb 2007, 09:55
Denkfehler ... siehe mein erster Post.
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#5

Re: Spinedits deren Eingaben sich gegenseitig begrenzen

  Alt 6. Feb 2007, 10:28
Hi,

ja denke so könnte es klappen, habe da zwar wahrscheinlich noch Probleme wenn ich dann das ganze
mit einem Exponent 10 hoch-2 bewerte und dann die Grenzen neu setzten muss.
Aber dass guck ich mir mal an, bei Problemen meld ich mich wieder.

Gruß
DelphiManiac
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Spinedits deren Eingaben sich gegenseitig begrenzen

  Alt 6. Feb 2007, 11:57
Hallo,

ich würde auf die Eingabe des zweiten Wertes verzichten, da der zweite Wert aus dem ersten Wert abgeleitet werden kann. Der berechnete Wert kann ruhig angezeigt werden, aber warum sollte jemand ihn editieren?

Grüße vom marabu
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#7

Re: Spinedits deren Eingaben sich gegenseitig begrenzen

  Alt 6. Feb 2007, 14:12
@marabu:

Hallo, ich glaube da hast du mich einwenig missverstanden, also beide Editfelder sollen einstellbar(veränderbar)
sein.

Es muss nur gewährleistet sein, dass zwischen Edit1 und Edit2 ein Offset von min. 100 besteht.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Spinedits deren Eingaben sich gegenseitig begrenzen

  Alt 6. Feb 2007, 14:49
Ah, jetzt, ja.

Dann würde ich aber die Min-Max-Values unangetastet lassen:

Delphi-Quellcode:
const
  MIN_DIST = 100;
  MIN_VAL = 0;
  MAX_VAL = 10000;

procedure TDemoForm.LowEditChange(Sender: TObject);
begin
  if HighEdit.Value < (LowEdit.Value + MIN_DIST) then
    HighEdit.Value := LowEdit.Value + MIN_DIST;
end;
Freundliche Grüße
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#9

Re: Spinedits deren Eingaben sich gegenseitig begrenzen

  Alt 9. Feb 2007, 11:34
@marabu

Hey genau so werde ich es machen!!
So klappt die gegenseitige Begrenzung super.
Danke und Viele Grüße
DelphiManiac
  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 14:33 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