Autor Beitrag
rhodan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Sa 26.06.10 15:48 
hey!

ich habe in meinem fenster ein memofeld, einen timer und einen button. auf knopfdruck wird der timer gestartet und liest den text aus dem memofeld aus der eingetragen wurde und schreibt ihn per simulierter tastatureingabe neu:
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  i: integer;
    c: Char;
begin
if length(memo1.Text)> 0 then
  begin
    for i:= 0 to length(memo1.Text) do
    begin
    c:= memo1.text[i];
      Case c of
        '1'..'9' :
          begin
          keybd_event(ord(c),0,0,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        'A'..'Z':
          begin
          keybd_event(vk_Shift,0,0,0);
          keybd_event(ord(c),0,0,0);
          keybd_event(vk_Shift,0,keyeventf_keyup,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        'a'..'z':
          begin
          c:= upcase(c);
          keybd_event(ord(c),0,0,0);
          keybd_event(ord(c),0,keyeventf_keyup,0);
          end;
        else
        begin
        keybd_event(ord(c),0,0,0);
        keybd_event(ord(c),0,keyeventf_keyup,0);

        timer1.Enabled:=false;
        end;
      end;
            end;
                  end;
end;

end.

das funktioniert auch sehr gut, doch er erkennst keine sonderzeichen wie ? . ! ,
punkte und kommas und fragezeichen werden einfach übergangen bzw auch Ä wird zu 00...wie muss ich den code erweitern damit er punkt und komma bzw ö und ä richtig aus dem memofeld liest?

vielen dank!

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 27.06.2010 um 00:06
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19340
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 27.06.10 09:03 
Du vergisst die Zeichen mit VkKeyScan in den entsprechenden virtuellen Tastencode zu übersetzen. ;-)

Abgesehen davon wäre es sinnvoller den Status der Shift-Taste aus dem Tastencode zu ermitteln statt eine manuelle Unterscheidung zu machen.

// EDIT:
Hier ein fertiger Code dazu:
www.delphipraxis.net...d-sonderzeichen.html