AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: VCL / WinForms / Controls Delphi Im StringGrid mit Enter immer ins nächste Feld springen
Thema durchsuchen
Ansicht
Themen-Optionen

Im StringGrid mit Enter immer ins nächste Feld springen

Ein Thema von Daniel B · begonnen am 5. Jul 2003 · letzter Beitrag vom 5. Jul 2003
Antwort Antwort
Daniel B
(Gast)

n/a Beiträge
 
#1

Im StringGrid mit Enter immer ins nächste Feld springen

  Alt 5. Jul 2003, 11:39
Hallo,

hiermit kann man bei Enter-Druck, immer in die nächste Feld springen, es werden alle der Reihe nach durchgegangen, und zwar immer von links nach rechts und dann immer die nächste Zeile, aus der letzten Zelle wird dann wieder in die erste gesprungen, den Teil kann man aber auch natürlich wieder ausbauen!
Delphi-Quellcode:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    with StringGrid1 do
    begin
      if Col < ColCount -1 then //Nächste Spalte
        Col := Col +1
      else if Row < RowCount -1 then
      begin //Nächste Zeile
        Row := Row +1;
        Col := 1;
      end else
      begin //Geh wieder an den Anfang des Grids
        Row := 1;
        Col := 1;
      end;
    end;
  end;
end;
Grüsse, Daniel
  Mit Zitat antworten Zitat
Hansa

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

Re: Im StringGrid mit Enter immer ins nächste Feld springen

  Alt 5. Jul 2003, 13:53
Hi,

soweit, so gut, aber für Anfänger: um etwas eingeben zu können, muß im Objektinspektor die Option "goEditing" auf true gesetzt werden.

Desweiteren ist es manchmal gut, das Grid vergrößern zu können, z.B. wenn man noch nicht weiß, wieviele Eingaben überhaupt gemacht werden. Das geht dann so (*** beachten) :

Delphi-Quellcode:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = #13 then
  begin
    with StringGrid1 do
    begin
      if Col < ColCount -1 then //Nächste Spalte
        Col := Col +1
      else if Row < RowCount -1 then
      begin //Nächste Zeile
        Row := Row +1;
        Col := 1;
      end else
      begin //Zeile am Ende des Grids einfügen
        RowCount := RowCount + 1; // *** statt Row := 1 1 Zeile anfügen
        Row := RowCount -1; // *** Cursor in die neue Zeile
        Col := 1;
      end;
    end;
  end
end;
Gruß
Hansa
  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 08:32 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