AGB  ·  Datenschutz  ·  Impressum  







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

StringGrid über mehrere Cols springen

Ein Thema von elmartino · begonnen am 3. Feb 2022 · letzter Beitrag vom 5. Feb 2022
Antwort Antwort
elmartino

Registriert seit: 25. Sep 2019
Ort: Schweiz
7 Beiträge
 
Delphi 10.3 Rio
 
#1

StringGrid über mehrere Cols springen

  Alt 3. Feb 2022, 22:09
Ich habe ein Stringgrid mit 8 Cols und 13 Rows.
Auf den Cols 3 und 7 möchte ich Resultate eingeben.

alle Cols haben die Option - [goEditing] OnSelectCell
auf den Cols 3 und 7 die Options + [goEditing] gesetzt OnSelectCell

Ich möchte mit der Tabtaste #09 von Col 3 auf Col 7 springen.
Also die Cols 4,5,6, überspringen. In Col 7 Daten eingeben und mit der
Tabtaste wieder auf Col 3 auf der Nächsten Zeile springen.
Mit der Tabtaste möchte ich nur die Col 3 und 7 ansteuern.

gotabs habe ich aktiviert.

Wie kann ich das realisieren.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#2

AW: StringGrid über mehrere Cols springen

  Alt 3. Feb 2022, 22:28
Nur so als Idee, die Du ggfls. noch anpassen musst:
Delphi-Quellcode:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  case Key of
    #9 : begin
           if StringGrid1.Col = 3 then
             StringGrid1.Col := 7
           else
           if StringGrid1.Col = 8 then
           begin
             StringGrid1.Col := 3;
             // Hier ist dann noch 'ne Sonderbehandlung der letzten Zeile im StringGrid erforderlich.
             StringGrid1.Row := StringGrid1.Row + 1;
           end;
         end;
  end;
end;
oder
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
  if (aCol = 4) then
  begin
    StringGrid1.Col := 7;
    CanSelect := False;
  end else
  if (aCol = 7) then
  begin
    StringGrid1.Col := 3;
    // Hier ist dann noch 'ne Sonderbehandlung der letzten Zeile im StringGrid erforderlich.
    StringGrid1.Row := StringGrid1.Row + 1;
    CanSelect := False;
  end;
end;
(ungetestet hingedaddelt)
  Mit Zitat antworten Zitat
elmartino

Registriert seit: 25. Sep 2019
Ort: Schweiz
7 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: StringGrid über mehrere Cols springen

  Alt 5. Feb 2022, 19:05
Hallo danke für die Hilfe. Es hat funktioniert. Aber die angesteuerte Col darf nicht die letzte in in der Row sein. Ich habe eine zusätzliche Col definiert. ColCount = 9, abgefragte Cols = 4 und 8 obwohl die Cols 3 und 7 betroffen sind.
Hier mein Code:

procedure TForm1.SpieleKeyPress(Sender: TObject; var Key: Char);
begin
case Key of
#9 : begin
if Spiele.Col = 4 then
Spiele.Col := 7
else
if Spiele.Col = 8 then
begin
Spiele.Col := 3; // 1
if Spiele.Row = 12 then
begin
Spiele.Row := 1;
end
else
begin
Spiele.Row := Spiele.Row + 1;
end;
end;
end;
end;
end;

Geändert von elmartino ( 5. Feb 2022 um 19:57 Uhr)
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
719 Beiträge
 
Delphi XE5 Professional
 
#4

AW: StringGrid über mehrere Cols springen

  Alt 5. Feb 2022, 19:24
Hallo Elmartino,
Du kannst Deinen Quellcode etwas übersichtlicher formatieren, wenn Du das Delphi-Symbol (= gelber Helm mit dem roten Kamm) vom Menü direkt über dem Editorfenster benutzt. Oder für neutrale Fälle als einfachen Code mit dem Symbol gleich links daneben (= auf weißem Blatt blaue eckige Klammern <>). Das geht übrigens auch nachträglich, wenn Du Deine Beiträge editierst.

Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  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 21:19 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