Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как программно создать


Страницы:   1 2

NVO ©   (2003-06-17 08:48:00) 

Здравствуйте! Позвольте спросить кто знает как программно создать поле поиска


Anatoly Podgoretsky   (2003-06-18 11:04:00) [1]

Вообще то это делатеся просто и без форума, в дизайн тайм создается поле, затем из dfm скопировать почти готовый текс и применить это в рантайм. Одной головы достаточно.


Соловьев   (2003-06-18 10:56:00) [2]

вобще-то форум надо читать...этот вопрос возникает каждые 2 дня...
http://www.delphimaster.ru/cgi-bin/forum.pl?look=1&id=1054907372&n=1


Zacho   (2003-06-18 10:46:00) [3]


> NVO (18.06.03 10:32)

Ну, насколько я это помню, надо примерно так:
var
fld: TStringField; //Или другой наследник от TField нужного типа
begin
fld:=TStringField.Create(MyDataSet);
fld.FieldName:="MyFieldName";
fld.Index:=MyDataSet.FieldCount;
fld.DataSet:=MyDataSet;
fld.FieldKind:=fkLookup;
... и т.д. ...
MyDataSet.FieldDefs.UpDate;
end;

Хотя давно уже подобное не делал, могу и ошибиться.


NVO   (2003-06-18 10:32:00) [4]

AlexGreG © (18.06.03 10:10)
===========================================================

"tPart: Field "NAME2" cannot be a calculated or lookup field".
============================================================

Ничерта непойму, все так делаю, так как ты. Я еще раньше пробовал и такая дрянь выводилась :(((


AlexGreG   (2003-06-18 10:10:00) [5]

Ну хорошо, пусть будет TFields...

... здесь конечно ты загнул, потому что
tPart=tPart.Fields.DataSet, но ладно.
tPart.Fields.DataSet.FieldDefs.AddFieldDef

Далее, попробуй tPart.Fields[tPart.Fields.count-1].FieldKind:=fkLookup;сразу после создания поля.

Хотя я бы делал по-другому:


var fld: TField;
...
fld:=TField.Create(...);
fld.FieldKind:=fkLookup;
--др. установки--
tPart.fields.add(fld);
...
tPartGrid.Columns[NewColumnIndex].FieldName:=fld.Name;
...


Вот так. Дерзайте, сэр.

P.S.: Советую, зарегистрироваться, т.к. многие не будут отвечать не зарегистрированным ...


Anatoly Podgoretsky   (2003-06-18 10:06:00) [6]

AddFieldDef is only valid in the context of creating field definitions for a table to be created with a subsequent call to the CreateTable or CreateDataSet method. It cannot be used to add fields to an already-existing table.


NVO   (2003-06-18 09:40:00) [7]

AlexGreG © (18.06.03 06:56)

Наверное ты путаешь TFields c TFieldDef. У TFieldDef Нет ни св-ва LookupList и DataType там только для назначения типа поля(ftString, ftBlob...). Я пробовал и через Tfields добавить. Он пишет что такое поле не найдено.

with tPart.Fields.DataSet.FieldDefs.AddFieldDef do begin
Name:="MyType";
DataType:=ftString;
Width:=30;
Required:=True;
Visible:=True;
end;

//tPart.Fields[9].FieldKind:=fkLookup;


Anatoly Podgoretsky   (2003-06-18 09:15:00) [8]

NVO (18.06.03 08:56)
Это твои проблемы


AlexGreG   (2003-06-18 09:06:00) [9]

NVO, я тоже на рус дельфи!


NVO   (2003-06-18 08:56:00) [10]

Danilka © (18.06.03 07:27)

Ага я еще программный код пишу по-русски вот так:

<...>
Для i:=0 по 4 сделать начать
УстановитьДлину(MyArr, 10);
M:=Программа.ИмяПрограммы;
Закончить;


Видали система ;)


NVO   (2003-06-18 08:49:00) [11]

Соловьев © (17.06.03 10:02)


Lookup Lookup ДА ДА !!!

А в дельфе нехватает модуля CorbaObj.pas, и еще там менеджер проектов малость глючит, но вообще меня устраивает, нормально


Zacho   (2003-06-18 07:46:00) [12]


> NVO (18.06.03 03:58)

Хочешь хороший совет ? Поставь нормальную английскую Дельфи. А то такую терминологию, как в твоей "переведенной" никто из нормальных программистов просто не понимает. И если продолжишь с ней работать - будут у тебя проблемы и в общении с другими программерами, и с пониманием того что написано в литературе, ибо везде используются стандартныетермины, а не придумки каких-то "гениев"-переводчиков.


Alexandr   (2003-06-18 07:41:00) [13]

короче, шел бы ты со своей русской дельфи
куда-нибудь подальше от дикарей....
А то прибьют еще...


Danilka   (2003-06-18 07:27:00) [14]

AlexGreG © (18.06.03 06:56)
а вдруг у него все это хозяйство тоже переведено, да еще так-же "качественно" как и lookup...
не DataSet а какая-нить УстановкаДаты, не FieldDefs а ПолеДевса и т.д. :))


AlexGreG   (2003-06-18 06:56:00) [15]

У компонента DataSet есть коллекция определний полей FieldDefs, через которую можно надобавлять любых полей. Параметры задавай программно: тип поля Lookup, LookupList = откуда список брать, т.д. Потом в гриде, например, есть коллекция Columns, через которую создаёшь колонку. К ней привязывай своё LookUp-поле.

Удачи


NVO   (2003-06-18 03:58:00) [16]

Dred2k © (17.06.03 10:15)

Че вы внатуре как дикари никогда переведенную Дельфу не видали. Lookup по-вашему так сказать


Zacho   (2003-06-17 10:20:00) [17]


> Dred2k © (17.06.03 10:15)

А че, видел я такой диск с Д6. Правда, даже смотреть не стал, и так могу представить, как наши пираты могут перевести. Особенно то, что переводить вообще не нужно и даже вредно.


Dred2k   (2003-06-17 10:15:00) [18]


> один из них называется "Поиск".

Переведенная дельфя?
Офигеть...


Соловьев   (2003-06-17 10:02:00) [19]


> там будет группа переключателей, один из них называется
> "Поиск".

нет там такого... может Lookup?


NVO   (2003-06-17 10:01:00) [20]

Соловьев © (17.06.03 09:24)
обьясни что ты понимаешь под "Поле поиска"?


Когда ты входиш например в TQuery в редактор полей. Там в нем жмешь создать поле. после этого откроется окно и там будет группа переключателей, один из них называется "Поиск". Вот тоже и я хочу создать только программно


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо