AGB  ·  Datenschutz  ·  Impressum  







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

DBGrid Right Click

Ein Thema von -187- · begonnen am 8. Okt 2010 · letzter Beitrag vom 9. Okt 2010
Antwort Antwort
Seite 2 von 2     12   
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#11

AW: DBGrid Right Click

  Alt 9. Okt 2010, 14:40
Hm weiss nicht so recht wie ich das anwenden soll. Ich merke mir den aktuellen Datensatz:
Code:
Cell:=DBGrid1.SelectedField.AsString;
Und nach danach spring ich da mit Locate wieder hin. Aber aus deinem Code kann man ja sehen das du dir die Scrollbar Position merkst, und diese dann wieder anfährst. Die Idee ist perfekt, jedoch hat das bei mir noch nicht geklappt:

Code:
var
  Cell: String;
  TempScrollInfo: SCROLLINFO;
begin
  if Button = mbRight then
  begin
    TempScrollInfo.cbSize := SizeOf(SCROLLINFO);
    TempScrollInfo.fMask := SIF_POS;
    GetScrollInfo(DBGrid1.Handle, SB_HORZ, TempScrollInfo);
    Cell:=DBGrid1.SelectedField.AsString;
    GridDeSelectAll(DBGrid1);
    DBGrid1.DataSource.DataSet.Locate('NUMBER',Cell,[loPartialKey,loCaseInsensitive]);
    DBGrid1.SelectedRows.CurrentRowSelected:=True;
    SetScrollInfo(DBGrid1.Handle, SB_HORZ, TempScrollInfo, True);
    PopupMenu1.Popup(Mouse.CursorPos.X,Mouse.CursorPos.Y);
  end;
end;
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#12

AW: DBGrid Right Click

  Alt 9. Okt 2010, 14:51
Das seltsame ist auch, mein DBGrid zeigt immer 20 Datensätze. Wenn ich in diesen ersten 20 Datensätzen den Rechtsclick mache dann hab ich das Problem nicht ! Nur wenn ich scrolle und bei Datensätzen > 20 den Rechtsclick mache dann springt der angeklickte Datensatz in die letzte angezeigte Row.
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
172 Beiträge
 
Delphi 12 Athens
 
#13

AW: DBGrid Right Click

  Alt 9. Okt 2010, 15:09
Du hast den "falschen" Teil genommen.
Damit setzt du nur die horizontale Scrollbar.

Du brauchst den Part mit row und rowdelta...
Micha
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#14

AW: DBGrid Right Click

  Alt 9. Okt 2010, 15:10
GetScrollInfo(DBGrid1.Handle, SB_HORZ, TempScrollInfo);
Soll es sich wirklich die horizontale Position merken?
Thomas
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#15

AW: DBGrid Right Click

  Alt 9. Okt 2010, 15:13
Hm natürlich nicht Mal wieder verwechselt. Ja ich brauche die verticale Position.

Code:
rowDelta := -1 + MyDBGrid.Row;
Mein DBGrid1 kennt kein .Row
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#16

AW: DBGrid Right Click

  Alt 9. Okt 2010, 15:24
Mein DBGrid1 kennt kein .Row
Hat es schon, aber es ist protected.

Mit diesem "Hack" kannst du auf Row zugreifen:

Delphi-Quellcode:
type
  TMyGrid = class(TDBGrid)
end;
   
TMyGrid(DbGrid1).Row;
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
172 Beiträge
 
Delphi 12 Athens
 
#17

AW: DBGrid Right Click

  Alt 9. Okt 2010, 15:32
Mein DBGrid1 kennt kein .Row
Oh, hab' ich nicht dran gedacht...

Row ist eine property von TCustomGrid und im DBGrid nicht sichtbar.
Ich hatte mir eine eigene Grid-Klasse von DBGrid abgeleitet und die Property dort
publiziert (vielleicht kommt man da auch anders dran (cast?))

Edit: mit dem "Hack" gehts natürlich auch
Micha
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#18

AW: DBGrid Right Click

  Alt 9. Okt 2010, 15:35
Jap hat alles geklappt. Danke für eure Hilfe und dem prima Code !
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 02:18 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