Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
EingabeMaske gesucht
spacer
Autor Nachricht
PreMarT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star

Beiträge: 57
Dabei seit: 08.09.2009


Work: Win XP ; Home: Win Vista 64-Bit
BeitragVerfasst: Di 20.10.09 10:58  Antworten mit Zitat Beitrag melden
Hallo alle zusammen,

Hab hier im Forum nacMasken gesucht aber leider nichts gefunden könnte mir villeicht jemand sagen wie ich folgende Maske realisiere?


TM/A3F (Wichtig ist das "/" das bekomm ich nciht hin)

und eventuell das die ersten beiden Zeichen nur Großbuchstaben und die letzten 3 Großbuchstaben oder Zahlen sein dürfen


ich danke im vorraus

MFG PMT


Moderiert von user profile iconNarses: Topic aus VisualCLX (Component Library for Cross Platform) verschoben am Mi 21.10.2009 um 22:32
Private Nachricht sendenPosting in privater Nachricht zitieren
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
EE-Maler

Beiträge: 1339
Erhaltene Danke: 2
Dabei seit: 23.02.2006
Wohnort: Mitte Deutschlands / A**** der Welt

Windoof 2000, XP
Delphi 6 Enterprise / Delphi 2005 Prof
BeitragVerfasst: Mi 21.10.09 21:15  Antworten mit Zitat Beitrag melden
ööh...

wenn ich dich richtig verstehe:

Du packst ins OnKeyDown rein:

ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure TForm1.LabeledEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if Key<>#8 then //<< #8 ist Backspace
begin
if (Length(LabeledEdit2.Text)=0)and not (Key in ['A'..'Z']) then
Key:=#0
else if (Length(LabeledEdit2.Text)=1)and not (Key in ['A'..'Z']) then
Key:=#0

else if (Length(LabeledEdit2.Text)=2)and not (Key = '/') then
Key:=#0

else if (Length(LabeledEdit2.Text)=3)and not ( (Key in ['A'..'Z'])or(Key in ['0'..'9']) ) then
Key:=#0
else if (Length(LabeledEdit2.Text)=4)and not ( (Key in ['A'..'Z'])or(Key in ['0'..'9']) ) then
Key:=#0
else if (Length(LabeledEdit2.Text)=5)and not ( (Key in ['A'..'Z'])or(Key in ['0'..'9']) ) then
Key:=#0

else if (Length(LabeledEdit2.Text)>5) then
Key:=#0;
end;

end;


so würde ich das machen.

_________________
a broken heart is like a broken window - it'll never heal
F steht für Feuer das wütet und lodert U steht für unfairer Kampf N steht für nukleares Waffenarsenal (Plankton)
Private Nachricht sendenPosting in privater Nachricht zitieren
PreMarT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star

(Threadstarter)

Beiträge: 57
Dabei seit: 08.09.2009


Work: Win XP ; Home: Win Vista 64-Bit
BeitragVerfasst: Mo 26.10.09 10:29  Antworten mit Zitat Beitrag melden
Ich danke dir schonmal für deine Mühe, das sieht echt gut aus, ich dachte da eher an sowas wie einen vergleich also quasi

ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
If (edtEingabe = Form(xx/xxx)) then

mach was;

else
mach nix;

end;
Private Nachricht sendenPosting in privater Nachricht zitieren
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star

Beiträge: 2333
Erhaltene Danke: 1
Dabei seit: 07.03.2005
Wohnort: Münster

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mo 26.10.09 15:24  Antworten mit Zitat Beitrag melden
Hallo,

wenn das so eindeutig definiert ist:
- die ersten zwei Zeichen Großbuchstaben
- dann Trenner '/'
- danach weitere drei Zeichen Großbuchstaben oder Zahlen

... funktioniert ein direkter zeichenweiser Vergleich:
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
function CheckFormat(const s: String): Boolean;
var z : Integer;
const F_STR = 'AA/XXX';
begin
Result := True;
if Length(s) <> Length(F_STR) then
Result := False
else
// jedes Zeichen von s mit Zeichen von F_STR vergleichen
for z := 1 to Length(s) do
begin
case F_STR[z] of
'A' : Result := s[z] in ['A'..'Z','Ä','Ü','Ö'];
'/' : Result := s[z] = '/';
'X' : Result := UpCase(s[z]) in ['A'..'Z','Ä','Ü','Ö','0'..'9'];
end;
if not Result then
Break;
end;
end;


Ist die Zeichenanzahl vor und hinter dem Trenner variabel muss halt bis zum Trenner und danach ab Trenner überprüft werden.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home