AGB  ·  Datenschutz  ·  Impressum  







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

Eingabe in Stringgrid

Ein Thema von Hansa · begonnen am 2. Mai 2003 · letzter Beitrag vom 6. Mai 2003
Antwort Antwort
Seite 1 von 2  1 2      
Hansa

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

Eingabe in Stringgrid

  Alt 2. Mai 2003, 12:05
Hi,

ich habe hier ein Stringgrid mit 7 Spalten. In 2 dieser Spalten soll man etwas eingeben können, in die anderen nicht. Jetzt ist es aber so, daß von vorneherein gar nichts irgendwo eingegeben werden kann. Wer weiß mehr ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#2
  Alt 2. Mai 2003, 12:19
Wenn du in das Grid nix eingeben kannst, musst du im OI unter Optionen die Eigenschaft Editing auf true setzen. Dann kannst du die Zellen im StringGrid ändern.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3
  Alt 2. Mai 2003, 12:24
es heißt "goEditing", gilt aber für das ganze Grid. Und wie schränke ich das auf 2 von 7 Spalten ein ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#4
  Alt 2. Mai 2003, 12:26
Du könntest es so machen:
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
const erlaubt = [2,3];
begin
  if not (ACol in Erlaubt) THEN CanSelect:=False;
end;
Dann kann der Benutzer nur die Spalten 2 und 3 auswählen!

MfG,
Peter

[edit=Daniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit]
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5
  Alt 2. Mai 2003, 12:32
Thx, genau so geht es. Mal abwarten, bis das nächste Problemchen auftaucht. Kann nicht mehr lange dauern. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6
  Alt 2. Mai 2003, 12:36
Da ist schon eines: Gibt es so was wie OnExitCell? Es geht mir darum, falls das Grid gefüllt ist noch eine Zeile dran zu hängen. Durch einen Buttonclick geht das, aber es müßte gehen, sobald eine Zelle einen Wert besitzt. Und dann noch was: kann ich eine ganze Zeile löschen ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#7
  Alt 2. Mai 2003, 12:47
Bei der Sache mit OnExitCell muss ich passen. Du könntest im OnDrawCell-Ereignis abfragen, ob in der letzten Zeile was steht und wenn dem so ist, noch eine dran hängen.

Eine Zeile löschen kannst Du, glaube ich, nur, wenn Du alle nachfolgenden Zeilen eins nach oben verschiebst und dann den RowCount um eins erniedrigst.

MfG,
Peter
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Neo2084

Registriert seit: 1. Mai 2003
Ort: Thüringen
35 Beiträge
 
Delphi 5 Professional
 
#8
  Alt 2. Mai 2003, 14:35
Hallo Hansa,

Zitat von Hansa:
Da ist schon eines: Gibt es so was wie OnExitCell? Es geht mir darum, falls das Grid gefüllt ist noch eine Zeile dran zu hängen. Durch einen Buttonclick geht das, aber es müßte gehen, sobald eine Zelle einen Wert besitzt.
so könnte es mit der "PfeilNachUnten-Taste" funktionieren :

Delphi-Quellcode:
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     if Key=40 {Down} then
     begin
       if (Stringgrid1.Row=Stringgrid1.RowCount-1) and
          (Stringgrid1.Cells[1,Stringgrid1.Row]<>'') then
       begin
          Stringgrid1.RowCount :=Stringgrid1.RowCount+1;
       end;
     end;
end;
Gruß Jan
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9
  Alt 2. Mai 2003, 14:48
Moin Hansa,

Zeilen löschen wie im RichEdit oder einer StringList geht definitiv nicht. Ein StringGrid ist ein borlandspezifisches Control, bei dem der erforderliche Speicher automatisch vom Stringgrid selber verwaltet wird.
Du kannst auch problemlos in Zellen schreiben, die ausserhalb von RowCount bzw. ColCount liegen. Diese geben nur den sichtbaren Bereich an.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Keldorn

Registriert seit: 6. Mär 2003
Ort: Meißen
876 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10
  Alt 2. Mai 2003, 15:38
Zitat von Peter Lustig:
Du könntest es so machen:
Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
const erlaubt = [2,3];
begin
  if not (ACol in Erlaubt) THEN CanSelect:=False;
end;
Dann kann der Benutzer nur die Spalten 2 und 3 auswählen!

MfG,
Peter
Hallo,

die Lösung find ich nicht ganz so gut. Grund: wenn man Canselect auf False stellt, kann die Zelle gar nicht ausgewählt werden. Leute, die sich gern mit den Cursortasten durch Grid hangeln werden nie von Spalte 1 zu spalte 4 kommen. Das mit Goediting mache ich so:

Delphi-Quellcode:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; aCol, aRow: Integer;
  var CanSelect: Boolean);
begin
  if acol in [2,3] then stringgrid1.Options:=stringgrid1.Options-[goediting]
                   else stringgrid1.Options:=stringgrid1.Options+[goediting];
end;
Mfg Frank

[edit=Daniel B]Delphi-Tags ergänzt. MfG Daniel B.[/edit]

Lükes Grundlage der Programmierung:
Es wird nicht funktionieren
(Murphy)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:46 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