Einzelnen Beitrag anzeigen

BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: gibt es eine Funktion, die das Ausführen einer Prozedure

  Alt 2. Sep 2008, 15:59
Hallo noch mal an alle,

Hat zwar etwas gedauert aber mit euren Hinweisen und etwas probieren und lesen hat es nun geklappt. Bei der onkeydown-Funktion das Edit-Fensters wird im gegensatz zur onkeypress-Funktion das Key als Word und nicht als Char übergeben. So konnte ich das vk_delete benutzen und es funktioniert. Für andere die das gleiche Problem haben hier die endgültige Version:

Delphi-Quellcode:

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var iIndex, iTemp: integer;

begin
  if key = vk_delete then
    begin
      //Löscht einen markierten Bereich im Editfenster (Vorraussetzung es ist etwas markiert!!)
      if Edit1.SelLength >0 then
        begin
          iEditpos := Edit1.SelStart;
          for iTemp := 0 to Edit1.SelLength - 1 do if Tisch[iIndex].sEditWert[iTemp] = #44
                                                  then Tisch[iIndex].bTastenregistrierung := false;
          delete(Tisch[iIndex].sEditWert,Edit1.SelStart+1,Edit1.SelLength);
        end
      //Löscht das Zeichen nach dem Cursor (Voraussetzung es ist nichts markiert)
      else
        begin
          iEditPos := Edit1.SelStart - 1;
          if Tisch[iIndex].sEditWert[Edit1.SelStart] = #44 then Tisch[iIndex].bTastenregistrierung := false;
          delete(Tisch[iIndex].sEditWert,Edit1.SelStart+1,1);
          iEditPos := iEditPos + 1;
        end;
    end;
end;
Wie gesagt, wichtig war bei mir die Initialisierung des Keys als Word und nicht als Char.
  Mit Zitat antworten Zitat