2010-10-13 10 views
0

HI all,Delphi Grid Visible Article

Je travaille avec Delphi 7. Je suis confronté à un problème avec la grille.

Ma grille ayant 100 lignes, j'en rajoute après cela. Par exemple, je suis sélectionné l'article est le 1oth. La grille affiche 20 éléments sur l'écran à la fois. J'ai fait défiler la grille vers le bas. J'ai atteint le dernier. Ici Itemindex de la grille = 10; Veuillez noter que l'élément sélectionné n'apparaît pas dans la fenêtre visible. Lorsque j'ajoute l'élément, la grille se rafraîchit et se déplace pour afficher le 10ème élément.

Je ne veux pas faire ça.

Mon exigence est Lors de l'ajout de nouvelles lignes, l'écran doit rester le même, comme indiqué la dernière fois.

Attendre une réponse rapide.

Merci et salutations,

Vijesh V.NAIR Analyste du système. Delhi, Inde.

+1

Quelle est la grille et comment voulez-vous ajouter des articles à elle? –

+8

S'il vous plaît ne pas demander des choses comme 'Attendre une réponse rapide.'. Tout le monde a besoin d'une réponse rapide. Les personnes qui répondent à vos questions se portent toutes volontaires pour le faire. Ne les cache pas. – Birger

+4

Bienvenue dans StackOverflow. En ce moment, votre question est trop vague pour que je puisse y répondre. Vous devriez clarifier au moins ces choses: Quel type de grille utilisez-vous (TDBGrid, TStringGrid, ...), comment ajouter des lignes, comment faites-vous défiler (par code ou à la main), à quoi cela ressemble-t-il avant? après (fournir des captures d'écran), que voulez-vous dire par écran (la grille elle-même, ou l'écran entier). –

Répondre

0

Avant d'ajouter un élément, marquez la ligne actuelle de votre table qui correspond à dbgrid. Afer ajouter un élément goto votre signet un échantillon pour travailler avec TBookmark: (vous pouvez remplacer ClientDataSet1 avec votre tableName comme table1)

unit MainForm; 

interface 

uses 
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
    Dialogs, StdCtrls, DB, DBClient, ExtCtrls, ActnList, Grids, DBGrids, 
    DBCtrls; 

type 
    TfrmMain = class(TForm) 
    DataSource1: TDataSource; 
    pnlClient: TPanel; 
    pnlBottom: TPanel; 
    btnFirst: TButton; 
    btnLast: TButton; 
    btnNext: TButton; 
    btnPrior: TButton; 
    DBGrid1: TDBGrid; 
    ClientDataSet1: TClientDataSet; 
    btnSetRecNo: TButton; 
    DBNavigator1: TDBNavigator; 
    btnGetBookmark: TButton; 
    btnGotoBookmark: TButton; 
    procedure FormCreate(Sender: TObject); 
    procedure btnNextClick(Sender: TObject); 
    procedure btnLastClick(Sender: TObject); 
    procedure btnSetRecNoClick(Sender: TObject); 
    procedure btnFirstClick(Sender: TObject); 
    procedure btnPriorClick(Sender: TObject); 
    procedure btnGetBookmarkClick(Sender: TObject); 
    procedure btnGotoBookmarkClick(Sender: TObject); 
    private 
    { Private declarations } 
    FBookmark: TBookmark; 
    public 
    { Public declarations } 
    end; 

var 
    frmMain: TfrmMain; 

implementation 

{$R *.dfm} 

procedure TfrmMain.FormCreate(Sender: TObject); 
begin 
    ClientDataSet1.LoadFromFile('C:\Employee.cds'); 
end; 

procedure TfrmMain.btnFirstClick(Sender: TObject); 
begin 
    ClientDataSet1.First; 
end; 

procedure TfrmMain.btnPriorClick(Sender: TObject); 
begin 
    ClientDataSet1.Prior; 
end; 

procedure TfrmMain.btnNextClick(Sender: TObject); 
begin 
    ClientDataSet1.Next; 
end; 

procedure TfrmMain.btnLastClick(Sender: TObject); 
begin 
    ClientDataSet1.Last; 
end; 

procedure TfrmMain.btnSetRecNoClick(Sender: TObject); 
var 
    Value: string; 
begin 
    Value := '1'; 
    if InputQuery('RecNo', 'Enter Record Number', Value) then 
    ClientDataSet1.RecNo := StrToInt(Value); 
end; 

procedure TfrmMain.btnGetBookmarkClick(Sender: TObject); 
begin 
    if Assigned(FBookmark) then 
    ClientDataSet1.FreeBookmark(FBookmark); 

    FBookmark := ClientDataSet1.GetBookmark; 
end; 

procedure TfrmMain.btnGotoBookmarkClick(Sender: TObject); 
begin 
    if Assigned(FBookmark) then 
    ClientDataSet1.GotoBookmark(FBookmark) 
    else 
    ShowMessage('No bookmark set!'); 
end; 

end.