![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть процедура
Код:
procedure TFOilGasSprt.FillStringGrid();
var
i,j:integer;
RecCnt:Cardinal;
begin
With DM, Self, MissionsStringGrid do
begin
RecCnt:=Query.RecordCount;
//Êîëè÷åñòâî ñòðîê ñîãëàñíî êîëè÷åñòâó çàïèñåé çàïðîñà
MissionsCout.Caption:=IntTostr(RecCnt);
if RecCnt=0 then RowCount:=2
Else if RecCnt=1 then RowCount:=2 else RowCount:=RecCnt+1;
//Î÷èùàåì MissionsStringGrid îò ñòàðûõ çíà÷åíèé
j:=0;
while (Cells[0,j]<>'') do
begin
j:=j+1;
Rows[j].Clear;
end;
//Çàïîëíÿåì MissionsStringGrid äàííûìè èç çàïðîñà
If RecCnt<>0 then
begin
for j:=1 to RecCnt do
begin
for i:=0 to Query.Fields.Count-1 do Cells[i,j]:=Query.Fields[i].AsString;
Query.Next;
end;
end;
end;
end;Как передать Name StringGrid в процедуру, чтобы она была общей для любых StringGrid с именами, например, StringGrid1 и StringGrid2? |
|
#2
|
||||
|
||||
|
Так и передавай:
Код:
procedure TFOilGasSprt.FillStringGrid(MissionsStringGrid : TStringGrid); |
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
sorockinalex (10.09.2012)
| ||
|
#3
|
|||
|
|||
|
Пробовал, не понял как вызов организовать... Там константу надо создавать? Напишите пожалуйста вызов, если не сложно!
|
|
#4
|
||||
|
||||
|
Как-то так:
Код:
type
TFOilGasSprt = class
public
procedure FillStringGrid(MissionsStringGrid : TStringGrid);
end.
...
var
FOilGasSprt : TFOilGasSprt;
...
begin
FOilGasSprt.FillStringGrid(StringGrid1 : TStringGrid);
...
FOilGasSprt.FillStringGrid(StringGrid2 : TStringGrid);
end; |
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
sorockinalex (10.09.2012)
| ||
|
#5
|
|||
|
|||
|
СПАСИБО ОГРОМНОЕ!
|
|
#6
|
|||
|
|||
|
блин, не работает:
Код:
procedure FillStringGrid(SG : TStringGrid; LBL: TLabel);
....
procedure TFOilGasSprt.FillStringGrid(SG : TStringGrid; LBL: TLabel);
var
i,j:integer;
RecCnt:Cardinal;
begin
With DM, Self, SG do
begin
RecCnt:=Query.RecordCount;
//Количество строк согласно количеству записей запроса
LBL.Caption:=IntTostr(RecCnt);
if RecCnt=0 then RowCount:=2
Else if RecCnt=1 then RowCount:=2 else RowCount:=RecCnt+1;
//Очищаем MissionsStringGrid от старых значений
j:=0;
while (Cells[0,j]<>'') do
begin
j:=j+1;
Rows[j].Clear;
end;
//Заполняем MissionsStringGrid данными из запроса
If RecCnt<>0 then
begin
for j:=1 to RecCnt do
begin
for i:=0 to Query.Fields.Count-1 do Cells[i,j]:=Query.Fields[i].AsString;
Query.Next;
end;
end;
end;
end;
.....
procedure TFOilGasSprt.MissionsRefresh();
begin
MissionsFilter();
// FillMissionsStringGrid();
FillStringGrid(MissionsStringGrid, MissionsCount);
end;
Undeclared Identifier MissionsCount в процедуре MissionsRefresh(); |
|
#7
|
||||
|
||||
|
Откуда TFOilGasSprt.MissionsRefresh знает о TStringGrid?
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
sorockinalex (10.09.2012)
| ||
|
#8
|
|||
|
|||
|
Всё работает! Опечатался ))
|
|
#9
|
|||
|
|||
|
Цитата:
Код:
type
TFOilGasSprt = class(TForm)
BranchesAndLocationsStringGrid: TStringGrid;
WorksCount: TLabel;
MissionsCout: TLabel;
MissionsStringGrid: TStringGrid;
|
|
#10
|
|||
|
|||
|
вопрос не по теме, но раз уж... в type формы остались объявления объектов, которые боле не существуют на форме, почему они автоматом не удаляются средой программирования??? как определить которые уже не нужны?
|
|
#11
|
||||
|
||||
|
Автоматом удаляются визуальные компонеты "брошенные" на форму (присутствуют в DFM). За остальные отвечаешь сам.
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
sorockinalex (10.09.2012)
| ||
|
#12
|
|||
|
|||
|
а они и были визуальными:
Код:
DBEdit2: TDBEdit;
DBEdit3: TDBEdit; |
|
#13
|
||||
|
||||
|
Должны удаляться.
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
sorockinalex (10.09.2012)
| ||
|
#14
|
|||
|
|||
|
прошу прощения за беспокойство, они были под GroupBox
|