AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid mit Enter ?

Ein Thema von Hansa · begonnen am 1. Sep 2003 · letzter Beitrag vom 1. Sep 2003
Antwort Antwort
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

Stringgrid mit Enter ?

  Alt 1. Sep 2003, 12:37
Hi,

ich stecke mal wieder fest. 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:

http://www.delphipraxis.net/topic147...light=entertab

Vorsicht, langer Thread ! Auf der Form geht das schon so, aber nicht im StringGrid.
Gruß
Hansa
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#2

Re: Stringgrid mit Enter ?

  Alt 1. Sep 2003, 13:13
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;
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Stringgrid mit Enter ?

  Alt 1. Sep 2003, 13:31
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;
Gruß
Hansa
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#4

Re: Stringgrid mit Enter ?

  Alt 1. Sep 2003, 13:44
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;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz