![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Значит так, в combobox выбираю количество предложим edit объекты, создаем их и при повторном выборе их количество изменяется. У меня проблема в их уменьшении, т.е. в уменьшении их количества.
По сути мне надо удалить и создать заново. ![]() |
|
#2
|
||||
|
||||
|
1) Зачем удалять все и создавать заново, когда можно удалить лишние и очистить предыдущие?
2) Чтоб удалять, нужно хранить созданные в глобальном массиве или удалять, получая объект (например через FindComponent). |
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
alex_rR (10.04.2012)
| ||
|
#3
|
|||
|
|||
|
да я делал именно так "Зачем удалять все и создавать заново, когда можно удалить лишние и очистить предыдущие", у меня не получалось удалять объекты. И массивы были локальными(если я правильно выражаюсь, т.е. внутри процедуры).
Можно чуть подробнее про find, пример так сказать. Попробовал с глобальным массивом но я видать что-то не до понимаю. Буду очень признателен если покажете как именно надо оформить(синтаксис). Последний раз редактировалось alex_rR, 10.04.2012 в 21:20. |
|
#4
|
|||
|
|||
|
Естественно, массивы должны быть как минимум на уровне формы.
Код:
type
TForm1 = class(TForm)
...
private
FEdits : Array Of TEdit;
procedure CreateMyEdits(N : Integer);
end;
procedure TForm1.CreateMyEdits(N : Integer);
var
C, I : Integer;
begin
C := Length(FEdits);
// Чистим все контролы
For I := Low(FEdits) To High(FEdits) Do FEdits[i].Text := '';
// Если у нас лишние контролы
If C > N Then
Begin
For I := N To High(FEdits) Do
Begin
FreeAndNil(FEdits[i]);
End;
SetLength(FEdits,N);
End;
// Если у нас не хватает контролов
If C < N Then
Begin
SetLength(FEdits,N);
For I := C-1 To High(FEdits) Do
Begin
FEdits[i] := TEdit.Create(Self);
...
End;
end; |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
alex_rR (10.04.2012)
| ||