Britta
>DBGrid.Cells[0,0]
Ich habe mal irgendwo gelsen, daß man das dadurch erreichen können soll,
indem man auf TStringGrid typecastet (TStringGrid(DBGrid).xxx)
Allerdings habe ich das nicht ausprobiert, da ich selbst nur das Grid
von DevExpress einsetze, wo das auch so möglich ist.
Bis denne dann .... Eisi
"Britta Müller" <DustyM...@web.de> schrieb im Newsbeitrag
news:3b90bda9...@news.cis.dfn.de...
Schau Dir mal die Eigenschaften DataLink, ActiveRecord an, und ein wenig
Typecasten brauchts auch noch. Folgender Code liefert den Text für eine
Zelle:
------------------------------
type
TDirtyCustomDBGrid= class(TCustomDBGrid);
function VisibleText(ACustomDBGrid: TCustomDBGrid; MyCol, MyRow: integer):
string;
var
OldActiveRecord: integer;
begin
with TDirtyCustomDBGrid(ACustomDBGrid) do begin
Result := '';
OldActiveRecord := DataLink.ActiveRecord;
try
DataLink.ActiveRecord := MyRow;
if Assigned(Columns[MyCol].Field) = True then begin
Result := Columns[MyCol].Field.DisplayText;
end;
finally
DataLink.ActiveRecord := OldActiveRecord;
end;
end;
end;
------------------------------
Ich hab dunnemals mehrere Tage gebraucht, um die Interna zu verstehen, mit
der Routine sollte es einfacher sein.
Bye, Ralf
>Moin!
>function VisibleText(ACustomDBGrid: TCustomDBGrid; MyCol, MyRow: integer):
>.........
Ich bin schier baff! Funzt ungemein gut!
Vielen Dank :-D
Wie kann ich die Zeilenhöhe (in Pixel) festlegen im TDBGrid?
Britta
with Query do begin
DisableControls;
try
bm := GetBookMark;
try
First;
TueEtwas( );
finally
GotoBookMark(bm);
FreeBookMark(bm);
end;
finally
EnableControls;
end;
end;
So oder ähnlich?
Gruß
Hans
"Hans Lesmeister" <Han...@Bigfoot.com> schrieb im Newsbeitrag
news:9n2bpd$4odu3$1...@ID-83517.news.dfncis.de...
> > Hm... nun stellt sich heraus, das ich nicht das erste *sichtbare* Feld
> > haben möchte, sondern das erste Feld im Grid überhaupt. Gibt es dafür
> > auch eine gute Lösung?
>
> with Query do begin
> DisableControls;
> try
> bm := GetBookMark;
> try
> First;
> TueEtwas( );
...
Sie meinte _Feld_, nicht _Datensatz_. Aber wahrscheinlich meinte sie 1. Feld
in der Tabelle, nicht im Grid. Da muß man wohl die Tiefen des Pufferung
durchforsten.
Bye, Ralf
Sie hat im ersten Posting DBGrid.Cells[0,0].AsString geschrieben.
Ich denke sie will das erste Feld im ersten Satz <zitat>im Grid
überhaupt</zitat>, dann muß sie also doch mit einem First( ) ganz nach oben
und dann halt Grid.Columns[0].Field.AsString um an den Inhalt des ersten
Feldes zu kommen.
Ehrlich gesagt verstehe ich den Sinn nicht so. Das erste Feld im aktuellen
Satz bekomme ich mit
Grid.Columns[0].Field und wenn es dann unbedingt aus dem ersten Satz sein
soll, dann hole ich das raus im AfterOpen-Event.
Gruß
Hans
Auf Karteireiter Nr. 3 soll dann das erste Feld ("0,0") als
Bemerkungsfeld (TEdit) voreingestellt werden. Die Vorbelegung des
Bermkungsfeldes soll derart erfolgen, dass bei einem Wechsel auf
Karteireiter 2 (mit dem Grid) der Cursor dort steht, wo er zuletzt
hingesetzt wurde und das Grid so aussieht, wie verlassen (Zeile,
Spalte, auch relative Position).
Hatte in den letzten Tagen leider keine Zeit den Bookmark-Vorschlag
auszuprobieren.
Ich bin erstaunt, dass das so schwierig ist. Wenn das DBGrid nämlich
von TCustomGrid abgeleitet ist müsste es "Cells" eigentlich geben,
oder?
Britta
"Britta Müller" <DustyM...@web.de> schrieb im Newsbeitrag
news:3b9730e...@news.cis.dfn.de...
...
> Ich bin erstaunt, dass das so schwierig ist. Wenn das DBGrid nämlich
> von TCustomGrid abgeleitet ist müsste es "Cells" eigentlich geben,
> oder?
Überleg mal, was das bedeuten würde. Alle Daten wären per Cells[]
erreichbar, ergo wäre die gesamte Tabelle im RAM. Delphi hält nur die
Datensätze, die zur Anzeige benötigt werden. Und wie Du an diese Daten
rankommst, habe ich schon geschrieben. Ansonsten hat man eben nur Zugriff
auf den aktuellen Datensatz. Datenbank eben, nicht Array.
Bye, Ralf
Ich verstehe den Sinn nicht ganz, glaube ich. Im Grid (Karteireiter 2) kann
der Benutzer mehrere Records eingeben. Auf Karteireiter 2 kann er _eine_
Bemerkung eingeben oder gibt es dort auch mehrere Records zu sehen mit je
ein Bemerkungsfeld? Wenn einer, warum soll der im ersten Feld des DataSets
gespeichert werden? Hat Kartei3 nur ein TEdit?
> Ich bin erstaunt, dass das so schwierig ist. Wenn das DBGrid nämlich
> von TCustomGrid abgeleitet ist müsste es "Cells" eigentlich geben,
> oder?
Natürlich gibt es Cells, nur das Cells[0, 0] immer die erste Zelle des
sichtbaren bereichs ist.
Gruß
Hans