TDBGrid: Neuen Datensatz einfügen verhindern
-
Hallo!
In einem DBGrid kann man - wenn diese nicht gerade ReadOnly ist, immer neue Datensätze hinzufügen, wenn man einfach mit der Cursor-Taste nach unten drückt.
Weiß jemand, wie man das unterbinden kann?
Die DBGrid sollte dabei schon beschreibbar bleiben, es sollten jedoch keine neuen Einträge hinzugefügt werden können...
Was mich ausserdem noch extrem an diesem DBGrid stört: Wenn eine leere Datenmenge geöffnet ist (also kein einziger Datensatz im Table ist), zeigt dieser immer eine leere Zeile an... Da wäre es gut, wenn gar nix angezeigt wird...Weiß jemand eine Lösung?
tschüss
Robert
-
Hi,
schau dir mal die Eigenschaft Options an.
-
Hallo!
Erstmal Danke für die Antwort!
Das finde ich jedoch nicht das, was ich brauche...
Das Grid selbst sollte ja editierbar bleiben - also darf nicht auf ReadOnly stehen - es sollte lediglich unterbunden werden, dass neue Datensätze mit EINFG oder mit der Cursor-Taste eingefügt werden können...Aber vielleicht hast du da ja auch ne Idee bzw. vielleicht hab ich ja doch was übersehen...
tschüss
Robert
-
hm,
du könntest das Zeichnen der Cellen selbst übernehmen und so die aller letzte Zeile gar nicht erst anzeigen...Anregungen findest du hier: http://delphi.about.com/library/weekly/aa031699.htm
Ansonsten müsstest du eine neue Komponete ableiten, die WndProc überschreiben und entsprechnde Nachrichten abfangen oder verantwortliche Methoden überschreiben. Ist aber nicht so einfach..
-
Probier das mal im OnAfterInsert des zugrundeliegenden Table oder Query:
DataSet->Prior(); DataSet->Next();
Nicht sehr elegant, aber funktioniert.
-
Hallo!
Erstmal Danke an alle!
Mit dem Prior und dann Next funktionierts leider nicht ganz. Wenn ich dann über einen Button dann einen neuen Datensatz einfüge funktionierts auch nicht.Dennoch habe ich eine Lösung gefunden:
if (Key == VK_INSERT) Key = 0; if ((Key == VK_DOWN) || (Table1->RecordCount == 0)) DBGrid1->ReadOnly = True; else DBGrid1->ReadOnly = False;
und damit funktionierts...
Danke euch!
tschüss
Robert
-
Original erstellt von rowisoft:
Wenn ich dann über einen Button dann einen neuen Datensatz einfüge funktionierts auch nicht.Vom Einfügen per Button war bei dir aber auch nicht die Rede!
-
Hallo!
Vom Einfügen per Button war bei dir aber auch nicht die Rede!
Ohh entschuldigung...
Ja - aber so solls sein! Habe euch ja auch gedankt*schleimschleim*
Danke nochmal :-))
tschüss
Robert