Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: TMemo: wenn Pfeil in der letzten Zeile -> wie Tab

  Alt 17. Okt 2006, 08:34
Hallo chrisw,

Danke, ich habe das inzwischen selbst herausgefunden.
Das Problem ist, der Code wird zwar ausgeführt, aber das nächste
Edit wird NICHT fokussiert.
In das Perform springt er aber.

Edit_Text ist vom Typ TMemo.
Ich hatte nur keine Lust, alle Verweise zu ändern.

Mit Tab geht es,
die folgenden Editoren werden auch brav angesprungen,
wenn vorher auch ein Editor fokussiert war.

Woran kann das liegen ?


Edit:
Key:= 0; war die Lösung


Heiko

Delphi-Quellcode:
procedure TForm_Terminal_IdText.Edit_TextKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
var
  iCurLine : Integer;
  iMaxLines : Integer;
begin
 { starts with zero }
  iCurLine:= SendMessage(Edit_Text.Handle, EM_LINEFROMCHAR,
    Edit_Text.SelStart, 0)+1;
  iMaxLines:= SendMessage(Edit_Text.Handle, EM_GETLINECOUNT, 0, 0);

  if (Key=VK_UP) and
     (iCurLine=1) then
  begin
    Self.Perform(WM_NEXTDLGCTL, 1, 0);

   // ohne das klappt es nicht
    Key:= 0;
  end;

  if (Key=VK_DOWN) and
     (iCurLine=iMaxLines) then
  begin
    Self.Perform(WM_NEXTDLGCTL, 0, 0);

   // ohne das klappt es nicht
    Key:= 0;
  end;
end;
Heiko
  Mit Zitat antworten Zitat