AGB  ·  Datenschutz  ·  Impressum  







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

eine zelle im stringgrid auf readonly?

Ein Thema von herrentor · begonnen am 30. Mai 2004 · letzter Beitrag vom 15. Nov 2006
Antwort Antwort
herrentor

Registriert seit: 29. Mai 2004
Ort: Emden
158 Beiträge
 
#1

eine zelle im stringgrid auf readonly?

  Alt 30. Mai 2004, 13:43
moin,

kann mir jemand sagen, wie ich nur eine zelle im stringgrid so formatieren kann, dass man dort nicht mehr rein schreiben kann?

danke im voraus.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#2

Re: eine zelle im stringgrid auf readonly?

  Alt 30. Mai 2004, 13:54
Hallo herrentor,
so kann die Zelle (1,1) nicht mehr selektiert werden. Also kann der Inhalt auch nicht mehr geändert werden.
Delphi-Quellcode:
procedure TForm1.SGSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
begin
  CanSelect:=Not ((ACol=1) and (ARow=1));
end;
I come from outer space to save the human race
  Mit Zitat antworten Zitat
herrentor

Registriert seit: 29. Mai 2004
Ort: Emden
158 Beiträge
 
#3

Re: eine zelle im stringgrid auf readonly?

  Alt 30. Mai 2004, 14:24
wunderbar, danke. und wie kann man jetzt einstellen, dass die zelle bei tab oder pfeil nach rechts übersprungen wird?
  Mit Zitat antworten Zitat
kaiser1401

Registriert seit: 6. Mär 2006
Ort: Gescher
157 Beiträge
 
Delphi 7 Professional
 
#4

Re: eine zelle im stringgrid auf readonly?

  Alt 15. Nov 2006, 17:43
hi, hat hier nochmal jemand was gefunden? stehe nämlich gerade vor dem problem. hab eine externe komponente die auf einem stringgrid basiert und möchte nun für einige bestimmte zellen verhindern das der wert geändert werden kann.
inc(i);
  Mit Zitat antworten Zitat
Hobby-Programmierer

Registriert seit: 19. Jan 2006
Ort: München
392 Beiträge
 
Delphi XE Starter
 
#5

Re: eine zelle im stringgrid auf readonly?

  Alt 15. Nov 2006, 18:25
Nabend ...,
nichts leichter als das. Jens hatte oben ja bereits beschrieben wies ungefähr geht. Also leiten wir ab ...
Delphi-Quellcode:
procedure TForm1.SGSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
  if ARow = 1 then // Schreibschutz für Zeile 1
   SG.Options:= SG.Options -[goEditing]
  else
   SG.Options:= SG.Options +[goEditing];
end;
LG Mario
Mario
'Lesen Sie schnell, denn nichts ist beständiger als der Wandel im Internet!'
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#6

Re: eine zelle im stringgrid auf readonly?

  Alt 15. Nov 2006, 22:59
als kleine Ergänzung bei unregelmäßigen Schreib-Sperren...

um jede zelle einzeln zu setzen hab ich die Schreibrechte in meinem DFMEditor in ein 2 dimensionales array ausgelagert (fixedcols=1,fixedrows=1,rows=7,cols=5):

Delphi-Quellcode:
const
  SizeEditable:array[1..6,1..4] of boolean=(
  (true,true,false,false),
  (true,true,true,true),
  (true,true,true,true),
  (false,false,true,true),
  (true,true,true,true),
  (true,true,false,false)
  );

procedure TForm_DFMOptions.StringGrid1SelectCell(Sender: TObject; Col,
  Row: Integer; var CanSelect: Boolean);
begin
  if SizeEditable[row,col] then
    Stringgrid1.Options:=Stringgrid1.Options+[goEditing]
  else
    Stringgrid1.Options:=Stringgrid1.Options-[goEditing];
end;
hier sieht man, dass in Zeile 1 nur die ersten beiden Zellen editiert werden können in Zeile 2 und 3 dafür alle.

HTH Frank
  Mit Zitat antworten Zitat
Hansa

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

Re: eine zelle im stringgrid auf readonly?

  Alt 15. Nov 2006, 23:23
Zitat von _frank_:
als kleine Ergänzung bei unregelmäßigen Schreib-Sperren...
...hier sieht man, dass in Zeile 1 nur die ersten beiden Zellen editiert werden können in Zeile 2 und 3 dafür alle...
Also gut. Was, wenn in Zeile 1 nur die Zellen 3 und 4 editiert werden sollen und 1,2 eben nicht ? Solche Konstrukte sind IMHO zu starr. Lassen sich schwerlich vererben und alles muss wieder doppelt und dreifach programmiert werden.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#8

Re: eine zelle im stringgrid auf readonly?

  Alt 15. Nov 2006, 23:39
in meinem Fall ist es eine statische Tabelle daher die statische zuordnung (definition der Fensterpositionen und Größen). Bestimmte Fenster kann man nur an eine andere Position setzen andere auch in der Größe ändern... Da brauchte ich nix dynamisches. Für jedes Fenster eine Zeile und die spalten links,oben,breite,höhe.

Aber man kann das Konstrukt als basis nehmen um z.B. ein dynamisches array zu setzen (z.B. per ini, wobei man da eher das Objects-property nutzen sollte).

Kommt halt auf den speziellen Fall an, ob man es dynamisch braucht oder halt nicht.

Gruß Frank
  Mit Zitat antworten Zitat
Hansa

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

Re: eine zelle im stringgrid auf readonly?

  Alt 15. Nov 2006, 23:50
Ich wollte nur darauf hinweisen, dass sowas eben nicht interaktiv ist. Also völlig abhängig von Deinem Code, egal was der User will. Hängt das "ReadOnly" von einer Bedingung ab, dann ist Ende mit Deinem Code. Man kann das allgemeingültig formulieren und wiederverwenden, aber das würde den Rahmen der Ausgangsfrage wohl sprengen. CanSelect wurde ja schließlich bereits erwähnt.
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 01:54 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