Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
ВнизЗаголовок StringGrida Найти похожие ветки
← →
Квэнди © (2004-09-10 10:17) [0]Здравствуйте, подскажите пожалуйста, можно ли как- нибудь TheardControl привязать к StringGrid, и еще вопрос: можно ли как- нибудь запретить изменение размера секций в TheardControl?
← →
MU © (2004-09-10 10:20) [1]1) Самому обрабатывать
2) MaxSize := MinSize
← →
Квэнди © (2004-09-10 10:22) [2]Ок, эт я понял, а привязать его к StringGrid ? или придется руками просто ставить его на заголовок, и руками же регулировать размеры секций под каждую ячейку?...
← →
MU © (2004-09-10 10:25) [3]А зачем? Чем заголовок StringGrid плох?
← →
Квэнди © (2004-09-10 10:31) [4]Кнопки, мне нужно сделать, чтоб ввиде заголовка было некое количество кнопок, (кароч для сортировки).. TheardControl очень здорово для этого подходит...
← →
MU © (2004-09-10 10:52) [5]можно и так отследить нажатие на заголовке и
если Row = 0 делать что-то
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var P : TGridCoord;
begin
P := StringGrid1.MouseCoord(X, Y);
ShowMessage(IntToStr(P.Y) + IntToStr(P.X));
end;
← →
MU © (2004-09-10 10:55) [6]еще можно TListView использовать.
сортировка? сколько там строк будет?
← →
MU © (2004-09-10 10:57) [7]еще можно TListView использовать.
ViewStyle := vsReport
он сам тебе и отсортирует. но можно и самому
← →
Квэнди © (2004-09-10 19:29) [8]Насчет заголовка: тогда не будет эффекта нажатия кнопки... а насчет строк.. не известно от 20 до 200 примерно... а насчет Tlistview надо будет подумать..
← →
_student (2004-09-10 19:46) [9]Недавно делал. Посмотри. Может подойдет
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, Buttons;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
SpeedButton1: TSpeedButton;
procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure MyClick(Sender: TObject);
procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
cx, cy: integer;
begin
StringGrid1.MouseToCell(x, y, cx, cy);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i, j: integer;
begin
StringGrid1.RowHeights[0]:=18;
for i := 1 to stringgrid1.colcount - 1 do
with TSpeedButton.Create(self) do
begin
Parent := StringGrid1;
Width := StringGrid1.ColWidths[i];
Height := StringGrid1.RowHeights[0];
name := "i" + inttostr(i);
Caption := inttostr(i);
GroupIndex := 1;
OnClick := MyClick;
end;
for i := 1 to stringgrid1.colcount - 1 do
for j := 0 to stringgrid1.rowcount - 1 do
StringGrid1.Cells[i, j] := inttostr(random(100));
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if (ARow = 0) and(acol>0) then
begin
(FindComponent("i" + inttostr(ACol)) as TSpeedButton).Left := Rect.Left;
(FindComponent("i" + inttostr(ACol)) as TSpeedButton).top := Rect.top;
end;
end;
procedure TForm1.MyClick(Sender: TObject);
var
i, j, k, m: integer;
buf: string;
begin
i := strtoint(copy((sender as TSpeedButton).Name, 2, length((sender as
TSpeedButton).Name)));
for j := 1 to StringGrid1.RowCount - 1 do
begin
for k := 1 to StringGrid1.RowCount - 2 do
begin
if strtoint(StringGrid1.Cells[i, k]) > strtoint(StringGrid1.Cells[i, k +
1]) then
begin
for m := 0 to StringGrid1.ColCount - 1 do
begin
buf := StringGrid1.Cells[m, k];
StringGrid1.Cells[m, k] := StringGrid1.Cells[m, k + 1];
StringGrid1.Cells[m, k + 1] := buf;
end;
end;
end;
end;
end;
end.
← →
Квэнди © (2004-09-10 19:57) [10]Спасиба, проверю, просто мне казалось что TheardControl несколько поинтересней будет, но попробую и этот вариант, благодарю за помощь.
← →
_student (2004-09-10 20:01) [11]Тама вылазеит ошибка когда SG прокручивать по горизонтали. Чё то я не смог исправить.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c