Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Tastendruck bei Stringgrid! (https://www.delphipraxis.net/90038-tastendruck-bei-stringgrid.html)

BunnyX 10. Apr 2007 20:21


Tastendruck bei Stringgrid!
 
Abend! Hätte da mal wieder eine Frage:

Wie stelle ich es es, dass ich bei einem Stringgrid eine Zelle markiere und dann eine Taste (Zahlen 1-9, ist für Sudoku) drücke und die dann in der Zelle erscheint?
Habe jetzt eine Stunde hier im Forum gesucht, bin aber aus dem was ich gesehen habe nicht wirklich schlau gewurden. :wall: Es muss irgendwie mit Key-Down oder so gemacht werden, soweit bin ich schon :)

Gruß BunnyX

Christian V. 15. Apr 2007 22:48

Re: Tastendruck bei Stringgrid!
 
Setz einfach bei Options goEditing auf true, das ist alles was du brauchst.

BunnyX 16. Apr 2007 20:33

Re: Tastendruck bei Stringgrid!
 
Super! Danke für deine Antwort! Leute wie euch bräuchte man mal als Info-Lehrer für zu Hause :)
1000 Dank!

Ich hätte, da noch eine Frage:
Wie kann ich es jetzt verhindern, dass bestimmte Zellen des Stringgrids nicht verändert werden können. Das goEditing bezieht sich ja auf das gesamte Stinggrid.

Hobby-Programmierer 16. Apr 2007 22:57

Re: Tastendruck bei Stringgrid!
 
Nabend ...,
Zitat:

Zitat von BunnyX
Wie kann ich es jetzt verhindern, dass bestimmte Zellen des Stringgrids nicht verändert werden können. Das goEditing bezieht sich ja auf das gesamte Stinggrid.

setze die Eigenschaft 'goEditing' einfach zur Laufzeit und nur bei den Zellen wo du sie brauchst! In etwa so, ungetestet
Delphi-Quellcode:
procedure TForm1.SGSelectCell(Sender: TObject; aCol, aRow: Integer; var CanSelect: Boolean);
begin
  with Sender as TStringGrid do
    if (aCol in [2,3,4]) and (aRow > FixedRows) then
      Options:= Options +[goEditing]
     else
      Options:= Options -[goEditing];
end;
Alternativ könntest du natürlich auch
Delphi-Quellcode:
CanSelect:= (aCol in [2,3,4]) and (aRow > FixedRows)
setzen, was in etwa die gleiche Wirkung erzielt!
LG Mario


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 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