24. marts 2004 - 20:39Der er
4 kommentarer og 1 løsning
Automatisk scroll i TStringgrid
Hej Eksperter!
Nu har jeg kigget en del omkring og kan simpelthen ikke finde en løsning. Problemet er således: Jeg har en TStringgrid. I denne kan jeg drag & droppe nogle elementer. Jeg vil gerne have min grid til at scrolle ned af, når jeg dragger og cursoren kommer i bunden. Kan det ikke lade sig gøre og hvordan?
I min test har jeg en TEdit der med DragMode=Auto og en TStringGrid. Humlen i løsningen er den allernederste SendMessage.
procedure TfrmMain.Edit1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := false; end;
procedure TfrmMain.StringGrid1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := (Source is TEdit); end;
procedure TfrmMain.StringGrid1DragDrop(Sender, Source: TObject; X, Y: Integer); var Edit : TEdit; StringGrid : TStringGrid; begin if (Sender is TStringGrid) and (Source is TEdit) then begin Edit := (Source as TEdit); StringGrid := (Sender as TStringGrid);
with StringGrid do begin if Cells[1,RowCount - 1] <> '' then RowCount := RowCount + 1; Cells[1,RowCount - 1] := Edit.Text; end; end;
SendMessage(StringGrid.Handle,{ HWND of the Control } WM_VSCROLL, { Windows Message } SB_PAGEDOWN, { Scroll Command } 0); { Not Used } end;
Stop en halv. Jeg vil gerne have points for min udlejlighed, men inden du opgiver, så lad os prøve at se på det sammen i åbent forum.
Hvad forsøger du at gøre? I mit testprogram har jeg en ReadOnly TEdit hvor DragMode= automatic. De to ovenstående events, tilknyttet TStringGridden, siger sig selv. Det burde virke.
Hvad er det du vil trække over i TStringGridden? Er det en record eller et objekt?
Hmmm... Jeg troede bare der var en eller anden property jeg havde overset of det derfor var lige til. Det var ikke noget jeg gad at bruge mange timer på.
Problemet er som følger. Jeg har en TStringgrid og en TListBox. Jeg kan dragge et element fra Listboxen over i gridden. Derudover kan jeg dragge elementerne rundt internt i gridden. Elementerne er egentlig bare strenge, men har en reference til en database som ændres hvorefter elementet er i gridden. Derfor er min Dragdrop meget lang!
Det jeg ønsker er, at når man kommer nederst på gridden, det vil sige sidst synlige cell, så skal gridden scrolle ned af, så man får de celler som ligger længere nede at se.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.