Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Заголовок 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.058 c
8-1088752947
mr. Lamer
2004-07-02 11:22
2004.09.26
g32


1-1094634938
rand0m
2004-09-08 13:15
2004.09.26
Run-time библиотеки Delphi


1-1095072110
limon_
2004-09-13 14:41
2004.09.26
поиск в combobox


8-1088345691
DukeArtem
2004-06-27 18:14
2004.09.26
Помогите с движком!


3-1093933061
kaginava
2004-08-31 10:17
2004.09.26
UDF