dbgrid spalten
-
hallo, ich benötige hilfe:
wenn ich in einer spalte des dbgrids klicke, möchte ich diese als index genannt bekommen.
folgendes habe ich versucht:
OnCellClick:
Column->Index(gibt mir entweder 0 aus, oder aber immer 69, wobei ich nicht weiss, was dann dann heisst)
kann mir hierbei jemand einen tipp geben?
gruß gerd
-
Schon mal mit SelectedIndex versucht?
Gruß,
Alexander
-
jip, dabei kam ebenfalls immer eine 0 heraus!
gruß gerd
-
Hallo
kann das Problem nicht nachvollziehen. Mit TDBGrid::SelectedIndex funktioniert das bei mir sehr gut.
Ich habe einfach eine neue Anwendung mit TTable, TDataSource und TDBGrid aufgebaut, und in DBGrid::OnCellCLick()
Label1->Caption = DBGrid1->SelectedIndex;
stehen.
Dann kommt in dem Label die Nummer der Spalte.bis bald
akari
-
ok ok, funzt zwar aber wenn
Option (dgRowSelect) = true;
dann nicht!
aber wie lautet hier die Lösung?
gruß gerd
-
Hallo
in dem Fall hast du leider Pech. Entweder RowSelect oder Spaltenindex.
Ich hab das bei mir so gelöst, das ich eine weitere Komponente von DBGrid abgeleitet habe, die eine Option namens ExtendedRowSelect besitzt. Ist diese aktiv, wird die Darstellung der Zellen in OnDrawColumnCell so übernommen, das die ganze Zeile markiert dargestellt wird, obwohl die Option RowSelect gar nicht aktiv ist. Dann kann ich die ausgewählte Spalte bestimmen.
bis bald
akari
-
das währe ne lösung die bei mir funktioniert:
TMouse *Mouse = new TMouse; TPoint GridPoint = dbgrAdress->ScreenToClient(Mouse->CursorPos); TGridCoord Zelle = dbgrAdress->MouseCoord(GridPoint.x,GridPoint.y); frmMain->ListBox1->Items->Add("X: "+IntToStr(Zelle.X)+" Y: "+IntToStr(Zelle.Y)); delete Mouse;
-
Hallo,
Mouse ist eine globale Variable. Du mußt sie nicht extra erstellen.
Ich hatte die gleiche Idee. Wenn bei mir allerdings dgRowSelect gestzt war, kam nichts Vernünftiges heraus (immer 1 oder 0).
-
Braunstein schrieb:
Mouse ist eine globale Variable. Du mußt sie nicht extra erstellen.
ups, habe ich übersehen.
Ich hatte die gleiche Idee. Wenn bei mir allerdings dgRowSelect gestzt war, kam nichts Vernünftiges heraus (immer 1 oder 0).
bei mir klapt das mit dgRowSelect. habe es extra bei meinem programm getestet.
-
Da muss ich mich vorhin wohl vertan haben. Ich habs noch mal getestet und jetzt funktioniert es. Ich hatte das ScreenToClient vergessen.
-
Danke für die Hilfe, funktioniert prima.
gruß gerd