Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Классы / 10 сообщений из 10, страница 1 из 1
04.04.2003, 14:55
    #32133678
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
Привет. Такой вопрос.
Перебираю компоненты на форме.
var but:TButton;
ed:TEdit;
i:DWord;
...
for i:=0 to form.componentcount-1 do
begin
if form.components is TEdit then
begin
ed:=form.components as TEdit;
....
end;
if form.components is TButton then
begin
ed:=form.components as TButton;
....
end;
end;
...
Вопрос! Существует ли тип данных(или объект), которому можно было бы передавать компонент со всеми его свойствами, чтобы не заволить кучу переменных под каждый класс.

var Temp:<Класс>
i:DWord;
...
for i:=0 to form.componentcount-1 do
begin
if form.components is TEdit then
begin
Temp:=form.components as TEdit;
....
end;
if form.components is TButton then
begin
Temp:=form.components as TButton;
....
end;
end;
...
...
Рейтинг: 0 / 0
04.04.2003, 15:08
    #32133692
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
TObject - это предок всего и вся. Если перебираешь компоненты, можешь использовать TComponent. А зачем переменной присваивать. Че делать дальше будешь?
...
Рейтинг: 0 / 0
04.04.2003, 15:18
    #32133709
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
Такая фича не проидет, пробовал.
Если я хоче обратиться в edit'e к св-ву Text, то ничего не компилится, его нет ни у TObject, ни у TComponent. А деляется это для того, чтобы проверить все ли поля юзер заполнить, компонент на форме много, а тупо задавать что надо проверить не хоца(да и гибкости охота, чтобы еще где-нить использовать).
...
Рейтинг: 0 / 0
04.04.2003, 15:23
    #32133716
xp writer wannabe
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
[src]
var
c: TComponent;
begin

for i := 0 to ComponentCount - 1 do
begin
c := Components ;
if c is TCustomEdit then
with TCustomEdit(c) do
begin
.....
end
else if c is TButton then
with TButton(c) do
begin
.....
end
.....
end;
end;
...
Рейтинг: 0 / 0
04.04.2003, 15:26
    #32133724
pkarklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
А деляется это для того, чтобы проверить все ли поля юзер заполнить, компонент на форме много, а тупо задавать что надо проверить не хоца(да и гибкости охота, чтобы еще где-нить использовать).

Если с базой работаешь, то используй DBAware контролы и проверяй на BeforePost. Если работаешь с разными компонетами (TEdit, TListBox) то без явного приведения к одному из используемых типов не получиться.
...
Рейтинг: 0 / 0
04.04.2003, 15:30
    #32133735
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
Реально!
Спасибо. И последнее, как фокус ввода на такую штуку поставить, вылетает Access violation. Это приложение клиента, и транзакция пойдет только после заполнения всех полей
...
Рейтинг: 0 / 0
04.04.2003, 16:57
    #32133860
tygra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
транзакция пойдет только после заполнения всех полей

Еще один с транзакциями на клиенте
...
Рейтинг: 0 / 0
04.04.2003, 18:52
    #32133971
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
> tygra
согласен
...
Рейтинг: 0 / 0
05.04.2003, 10:08
    #32134074
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
Ну-ну :)
Транзакция не на клиенте(делать больше не ... чтоли). Используется Corba технология, так что если точнее пойдет команда серверу. Ну так как с SetFosus????
...
Рейтинг: 0 / 0
05.04.2003, 11:07
    #32134079
bjohny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы
Все разобрался спасиб
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Классы / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]