AGB  ·  Datenschutz  ·  Impressum  







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

DBGrid Darstellung ändern?

Ein Thema von khh · begonnen am 20. Dez 2010 · letzter Beitrag vom 21. Dez 2010
Antwort Antwort
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#1

DBGrid Darstellung ändern?

  Alt 20. Dez 2010, 14:40
Hallo zusammen,
ich habe ein DBgrid welches lediglich zur Anzeige der DS dient.
Die Änderung des entsprechenden DS geschieht ausserhalb des Grid in Editfeldern.

Mit : Query.locate und Query.RecNo gehe ich zum jeweils nächsten Satz.


funktioniert auch alles, bis auf die Anzeige im Grid.
Die rutscht nach oben weg, wenn ich beim ersten Satz anfange zu ändern, und zwar solange bis nach unten alles ds im Grid angezeigt werden.

Ist das Grid irgendwie dahingehend zu beienflussen, dass die DS erst dann "nach oben rutschen", wenn der letzte unten sichtbare DS verlassen wird?

Optimal wäre noch eine Markierung des aktuellen Satzes, ohne dass das Grid den Fokus haben muss.

Danke Gruss KHH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von skh
skh

Registriert seit: 17. Aug 2005
Ort: Saarland
28 Beiträge
 
Delphi 7 Professional
 
#2

AW: DBGrid Darstellung ändern?

  Alt 20. Dez 2010, 15:20
Hallo,

ich denke mit Query1.Next wäre der NÄCHSTE Satz leichter zu ereichen.

Das Problem mit der Anzeige habe ich nicht ganz verstanden.
Karl-Heinz
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#3

AW: DBGrid Darstellung ändern?

  Alt 20. Dez 2010, 15:38
Hallo,

ich denke mit Query1.Next wäre der NÄCHSTE Satz leichter zu ereichen.

Das Problem mit der Anzeige habe ich nicht ganz verstanden.
Ok, next geht natürlich auch, zu was einfach wenns umständlich auch geht

Nochmal zur Anzeige:
ich postioniere ZB per Mausklick auf den ersten Satz im Grid und übernehme dadurch die zu ändernden Feldinhalte in ein Editfeld.
im onkeydown dieses Feldes speichere ich bei VK_RETURN den geänderten Wert und gehe nit "NEXT" zum nächsten Satz.
Dadurch rutscht der gerade geänderte Satz nach oben aus dem Grid und die Änderung ist nicht mehr zu sehen

Um meine Änderung zu sehen muss ich also nach oben scrollen.

Postitioniere ich aber auf irgendeinem Satz in der Mitte des Grid, rutscht der gesamte Inhalt erst bei Erreichen des unteren Rand nach oben, so dass der gerade geänderte Satz weiterhin zu sehen ist.

Ich möchte also errecihen, dass ich auch beim Ändern des ersten Satzen diesen noch im Grid sehen kann, bis dfas untere Ende des Grid erreicht ist.
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von skh
skh

Registriert seit: 17. Aug 2005
Ort: Saarland
28 Beiträge
 
Delphi 7 Professional
 
#4

AW: DBGrid Darstellung ändern?

  Alt 20. Dez 2010, 16:33
wieso liest du eigentlich den nächsten DS, der steht doch schon im Dbgrid.
Einfach im Dbgrid den zu ändernden DS anklicken, ändern in den Edit-Feldern und dann speichern.
Ich arbeite hier meistens mit einem Navigator...
Karl-Heinz
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#5

AW: DBGrid Darstellung ändern?

  Alt 20. Dez 2010, 16:41
wieso liest du eigentlich den nächsten DS, der steht doch schon im Dbgrid.
Einfach im Dbgrid den zu ändernden DS anklicken, ändern in den Edit-Feldern und dann speichern.
Ich arbeite hier meistens mit einem Navigator...
wiel ich zum Ändern der Werte keine DBEdits, sondern normale Edits verwende.

Die dahinter liegenden und nebenbei ablaufenden Funktionen sind zu komplex um mit DB-Verküpfungen und Navigator zurecht zu kommen.
(zumindest hab ichs nicht hinbekommen )
Es liegen recht komplexe Preisfindungsroutinen dahinter, die auf diverse zusätzliche DB-Tabellen und Einstellungen zugreifen)

Das einzige Datacontrol ist das DBGrid
Karl-Heinz

Geändert von khh (20. Dez 2010 um 16:52 Uhr)
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#6

AW: DBGrid Darstellung ändern?

  Alt 20. Dez 2010, 20:06
eventuell kannst Du dein Grid vom TCustomGrid ableiten und dann auf die Eigenschaft TopRow zugreifen
Mit SettopRow kannst Du dann die Oberste Zeile beeinflussen.
Code:
Type
MyTDBGrid = class(TCustomGrid)
public
    property TopRow;
    property VisibleRowCount;
    procedure SetTopRow(Value: Longint);
End;

procedure MyTDBGrid.SetTopRow(Value: Longint) ;
begin
   inherited;
end;

procedure TForm1.ereignisdeinerwahl(Sender: TObject);
var
    TopRowNo : Integer;
    VisibleRows : Integer;
begin
    TopRowNo := MyTDBGrid(yourTDBGrid1).TopRow;
    VisibleRows := MyTDBGrid(yourTDBGrid1).VisibleRowCount;
end;
Der Code ist ungetestet
Nur so als Denkanstoß
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.903 Beiträge
 
FreePascal / Lazarus
 
#7

AW: DBGrid Darstellung ändern?

  Alt 21. Dez 2010, 06:42
Zitat:

Der Code ist ungetestet
Nur so als Denkanstoß

danke dir, werd ich ausprobieren
Karl-Heinz
  Mit Zitat antworten Zitat
Antwort Antwort


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:19 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