Hallo Gemeinde,
wie vielleicht einige wissen komme ich von Delphi her und lerne jetzt Java.
Bei uns gab es einen Spruch.
Die meisten Computerfehler sitzen vor dem Bildschirm.
Und das stimmt.
Hier kommt was für absolute Java-Spezialisten.
Nun sollte man, als guter Programmierer, versuchen so viel wie möglich zu verhindern,
das der Anwender Fehler machen kann.
z. B. bei einer Eingabe (ist ja immer ein Textfeld und es können alle Zeichen eingegeben werden)
- bei Integer-Wert nur Zahlen und eventuell Vorzeichen
- bei Double-Wert nur Zahlen und eventuell Komma und Vorzeichen
- bei String-Wert alles
- bei Datum-Wert nur Zahlen und zwei Punkte und Gültigkeit prüfen
- bei Uhrzeit-Wert nur Zhalen und zwei Doppelpunkte und Gültigkeit prüfen
eingeben lassen.
So kann der Anwender schon gar kein Fehler machen und man erspart sich Ärger.
In Delphi habe ich das gemacht (Jetzt kommen Object-Pascal Befehle).
Vor der Eingabe (Variable initialisieren)
Der eigentlich Code während der Eingabe
Nach der Eingabe
Gibt es sowas auch schon in Java?
Ich bin gerade dabei, das nach Java zu portieren.
Ich glaube aber, dass das die Königsklasse der Programmierung ist, und nur was für absolute Spezialisten.
So, das wollte ich Euch mal mitteilen.
Frohe Ostern und schöner Gruß
Jürgen
wie vielleicht einige wissen komme ich von Delphi her und lerne jetzt Java.
Bei uns gab es einen Spruch.
Die meisten Computerfehler sitzen vor dem Bildschirm.
Und das stimmt.
Hier kommt was für absolute Java-Spezialisten.
Nun sollte man, als guter Programmierer, versuchen so viel wie möglich zu verhindern,
das der Anwender Fehler machen kann.
z. B. bei einer Eingabe (ist ja immer ein Textfeld und es können alle Zeichen eingegeben werden)
- bei Integer-Wert nur Zahlen und eventuell Vorzeichen
- bei Double-Wert nur Zahlen und eventuell Komma und Vorzeichen
- bei String-Wert alles
- bei Datum-Wert nur Zahlen und zwei Punkte und Gültigkeit prüfen
- bei Uhrzeit-Wert nur Zhalen und zwei Doppelpunkte und Gültigkeit prüfen
eingeben lassen.
So kann der Anwender schon gar kein Fehler machen und man erspart sich Ärger.
In Delphi habe ich das gemacht (Jetzt kommen Object-Pascal Befehle).
Vor der Eingabe (Variable initialisieren)
Code:
Edit1.Enabled:=True;
Edit1.Color:=clWhite;
Edit1.Font.Color:=clBlue;
Edit1.ReadOnly:=False;
Edit1.Text:='';
ialpha:='';
inummer:=0;
iart:=2;
inumkom:=0;
ikomma:=0;
izeich:=3;
istell:=0;
ifunc:=6;
ilanmax:=10;
ilanmin:=1;
iautocr:=1;
Form3.ActiveControl:=Edit1;
Der eigentlich Code während der Eingabe
Code:
unit Eingabe;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
var
itaste: char; // Tastencode
ifunc: integer; // Funktion
// 1 = nummerisch ohne Komma ohne Vorzeichen
// 2 = nummerich ohne Komma mit Vorzeichen
// 3 = nummerisch mit Komma ohne Vorzeichen
// 4 = nummerisch mit Komma mit Vorzeichen
// 5 = Alphanummerisch
// 6 = Datum
// 7 = Telefonnummer
// 8 = Uhrzeit
ilanmax: integer; // Eingabelaenge maximal
ilanmin: integer; // Eingabelaenge minimal
ikomma: integer; // Anzahl Nachkommastellen
iart: integer; // Eingabeart
// 1 = vorher/nachher anzeigen
// 2 = nachher anzeigen
// 3 = Stern anzeigen
// 4 = nicht anzeigen
// 5 = Überschreiben (nur bei ifunc=5)
// 6 = Einfügen (nur bei ifunc=5)
izeich: integer; // Zeichenart
// 1 = nur Kleinbuchstaben
// 2 = nur Grossbuchstaben
// 3 = Gross- und Kleinbuchstaben
iautocr: integer; // Automatischer Feldsprung
// 0 = nein
// 1 = ja
istell: integer; // Eingabestelle (vorher immer 0)
imkom: integer; // Merker ob Komma eingegeben worden
iminus: integer; // Merker Plus/Minus 0/1
ialpha: string; // Eingabefeld Alphanummerisch
inummer: integer; // Eingabefeld nummerisch mit Vorzeichen
inumkom: double; // Eingabefeld nummerisch mit Vorueichen und Komma
ivz: integer;
ivk: integer;
iko: integer;
ink: integer;
ivkl: integer;
procedure FeldEingabe(einfeld: TEdit);
implementation
procedure FeldEingabe(einfeld: TEdit);
var numm: integer;
var htaste: char;
var hstell: integer;
var hleer: string;
var hstern: string;
var xstern: string;
var hilf1: integer;
var hilf2: integer;
var hilf3: integer;
var hilf4: integer;
var hilf5: string;
var hilf6: string;
var hilf7: double;
var hilf8: integer;
var hilf9: integer;
begin
if ((iart = 5) and (ifunc = 5)) then
begin
hilf1:=einfeld.SelStart+1;
if (izeich = 1) then
begin
hilf5:=itaste;
hilf6:=LowerCase(hilf5);
itaste:=hilf6[1];
end;
if (izeich = 2) then
begin
hilf5:=itaste;
hilf6:=UpperCase(hilf5);
itaste:=hilf6[1];
end;
if hilf1 > ilanmax then
begin
einfeld.Text:=ialpha;
itaste:=char(0);
end else begin
hilf5:='';
hilf6:='';
if itaste <> chr(13) then
begin
if hilf1 > 1 then
begin
hilf5:=Copy(einfeld.Text,1,hilf1-1);
end;
if hilf1 < ilanmax then
begin
hilf2:=ilanmax-hilf1;
hilf6:=Copy(einfeld.Text,hilf1+1,hilf2);
end;
if itaste = char(8) then
begin
ialpha:=hilf5+hilf6;
if hilf1 > 1 then
begin
hilf1:=hilf1 - 1;
end;
end else begin
ialpha:=hilf5+char(itaste)+hilf6;
end;
itaste:=char(0);
end else begin
ialpha:=einfeld.Text;
end;
einfeld.Text:=ialpha;
end;
einfeld.SelStart:=hilf1;
einfeld.Update;
end else begin
if ((iart = 6) and (ifunc = 5)) then
begin
hilf1:=einfeld.SelStart+1;
if (izeich = 1) then
begin
hilf5:=itaste;
hilf6:=LowerCase(hilf5);
itaste:=hilf6[1];
end;
if (izeich = 2) then
begin
hilf5:=itaste;
hilf6:=UpperCase(hilf5);
itaste:=hilf6[1];
end;
if hilf1 > ilanmax then
begin
einfeld.Text:=ialpha;
itaste:=char(0);
end else begin
hilf5:='';
hilf6:='';
if itaste <> chr(13) then
begin
if hilf1 > 1 then
begin
hilf5:=Copy(einfeld.Text,1,hilf1-1);
end;
if hilf1 < ilanmax then
begin
hilf2:=ilanmax-hilf1;
hilf6:=Copy(einfeld.Text,hilf1,hilf2);
end;
if itaste = char(8) then
begin
ialpha:=hilf5+hilf6;
if hilf1 > 1 then
begin
hilf1:=hilf1 - 1;
end;
end else begin
ialpha:=hilf5+char(itaste)+hilf6;
end;
itaste:=char(0);
end;
einfeld.Text:=ialpha;
end;
einfeld.SelStart:=hilf1;
einfeld.Update;
end else begin
if iart > 4 then
begin
iart:=1;
end;
numm:=ord(itaste);
hstell:=ilanmax;
hleer:='';
hstern:='';
for hilf1:=1 to ilanmax do
begin
hleer:=hleer+' ';
hstern:=hstern+'*';
end;
if (istell = 0) then
begin
imkom:=0;
iminus:=0;
ivz:=0;
ivk:=0;
iko:=0;
ink:=0;
ivkl:=0;
if (ifunc = 2) then
begin
ivkl:=ilanmax - 1;
end;
if (ifunc = 3) then
begin
ivkl:=ilanmax - ikomma - 1;
end;
if (ifunc = 4) then
begin
ivkl:=ilanmax - ikomma - 2;
end;
if (ifunc = 7) then
begin
ivkl:=ilanmax - 1;
end;
if (iart > 1) then
begin
inummer:=0;
inumkom:=0;
ialpha:=hleer;
einfeld.Text:=hleer;
end else begin
if (ifunc = 1) then
begin
hilf5:='%';
hilf6:=Format('%d', [ilanmax]);
hilf5:=hilf5+hilf6+'d';
ialpha:=Format(hilf5, [inummer]);
einfeld.Text:=ialpha;
end;
if (ifunc = 2) then
begin
hilf5:='%-';
hilf6:=Format('%d', [hstell]);
hilf5:=hilf5+hilf6+'d';
ialpha:=Format(hilf5, [inummer]);
einfeld.Text:=ialpha;
hilf5:=Copy(ialpha, 1, 1);
if (hilf5 = '-') then
begin
iminus:=1;
end;
end;
if (ifunc = 3) then
begin
hilf5:='%';
hilf4:=ilanmax - ikomma - 1;
hilf6:=Format('%d', [hilf4]);
hilf5:=hilf5+hilf6+'.';
hilf6:=Format('%d', [ikomma]);
hilf5:=hilf5+hilf6+'f';
ialpha:=Format(hilf5, [inumkom]);
einfeld.Text:=ialpha;
for hilf4:=1 to ilanmax do
begin
hilf5:=Copy(ialpha, hilf4, 1);
if (hilf5 = ',') then
begin
imkom:=hilf4;
end;
end;
end;
if (ifunc = 4) then
begin
hilf5:='%-';
hilf4:=ilanmax - ikomma - 2;
hilf6:=Format('%d', [hilf4]);
hilf5:=hilf5+hilf6+'.';
hilf6:=Format('%d', [ikomma]);
hilf5:=hilf5+hilf6+'f';
ialpha:=Format(hilf5, [inumkom]);
einfeld.Text:=ialpha;
hilf5:=Copy(ialpha, 1, 1);
if (hilf5 = '-') then
begin
iminus:=1;
end;
for hilf4:=1 to ilanmax do
begin
hilf5:=Copy(ialpha, hilf4, 1);
if (hilf5 = ',') then
begin
imkom:=hilf4;
end;
end;
end;
if (ifunc = 5) then
begin
einfeld.Text:=ialpha;
end;
if (ifunc = 6) then
begin
einfeld.Text:=ialpha;
end;
if (ifunc = 7) then
begin
einfeld.Text:=ialpha;
end;
if (ifunc = 8) then
begin
einfeld.Text:=ialpha;
end;
end;
einfeld.update;
end;
if (istell >= hstell) then
begin
itaste:=chr(0);
numm:=0;
if (iautocr = 1) then
begin
itaste:=chr(13);
numm:=13;
end;
end;
// Tastenwerte 8=Backspace 13=Enter 43=+ 44=, 45=- 46=. 48-57=0-9
if ((numm = 13) and (istell < ilanmin)) then
begin
itaste:=chr(0);
numm:=0;
if (istell = 0) then
begin
itaste:=chr(13);
if (ifunc = 1) then
begin
hilf5:='%';
hilf6:=Format('%d', [ilanmax]);
hilf5:=hilf5+hilf6+'d';
ialpha:=Format(hilf5, [inummer]);
einfeld.Text:=ialpha;
end;
if (ifunc = 2) then
begin
hilf5:='%-';
hilf6:=Format('%d', [hstell]);
hilf5:=hilf5+hilf6+'d';
ialpha:=Format(hilf5, [inummer]);
einfeld.Text:=ialpha;
hilf5:=Copy(ialpha, 1, 1);
if (hilf5 = '-') then
begin
iminus:=1;
end;
end;
if (ifunc = 3) then
begin
hilf5:='%';
hilf4:=ilanmax - ikomma - 1;
hilf6:=Format('%d', [hilf4]);
hilf5:=hilf5+hilf6+'.';
hilf6:=Format('%d', [ikomma]);
hilf5:=hilf5+hilf6+'f';
ialpha:=Format(hilf5, [inumkom]);
einfeld.Text:=ialpha;
for hilf4:=1 to ilanmax do
begin
hilf5:=Copy(ialpha, hilf4, 1);
if (hilf5 = ',') then
begin
imkom:=hilf4;
end;
end;
end;
if (ifunc = 4) then
begin
hilf5:='%-';
hilf4:=ilanmax - ikomma - 2;
hilf6:=Format('%d', [hilf4]);
hilf5:=hilf5+hilf6+'.';
hilf6:=Format('%d', [ikomma]);
hilf5:=hilf5+hilf6+'f';
ialpha:=Format(hilf5, [inumkom]);
einfeld.Text:=ialpha;
hilf5:=Copy(ialpha, 1, 1);
if (hilf5 = '-') then
begin
iminus:=1;
end;
for hilf4:=1 to ilanmax do
begin
hilf5:=Copy(ialpha, hilf4, 1);
if (hilf5 = ',') then
begin
imkom:=hilf4;
end;
end;
end;
if (ifunc = 5) then
begin
einfeld.Text:=ialpha;
end;
if (ifunc = 6) then
begin
einfeld.Text:=ialpha;
end;
if (ifunc = 7) then
begin
einfeld.Text:=ialpha;
end;
if (ifunc = 8) then
begin
einfeld.Text:=ialpha;
end;
if (iart = 3) then
begin
xstern:='';
if istell > 0 then
begin
for hilf9:=1 to istell do
begin
xstern:=xstern+'*';
end;
end;
einfeld.Text:=xstern;
end;
if (iart = 4) then
begin
einfeld.Text:=hleer;
end;
einfeld.update;
end;
end;
htaste:=itaste;
if ((ifunc = 1) or (ifunc = 2) or (ifunc = 3) or (ifunc = 4)) then
begin
if ((numm <> 8) and (numm <> 13)) then
begin
itaste:=chr(0);
end;
end;
if (ifunc = 6) then
begin
if ((numm <> 8) and (numm <> 13)) then
begin
itaste:=chr(0);
end;
end;
if (ifunc = 7) then
begin
if ((numm <> 8) and (numm <> 13)) then
begin
itaste:=chr(0);
end;
end;
if (ifunc = 8) then
begin
if ((numm <> 8) and (numm <> 13)) then
begin
itaste:=chr(0);
end;
end;
if ((numm = 8) and (istell > 0)) then
begin
if (istell = imkom) then
begin
imkom:=0;
iko:=0;
end;
istell:=istell - 1;
if (istell = 0) then
begin
iminus:=0;
ivz:=0;
ivk:=0;
iko:=0;
ink:=0;
ivkl:=0;
if (ifunc = 2) then
begin
ivkl:=ilanmax - 1;
end;
if (ifunc = 3) then
begin
ivkl:=ilanmax - ikomma - 1;
end;
if (ifunc = 4) then
begin
ivkl:=ilanmax - ikomma - 2;
end;
if (ifunc = 7) then
begin
ivkl:=ilanmax - 1;
end;
end;
if ((ifunc = 1) or (ifunc = 2)) then
begin
if (inummer < 0) then
begin
inummer:=inummer * -1;
end;
hilf7:=inummer;
hilf7:=hilf7 / 10;
inummer:=Trunc(hilf7);
if ((ifunc = 2) and (iminus = 1) and (inummer > 0) and (istell > 0)) then
begin
inummer:=inummer * -1;
end;
end;
if ((ifunc = 5) or (ifunc = 6) or (ifunc = 7) or (ifunc = 8)) then
begin
hilf5:=ialpha;
ialpha:='';
if (istell > 0) then
begin
ialpha:=Copy(hilf5, 1, istell);
end;
hilf3:=ilanmax - istell;
for hilf1:=1 to hilf3 do
begin
ialpha:=ialpha+' ';
end;
end;
end;
if ((numm = 8) and (istell = 0)) then
begin
itaste:=chr(0);
numm:=0;
ivz:=0;
ivk:=0;
iko:=0;
ink:=0;
ivkl:=0;
if (ifunc = 2) then
begin
ivkl:=ilanmax - 1;
end;
if (ifunc = 3) then
begin
ivkl:=ilanmax - ikomma - 1;
end;
if (ifunc = 4) then
begin
ivkl:=ilanmax - ikomma - 2;
end;
if (ifunc = 7) then
begin
ivkl:=ilanmax - 1;
end;
end;
if ((istell = 0) and (numm <> 13) and (numm <> 0)) then
begin
imkom:=0;
iminus:=0;
inummer:=0;
inumkom:=0;
ialpha:=hleer;
einfeld.Text:=ialpha;
if (ifunc = 2) then
begin
hilf5:='%-';
hilf6:=Format('%d', [hstell]);
hilf5:=hilf5+hilf6+'d';
ialpha:=Format(hilf5, [inummer]);
hilf5:=Copy(ialpha, 1, 1);
if (hilf5 = '-') then
begin
iminus:=1;
end;
end;
if (ifunc = 3) then
begin
hilf5:='%';
hilf4:=ilanmax - ikomma - 1;
hilf6:=Format('%d', [hilf4]);
hilf5:=hilf5+hilf6+'.';
hilf6:=Format('%d', [ikomma]);
hilf5:=hilf5+hilf6+'f';
ialpha:=Format(hilf5, [inumkom]);
if (iko = 1) then
begin
for hilf4:=1 to ilanmax do
begin
hilf5:=Copy(ialpha, hilf4, 1);
if (hilf5 = ',') then
begin
imkom:=hilf4;
end;
end;
end;
end;
if (ifunc = 4) then
begin
hilf5:='%-';
hilf4:=ilanmax - ikomma - 2;
hilf6:=Format('%d', [hilf4]);
hilf5:=hilf5+hilf6+'.';
hilf6:=Format('%d', [ikomma]);
hilf5:=hilf5+hilf6+'f';
ialpha:=Format(hilf5, [inumkom]);
hilf5:=Copy(ialpha, 1, 1);
if (hilf5 = '-') then
begin
iminus:=1;
end;
if (iko = 1) then
begin
for hilf4:=1 to ilanmax do
begin
hilf5:=Copy(ialpha, hilf4, 1);
if (hilf5 = ',') then
begin
imkom:=hilf4;
end;
end;
end;
end;
if (iart = 3) then
begin
xstern:='';
if istell > 0 then
begin
for hilf9:=1 to istell do
begin
xstern:=xstern+'*';
end;
end;
einfeld.Text:=xstern;
end;
if (iart = 4) then
begin
einfeld.Text:=hleer;
end;
einfeld.update;
end;
if ((ifunc = 5) and (ord(itaste) > 0) and (numm <> 8) and (numm <> 13)) then
begin
if (izeich = 1) then
begin
hilf5:=itaste;
hilf6:=LowerCase(hilf5);
itaste:=hilf6[1];
numm:=ord(itaste);
end;
if (izeich = 2) then
begin
hilf5:=itaste;
hilf6:=UpperCase(hilf5);
itaste:=hilf6[1];
numm:=ord(itaste);
end;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
if ((ifunc = 6) and (ord(itaste) > 0) and (numm <> 8) and (numm <> 13)) then
begin
if (izeich = 1) then
begin
hilf5:=itaste;
hilf6:=LowerCase(hilf5);
itaste:=hilf6[1];
numm:=ord(itaste);
end;
if (izeich = 2) then
begin
hilf5:=itaste;
hilf6:=UpperCase(hilf5);
itaste:=hilf6[1];
numm:=ord(itaste);
end;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
if ((ifunc = 7) and (ord(itaste) > 0) and (numm <> 8) and (numm <> 13)) then
begin
if (izeich = 1) then
begin
hilf5:=itaste;
hilf6:=LowerCase(hilf5);
itaste:=hilf6[1];
numm:=ord(itaste);
end;
if (izeich = 2) then
begin
hilf5:=itaste;
hilf6:=UpperCase(hilf5);
itaste:=hilf6[1];
numm:=ord(itaste);
end;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
if ((ifunc = 8) and (ord(itaste) > 0) and (numm <> 8) and (numm <> 13)) then
begin
if (izeich = 1) then
begin
hilf5:=itaste;
hilf6:=LowerCase(hilf5);
itaste:=hilf6[1];
numm:=ord(itaste);
end;
if (izeich = 2) then
begin
hilf5:=itaste;
hilf6:=UpperCase(hilf5);
itaste:=hilf6[1];
numm:=ord(itaste);
end;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
if ((numm > 47) and (numm < 58)) then
begin
if ((ifunc = 1) or (ifunc = 5)) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
if (ifunc = 6) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
if (ifunc = 7) then
begin
if (ivk < ivkl) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
if (ifunc = 8) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
if ((ifunc = 2) or (ifunc = 3) or (ifunc = 4)) then
begin
if (ivk < ivkl) then
begin
itaste:=htaste;
ivk:=ivk + 1;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
if ((ifunc = 2) or (ifunc = 3) or (ifunc = 4)) then
begin
if (iko = 1) then
begin
if (ink < ikomma) then
begin
itaste:=htaste;
ivk:=ivk + 1;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
end;
end;
if (ifunc = 6) then
begin
if (numm = 46) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
if (ifunc = 7) then
begin
if istell = 0 then
begin
if (numm = 43) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
if (numm = 45) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
if (ifunc = 8) then
begin
if (numm = 58) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
if (ifunc = 5) then
begin
if ((numm = 43) or (numm = 45)) then
begin
if (istell = 0) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
end;
if ((ifunc = 2) or (ifunc = 4)) then
begin
if ((numm = 43) or (numm = 45)) then
begin
if (istell = 0) then
begin
itaste:=htaste;
iminus:=1;
ivz:=1;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
end;
if (ifunc = 5) then
begin
if (numm = 44) then
begin
itaste:=htaste;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
if ((ifunc = 3) or (ifunc = 4)) then
begin
if (iko = 0) then
begin
if (numm = 44) then
begin
itaste:=htaste;
imkom:=istell + 1;
iko:=1;
if (iart = 3) then
begin
itaste:='*';
end;
if (iart = 4) then
begin
itaste:=' ';
end;
end;
end;
end;
if ((ord(itaste) > 0) and (ord(itaste) <> 8) and (ord(itaste) <> 13) and (numm > 0)) then
begin
istell:=istell + 1;
if ((ifunc = 1) or (ifunc = 2)) then
begin
if ((numm <> 43) and (numm <> 45)) then
begin
if (inummer < 0) then
begin
inummer:=inummer * -1;
end;
hilf1:=numm - 48;
inummer:=inummer * 10;
inummer:=inummer + hilf1;
if ((ifunc = 2) and (iminus = 1) and (inummer > 0)) then
begin
inummer:=inummer * -1;
end;
end;
end;
if ((ifunc = 3) or (ifunc = 4)) then
begin
if ((numm <> 43) and (numm <> 44) and (numm <> 45)) then
begin
if (inumkom < 0) then
begin
inumkom:=inumkom * -1;
end;
hilf1:=numm - 48;
hilf2:=Trunc(inumkom);
hilf4:=0;
if (imkom > 0) then
begin
hilf4:=istell - imkom;
end;
if (hilf4 > 0) then
begin
hilf7:=hilf1;
for hilf8:=1 to hilf4 do
begin
hilf7:=hilf7 / 10;
end;
inumkom:=inumkom + hilf7;
end else begin
hilf2:=hilf2 * 10;
hilf2:=hilf2 + hilf1;
inumkom:=hilf2;
end;
if ((ifunc = 4) and (iminus = 1) and (inumkom > 0)) then
begin
inumkom:=inumkom * -1;
end;
end;
end;
if (ifunc = 5) then
begin
Insert(chr(numm),ialpha,istell);
hilf3:=ilanmax + 1;
Delete(ialpha, hilf3, 1);
end;
if (ifunc = 6) then
begin
Insert(chr(numm),ialpha,istell);
hilf3:=ilanmax + 1;
Delete(ialpha, hilf3, 1);
end;
if (ifunc = 7) then
begin
Insert(chr(numm),ialpha,istell);
hilf3:=ilanmax + 1;
Delete(ialpha, hilf3, 1);
end;
if (ifunc = 8) then
begin
Insert(chr(numm),ialpha,istell);
hilf3:=ilanmax + 1;
Delete(ialpha, hilf3, 1);
end;
end;
if ((itaste = ' ') and (iart = 4)) then
begin
itaste:=chr(0);
end;
end;
end;
end;
end.
Nach der Eingabe
Code:
procedure TForm3.Edit10KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if mlauf = 11 then
begin
if ((istell = ilanmax) and (ord(itaste) > 0) and (iautocr = 1)) then
begin
Key:=ord(chr(13));
end;
if ord(Key) = 13 then
begin
istell:=0;
Label2.Caption:='';
Edit10.ReadOnly:=True;
Edit10.AutoSelect:=False;
if ((inummer < 101) and (inummer > 0)) then
begin
e3spo:=inummer;
......... weiter im Programm
end else begin
Label2.Caption:='Sauerstoffsätigung darf nur maximal 100% und größer Null sein';
Edit10.Enabled:=True;
Edit10.Color:=clWhite;
Edit10.Font.Color:=clBlue;
Edit10.ReadOnly:=False;
Edit10.Text:='';
ialpha:='';
inummer:=0;
iart:=2;
inumkom:=0;
ikomma:=0;
izeich:=3;
istell:=0;
ifunc:=1;
ilanmax:=3;
ilanmin:=1;
iautocr:=1;
if mart = 2 then
begin
Edit10.Text:=IntToStr(e3spo);
inummer:=e3spo;
iart:=1;
end;
Form3.ActiveControl:=Edit10;
Edit10.AutoSelect:=True;
end;
end;
end;
end;
Gibt es sowas auch schon in Java?
Ich bin gerade dabei, das nach Java zu portieren.
Ich glaube aber, dass das die Königsklasse der Programmierung ist, und nur was für absolute Spezialisten.
So, das wollte ich Euch mal mitteilen.
Frohe Ostern und schöner Gruß
Jürgen