Hallo DPler,
weis jemand was hier falsch ist?
Delphi-Quellcode:
function TFrmMain.IsPhoneNoValid(aPhoneNumber:
String): Boolean;
var
I: Integer;
NumCount: Integer;
DashCount: Integer;
begin
Result := False;
NumCount := 0;
DashCount := 0;
for I := 1
to Length(aPhoneNumber)
do
begin
case aPhoneNumber[I]
of
'
0'..'
9': Inc(NumCount, 1);
'
-': Inc(DashCount, 1);
end;
end;
if ( (NumCount <> 10)
and (DashCount <> 2) )
then
begin
ShowMessage('
Phone number does not match US standard pattern!');
Result := False;
end
else
begin
Result := True;
end;
end;
procedure TFrmMain.PItmAddPhoneClick(Sender: TObject);
var
PhoneNo:
String;
begin
//Input phone number
PhoneNo := InputBox('
Add Phone Number', '
Please add a valide phone number', '
');
if ( PhoneNo <> '
' )
then
begin
//Check whether phone number is valid or not
if (
not IsPhoneNoValid(PhoneNo) )
then
begin
Exit;
end;
with DBModule.Query
do
begin
//Check whether phone number is present already or not
Active := False;
SQL.Text := '
SELECT COUNT(Phone) AS PhoneCount FROM ComMeth WHERE Phone=' + PhoneNo;
Active := True; [color=#ff0000]<====== Hier kommt ein StackOverflow Fehler[/color]
if ( FieldByName('
PhoneCount').AsInteger > 0 )
then
begin
ShowMessage('
This phone number exists already');
Exit;
end;
Active := False;
SQL.Text := '
INSERT INTO ComMeth (Phone) VALUES (' + PhoneNo + '
)';
end;
end;
end;
Ich gebe eine Rufnummer im Amerikanischen Format xxx-xxx-xxxx ein. Die Tabelle ist bisher noch leer.
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)