![]() |
Stringgrid mit Enter ?
Hi,
ich stecke mal wieder fest. :mrgreen: Dieses mal habe ich ein StringGrid, wo ich von Zelle zu Zelle mit Enter weiter möchte. Das hat auch schon funktioniert, tut es im Moment aber nicht mehr. Ich habe EnterTab verwendet: ![]() Vorsicht, langer Thread ! Auf der Form geht das schon so, aber nicht im StringGrid. |
Re: Stringgrid mit Enter ?
Wenn du doch nur von Zelle zu Zelle senkrecht möchtest, dann schreib doch einfach im OnkeyDown des StringGrid's:
Delphi-Quellcode:
if key = vk_return then
key := VK_DOWN; |
Re: Stringgrid mit Enter ?
Zuerst muß ich mal von links nach rechts. Hier ist noch der Code aus dem alten Thread:
Delphi-Quellcode:
procedure EnterTab(Sender: TObject; var Key: Word; Shift: TShiftState;
ClassAus: array of TClass; ObjectAus: array of TObject; bESC_Close: Boolean = True); var Mgs: TMsg; function ClassObjectAusschliessen: Boolean; var Index: Integer; begin Result := True; with Sender as TForm do begin for Index := Low(ClassAus) to High(ClassAus) do if ActiveControl is ClassAus[Index] then // Diese Classe ausschliessen Exit; for Index := Low(ObjectAus) to High(ObjectAus) do if ActiveControl = ObjectAus[Index] then // Dieses Object ausschliessen Exit; end; Result := False; end; begin if Sender is TForm then with Sender as TForm do begin case Key of VK_RETURN, VK_TAB: if not ClassObjectAusschliessen then begin Key := 0; Perform(WM_NextDlgCtl, ord(Shift = [ssShift]), 0); PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE); // Beep-Ton ausschalten end; VK_ESCAPE: if bESC_Close and (Shift <> [ssShift]) then begin Key := 0; Close; PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE); // Beep-Ton ausschalten end; end // case end; // für WITH Sender As TForm DO end; |
Re: Stringgrid mit Enter ?
Und wie wäre es damit:
Delphi-Quellcode:
private
Col: integer; { Private-Deklarationen } ... procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = vk_return then begin if Col = StringGrid1.ColCount - 1 then begin StringGrid1.Col := 1; key := VK_DOWN end else key := VK_RIGHT; end; end; procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: String); begin Col := ACol; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz