Hallo und Hilfe!
Ich habe eine Anwendung, bei der sich auf der linken Fensterseite eine TMemo befindet,
in die der Anwender ein
Sql-Statement eingeben kann.
Auf der rechten Seite wird dann das Ergebnis angezeigt.
Nun soll die
Query gestartet werden wie beim TOAD (Tool for Oracle Application Developer),
d.h.: entweder mit F9 oder [Shift]+[Return] (ursprünglich [Strg]+{Return], aber egal!).
Mein Problem:
im Memo erzeugt der Return eine neue Zeile, bzw. wenn das Statement selektiert ist,
wird es durch die Return-Eingabe überschrieben.
Wie kann ich das verhindern?
Habe schon im KeyDown bzw. KeyUp-Event herumprobiert, aber keinen Erfolg gehabt.
Delphi-Quellcode:
procedure TForm1.Memo1KeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
IF ( Key = VK_F9 )
OR ( ( Shift = [ssShift] )
AND ( Key = VK_RETURN ) )
THEN
BEGIN
IF ( ( Shift = [ssShift] )
AND ( Key = VK_RETURN ) )
THEN
// wie bekommt man nachtraeglich den Return wieder
// aus dem Memo-Feld heraus ???
Key := VK_BACK;
// Backspace fuehrt nicht zum gewuenschten Ergebnis
// Routine zum Ausfuehren des SQL-Statements von Memo1
Form1.ExecSql;
END;
end;
Was mach ich falsch?
Gruß
Gero