Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi 3 Editfelder miteinander arbeiten lassen (https://www.delphipraxis.net/108463-3-editfelder-miteinander-arbeiten-lassen.html)

Mackhack 14. Feb 2008 06:37


3 Editfelder miteinander arbeiten lassen
 
Hallo DPler,

wie koennte ich folgendes am einfachsten realisieren?

Ich habe 3 Editfelder und alle 3 sollen im Prinzip untereinander zusammenarbeiten.

Gibt der User im ersten Feld den Nettoertrag ein und im zweiten Feld den Bruttoertrag ein so soll im 3. Feld der Rohertrag in % eingetragen/ausgegeben werden.

Gibt der User im ersten Feld den Nettoertrag ein und im 3. Feld den Rohertrag in % ein so soll der Bruttobetrag im zweiten Feld eingetragen/ausgegeben werden vom Programm.

Gibt der User im zweiten Feld den Bruttoertrag ein und im 3. Feld den Rohertrag in % ein so soll der Nettoertrag im ersten Feld eingetragen/ausgegeben werden.

Ich steh grad irgendwie auf dem Schlauch!

Danke!

Kroko1999 14. Feb 2008 06:38

Re: 3 Editfelder miteinander arbeiten lassen
 
TEdit.OnChange nutzen

Mackhack 14. Feb 2008 06:39

Re: 3 Editfelder miteinander arbeiten lassen
 
Zitat:

Zitat von Kroko1999
TEdit.OnChange nutzen

Ja, dabei bin ich ja! Das Problem das ich habe ist wie ermittle ich ob wie im ersen Beispiel was im ersten und zweiten Feld steht und deshalb im 3. etwas geschehen muss?

mkinzler 14. Feb 2008 06:41

Re: 3 Editfelder miteinander arbeiten lassen
 
Du musst dir Merken, wieviele Zahlen eingetragen wurden und wo und dann die 3. Komponente berechnen.

Mackhack 14. Feb 2008 06:49

Re: 3 Editfelder miteinander arbeiten lassen
 
Zitat:

Zitat von mkinzler
Du musst dir Merken, wieviele Zahlen eingetragen wurden und wo und dann die 3. Komponente berechnen.

Hm,

sollte ich da eher auf das OnExit gehen und dann abfragen in der Art:

Edit2.Exit:
If Edit1 and Edit2 <> '' then fuelle Edit3

Edit3.Exit:
If Edid3 and Edit2 <> '' then fuelle Edit1

Edit1.Exit:
If Edit3 and Edit1 <> '' then fuelle Edit2

mkinzler 14. Feb 2008 06:52

Re: 3 Editfelder miteinander arbeiten lassen
 
Ich würde nicht auf Leerstring prüfen, sondern mir Merken, wo was eingetragen wurde.

Mackhack 14. Feb 2008 06:55

Re: 3 Editfelder miteinander arbeiten lassen
 
Zitat:

Zitat von mkinzler
Ich würde nicht auf Leerstring prüfen, sondern mir Merken, wo was eingetragen wurde.

Kannst mir mal eben kurz ein Beispiel zeigen bitte?

Danke!

KesseK 14. Feb 2008 07:54

Re: 3 Editfelder miteinander arbeiten lassen
 
Schreib den Inhalt doch in Variablen und lass die dann ausgeben.

marabu 14. Feb 2008 08:05

Re: 3 Editfelder miteinander arbeiten lassen
 
Hallo Tobias,

für ein ähnliches Problem habe ich hier eine Demo bereit gestellt: klick

Freundliche Grüße

taaktaak 14. Feb 2008 08:30

Re: 3 Editfelder miteinander arbeiten lassen
 
Moin, Moin,

vielleicht hilft auch folgendes Beispiel: Auf der Form sind 3 Edits, Aufgabe ist einfaches Umrechnen von Euro<>Dollar. Die Berechnung erfolgt, wenn einer der Werte verändert wird - eine Eingabetaste ist nicht notwendig. Hier wird nicht das OnChange-Event, sondern das OnKeyUp verwendet. Das sollte sich doch ruck-zuck auf deine Aufgabenstellung anpassen lassen:

(Beispiel aus "Grundlagen, Profiwissen, Kochbuch")

Delphi-Quellcode:
procedure TFO~~.EditKeyUp(Sender:TObject;var Key:Word;Shift:TShiftState);
var kurs,euro,dollar : Single;
    s               : string;
    code            : Integer;
begin
  Val(Form1.Edit1.Text,kurs,code);  // Kurs einlesen
  if code <> 0 then Exit;

  Val(Form1.Edit2.Text,euro,code);  // Euro einlesen
  if code <> 0 then Exit;
 
  Val(Form1.Edit3.Text,dollar,code); // Dollar einlesen
  if code <> 0 then Exit;
 
  if Sender=Edit3 then euro :=dollar * kurs // dollar verändert
                  else dollar:=euro / kurs; // euro oder kurs verändert
                   
  if Sender=Edit3 then begin
    Str(euro:8:2,s);
    Form1.Edit2.Text:=s
    end
                    else begin
    Str(dollar:8:2,s);
    Form1.Edit3.Text:=s
    end
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:56 Uhr.
Seite 1 von 2  1 2      

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