Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi im Stringgrid spalten für Eingabe sperren ? (https://www.delphipraxis.net/14863-im-stringgrid-spalten-fuer-eingabe-sperren.html)

Hansa 16. Jan 2004 21:27


im Stringgrid spalten für Eingabe sperren ?
 
Hi,

ich will nur die Spalten 1 und 4 zur Eingabe zulassen. Wieso geht das hier nicht :

Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
  CanSelect := false;
  if StringGrid1.Col IN [0,2,3,5,6] then
    StringGrid1.Options := StringGrid1.Options - [goEditing]
  else begin
    CanSelect := true;
    StringGrid1.Options := StringGrid1.Options + [goEditing];
  end;
end;
die R/O Spalten sollten trotzdem eventuell noch Tastatur-Ereignisse verarbeiten können.

Christian Seehase 16. Jan 2004 21:34

Re: im Stringgrid spalten für Eingabe sperren ?
 
Moin Hansa,

tausch' mal StringGrid1.Col gegen ACol aus.
Du musst ja die ausgewählte Spalte abfragen, und die wird mit dem Parameter ACol angegeben.

[EDIT]
Und damit ansonsten noch die Tastaturereignisse funktionieren, lass mal die CanSelect Zuweisungen weg.
[/EDIT]

Hansa 17. Jan 2004 13:22

Re: im Stringgrid spalten für Eingabe sperren ?
 
Hi Christian,

das Austauschen nützt nichts. Ich habe das Verhalten des Stringgrids noch einmal überprüft : lasse ich das CanSelect weg, werden nicht alle Spalten angezeigt. Bleibt alles wie gehabt mit Col und CanSelect, so kann ich nur in Spalte 1 und 4 etwas eingeben. Aber wenn ich die "gesperrten" mit der Maus anklicke, so werden sie blau und alles gerät durcheinander. Egal ob ich Stringgrid1.Col schreibe oder ACol. Die Abfrage kommt ja erst, wenn die Zelle bereits selektiert ist, nur wo soll ich das sonst machen ?

Keldorn 17. Jan 2004 13:31

Re: im Stringgrid spalten für Eingabe sperren ?
 
Zitat:

Zitat von Hansa

... Die Abfrage kommt ja erst, wenn die Zelle bereits selektiert ist,

onselect wird vorm Auswählen der zelle ausgelöst, sonst hätts ja keinen Sinn.
wir hatten das doch auch schonmal, http://www.delphipraxis.net/internal...ight=goediting
und siehe meinen Post vom 02.05.2003, 15:38 und ich seh darin jetzt nicht das Problem?

mfg Frank


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