Autor Beitrag
acnut
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 172
Erhaltene Danke: 3

Windows 7, Windows Vista, Windows XP, Ubuntu, Kubuntu, Pardus
Delphi 2010 SV, Java Editor, VS 2010 SV
BeitragVerfasst: Mo 04.01.10 12:02 
ich kann in delphi z.b die buchstabe b bei einer texteingabe "ausschließen", aber wie kann ich eine tastenkombination für zwei tasten sperren?
(ich bräuchte ALT+E, ALT+U & ALT+I)

ich hab in der suche tastensperre geschrieben, hab leider nix gefunden


mfg
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 04.01.10 12:50 
Wie machst du es, um einen Buchstaben auszuschließen? Füg eine Abfrage ein, ob dabei die ALT Taste gedrückt ist.

_________________
PROGRAMMER: A device for converting coffee into software.
ALF
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1085
Erhaltene Danke: 53

WinXP, Win7, Win10
Delphi 7 Enterprise, XE
BeitragVerfasst: Mo 04.01.10 13:14 
hi,
Versuchmal :wink:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (chr(Key) = 'E'and (shift = [ssALT]) then key := 0;

end;


Gruss Alf

_________________
Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
acnut Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 172
Erhaltene Danke: 3

Windows 7, Windows Vista, Windows XP, Ubuntu, Kubuntu, Pardus
Delphi 2010 SV, Java Editor, VS 2010 SV
BeitragVerfasst: Mo 04.01.10 13:19 
ich machs so:
ausblenden Delphi-Quelltext
1:
if not (key in [#65..#90#16#32#18]) then key := #0;					


darf ich also if not (key in [#65..#90#16#32#18+#69]) then key := #0;?


mfg

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

user profile iconALF hat folgendes geschrieben Zum zitierten Posting springen:
Versuchmal :wink:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (chr(Key) = 'E'and (shift = [ssALT]) then key := 0;

end;

ich verwende das ganze im richedit um arabische zeichen zu schreiben(ich muss zuerst die lateinischen buchstaben für die eingabe sperren, damit im richedit lateinische und arabische buchstaben sich nicht vermischen)
da jetzt das ganze alphabet voll ist, brauch ich jetzt auch "sekundärtasten" um buchstaben zu schreiben.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (chr(Key) = 'E'and (shift = [ssALT]) then key := 0;

end;

so hab ichs auch probiert bevir ich hier geschrieben hab, aber mit diesem code schreibt er sowohl die "primärbuchstabe" als auch die "sekundärbuchstabe"


ich hoffe ich konnte mich klar ausdrücken


mfg
DaveRidge
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 02.02.10 12:27 
Mahlzeit. Ich hab mal ne Frage.

In meinem Prog sollen nur so viele Zeichen eingeben werden wie man es einstellt, also müsste mein Entwurf einglich passen, oder?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var zeichen:string;
begin
zeichen:=IntToStr(Length(StringReplace(Memo1.Text, #13#10' ', [rfReplaceAll])));
max:=buffer-(StrtoInt(zeichen));
if InttoStr(max)='0' then key := 0;
if InttoStr(max)>'0' then key := 0;
end;


buffer ist der Eingabe string (edit1.text).

Normal müsste das eigentlich gehen, nur er macht das nicht. Kann mir einer helfen?
MfG Dave
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Di 02.02.10 12:31 
Lass die ganze String <> Integer Wandelei weg, und arbeite nur mit Integer. Die kann man auch besser miteinander vergleichen.

Und wenn das dann funktioniert, schaust du dir TMemo.MaxLength an ;)

_________________
PROGRAMMER: A device for converting coffee into software.
DaveRidge
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 02.02.10 12:48 
Das mit dem TMemo.MaxLength hab ich auch gedacht. Nur das problem ist das Return 2 mal zählt, was bei einer sms aber nicht ist.

Die Strings hab ich mal zu Integer umgewandelt. geht aber auch net.
Auch wenn ich nur den Befehl (key:=0;) eingebe, passiert nix dabei.
Ka warum

MfG Dave


EDIT: Hab hinbekommen. Hab so gemacht:

Form1.Memo1.MaxLength:=buffer+Memo1.Lines.Count-1;

einfach gehts kaum :-D
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Di 02.02.10 13:15 
Fällt dir hier was auf?
Zitat:
In meinem Prog sollen nur so viele Zeichen eingeben werden wie man es einstellt,

Zitat:
EDIT: Hab hinbekommen. Hab so gemacht:
Form1.Memo1.MaxLength:=buffer+Memo1.Lines.Count-1;


Ungetestet:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var zeichen:integer;
begin
  zeichen:=Length(StringReplace(Memo1.Text, #13#10' ', [rfReplaceAll]));
  if Zeichen>=buffer then key := 0;
end;
DaveRidge
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 02.02.10 13:28 
user profile iconSvenAbeln hat folgendes geschrieben Zum zitierten Posting springen:
Fällt dir hier was auf?
Zitat:
In meinem Prog sollen nur so viele Zeichen eingeben werden wie man es einstellt,

Zitat:
EDIT: Hab hinbekommen. Hab so gemacht:
Form1.Memo1.MaxLength:=buffer+Memo1.Lines.Count-1;


Ungetestet:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var zeichen:integer;
begin
  zeichen:=Length(StringReplace(Memo1.Text, #13#10' ', [rfReplaceAll]));
  if Zeichen>=buffer then key := 0;
end;



Mmh, müsste gehen, eigentlich. Nur key:=0 will nicht. Selbst wenn ich key:=0 sohin texte, passiert einfach nix.
Das war ja das andere Problem, hatte ich aber auch oben beschrieben

MfG Dave
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Di 02.02.10 13:29 
Hast du dem Memo1 überhaupt das Ereignis OnKeyDown zugewiesen?

_________________
PROGRAMMER: A device for converting coffee into software.
DaveRidge
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 02.02.10 13:31 
user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
Hast du dem Memo1 überhaupt das Ereignis OnKeyDown zugewiesen?


jo, habsch gemacht, das isses ja. Ich weiss nicht warum er key:=0 nicht annimmt.

MfG Dave