![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как синхронизовать две StringGrid??? [D7, WinXP]
fuzzy © (2006-04-09 15:21:00)Хочу, чтобы при прокручивании одной, вторая прокручивалась на столько же строк. Как бы мне это осуществить? Помогите.
Alarm (2006-04-10 08:13:00) [1]Можно так:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Grids;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
lbproc1, lbproc2: TWndMethod;
procedure NewProc1(var msg: TMessage);
procedure NewProc2(var msg: TMessage);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.NewProc1;
begin
case msg.Msg of
WM_VSCROLL, LB_SETCURSEL,
WM_KEYFIRST..WM_KEYLAST,
WM_MOUSEFIRST..WM_MOUSELAST:
lbproc2(msg);
end;
lbproc1(msg);
end;
procedure TForm1.NewProc2;
begin
case msg.Msg of
WM_VSCROLL, LB_SETCURSEL,
WM_KEYFIRST..WM_KEYLAST,
WM_MOUSEFIRST..WM_MOUSELAST:
lbproc1(msg);
end;
lbproc2(msg);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
lbproc1 := StringGrid1.WindowProc;
StringGrid1.WindowProc := NewProc1;
lbproc2 := StringGrid2.WindowProc;
StringGrid2.WindowProc := NewProc2;
end;
end.
>Германн © (10.04.06 02:26) [4]
В 2-язычных приложениях это иногда оказывается полезным:)
Германн (2006-04-10 02:26:00) [2]
> fuzzy © (09.04.06 15:21)
>
> Хочу, чтобы при прокручивании одной, вторая прокручивалась
> на столько же строк. Как бы мне это осуществить? Помогите.
>
А зачем? Искусства ради? Или есть идея?
Palladin (2006-04-09 22:00:00) [3](цветом шрифта) по (цвету фона), OnTopLeftChanged
fuzzy (2006-04-09 21:48:00) [4]Понятно, но на какое событие это повесить? не таймер же ставить...
EvS (2006-04-09 16:55:00) [5]StringGrid2.TopRow:=StringGrid1.TopRow; //строка
StringGrid2.LeftCol:=StringGrid1.LeftCol; //столбец