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

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

данные поля на форме [D6, XP]


Страницы:   1 2

zergost ©   (2010-06-29 09:04:00) 

Всем доброго времени суток!!!  Есть ADOQuery с имеющимися в нём полями, так вот суть вопроса. Как перетащить (создать) данные поля на форме в момент активации запроса (или формы)

Сори за тупой вопрос ни как не могу догнать как это сделать…..


Anatoly Podgoretsky   (2010-06-30 13:43:00) [1]

> Sergey13  (30.06.2010 09:48:32)  [32]

Он не Маркс он христопродавец.


Sergey13   (2010-06-30 09:48:00) [2]

> [31] MsGuns ©   (29.06.10 19:57)

Учение Маркса всесильно, потому что оно верно. (с) В.И.Ленин
8-)


MsGuns   (2010-06-29 19:57:00) [3]

>Sergey13 ©   (29.06.10 13:41) [29]
>После этого они умолять тебя будут использовать грид.

Опять ты за свое, еретИк :)


zergost   (2010-06-29 13:46:00) [4]


> Sergey13 ©

Спасибо!!! так и сделаю!!!!

С вашей помощью первая часть проги закончена теперь буду думать как её обрабатывать))))))

Спасибо всем большое!!!


Sergey13   (2010-06-29 13:41:00) [5]

> [20] zergost   (29.06.10 11:59)

Всего и делов то, что подойти к бухам и доходчивообъяснить, что системный подход к централизованной обработке информации не применим к раздробленным объектам на форме, т.к. противоречит восемнадцатому закону Паскаля-Кодда. Поэтому все модные давно пользуются специальными штучками (из-за границы между прочим) для концентрирования данных и экономии экранных пикселей от выгорания.

После этого они умолять тебя будут использовать грид.
8-)


Anatoly Podgoretsky   (2010-06-29 13:04:00) [6]

> zergost  (29.06.2010 12:31:24)  [24]

Ну конечно, я просто опустил, что тут еще и учиться приходится.


И. Павел   (2010-06-29 12:46:00) [7]

> A component named num already exist

Компонент с именем "num" уже есть, а вы пытаетесь создать второй, с тем же именем:

> E.Name := ADOQuery1.Fields[i].FieldName;


Плохиш   (2010-06-29 12:44:00) [8]


> zergost   (29.06.10 11:59) [20]
> Блин ребят да что вы до меня пристали

Вообще-то ты сам пришёл

> я не программист

Наими программиста

> zergost   (29.06.10 12:34) [25]
>
> кстати не подскажите что за ошибка
>
> A component named num already exist

На англо-русский словарь тоже денег нет?

Перевожу для нищих и немощных - нельзя создать больше одного компонента с одним именем.

PS. Перед созданием нужно удалить все ненужные и до этого созданные.


zergost   (2010-06-29 12:34:00) [9]

кстати не подскажите что за ошибка

A component named num already exist

  if ADOQuery1.Eof  then
 begin
   for i:= 0 to ADOQuery1.FieldCount - 1 do
   begin
   E:= tEdit.Create(TabSheet1);
     E.Parent := TabSheet1;
     E.Top := 25 * i;
     E.Name := ADOQuery1.Fields[i].FieldName;
      \\ выскакивает вот здесь
      E.Text := ADOQuery1.Fields[i].AsString;
     E.Show;
end;end;


zergost   (2010-06-29 12:31:00) [10]

почти ;-)


Anatoly Podgoretsky   (2010-06-29 12:25:00) [11]

> zergost  (29.06.2010 12:13:22)  [22]

Нанять не могу))))  - денег нет
Бросить тоже))) - денег нет


zergost   (2010-06-29 12:13:00) [12]

Учусь))))) Нанять не могу)))) Бросить тоже)))


Jeer   (2010-06-29 12:10:00) [13]


> Блин ребят да что вы до меня пристали я не программист.


Зачем тогда вопросы здесь задаешь ?

Вердикт: научиться, нанять, бросить.


zergost   (2010-06-29 11:59:00) [14]

Если можно поподробней, с примерами желательно.


> 1. Перенос датасет - > контролы
>  Пишется библиотечная процедура, которая получает два параметра:
>  TWinControl контейнера с эдитами, чекбоксами и т.д. Она
> перебирает контролы контейнера и каждому из них ищет соответствие
> по имени (контрол должен обзываться тем же именем, что и
> поле датасета или содержать это имя в своем имени после
> префикса например). Дальще определяет класс контролы и помещает
> преобразованное (если нужно) значение поля в контрол.
> 2. Чтобы не "мучиться" с дизайном формы создается еще одна
> процедура, которая перебирает поля датасета и создает динамически
> соотв. контролы на пустой форме, красиво их располагает
> и выравнивает. Имена создаваемым котнролам дает в соответствии
> с именами полей, надписи - по титулам колонок сетки или
> св-ву DysplayName полей датасета. Чтобы можно было пользоваться
> процедурой 1)


Блин ребят да что вы до меня пристали я не программист.... да могу писать мелкие программки и всё. на что то крупное не хватает ни времени ни сил ни знаний, вы себя вспомните когда только начинали программки писать каково вам было???? ну а если честно 26 таб мне не влом нарисовать просто после этих 26 появятся ещё 10 и ещё и что предлогаете мне каждую таб рисовать мне кажется это глупо, по крайней мере времени на доработку будет занимать много.  Что касается программера нормального пригласить мне сказали х... тебе денег нет.

Ни кого не хотел обидеть!

я понял)))
!
>
> Он тебя не поймет.


MsGuns   (2010-06-29 11:28:00) [15]

Есть решение, правда требующее начальное приложение рук и мозга, которое просто и легко решает проблему на ЛЮБЫХ датасетах.

1. Перенос датасет - > контролы
 Пишется библиотечная процедура, которая получает два параметра: TWinControl контейнера с эдитами, чекбоксами и т.д. Она перебирает контролы контейнера и каждому из них ищет соответствие по имени (контрол должен обзываться тем же именем, что и поле датасета или содержать это имя в своем имени после префикса например). Дальще определяет класс контролы и помещает преобразованное (если нужно) значение поля в контрол.
2. Чтобы не "мучиться" с дизайном формы создается еще одна процедура, которая перебирает поля датасета и создает динамически соотв. контролы на пустой форме, красиво их располагает и выравнивает. Имена создаваемым котнролам дает в соответствии с именами полей, надписи - по титулам колонок сетки или св-ву DysplayName полей датасета. Чтобы можно было пользоваться процедурой 1)

При разработке новых форм просто вызывается процедура 2), а затем контролы заполняются вызовом процедуры 1)

Всего две строчки кода ,)


Плохиш   (2010-06-29 11:18:00) [16]


> zergost   (29.06.10 11:00) [15]

Секретурку найми.


Anatoly Podgoretsky   (2010-06-29 11:08:00) [17]

> 12  (29.06.2010 10:37:14)  [14]

А он потянет? А еще он ленивый формы рисовать не хочет. Предлажи лучше
пригласить программиста.


Anatoly Podgoretsky   (2010-06-29 11:06:00) [18]

> Jeer  (29.06.2010 09:27:03)  [3]

Он тебя не поймет.


zergost   (2010-06-29 11:00:00) [19]


>
> ИМХО, лучше руками. Если нужно - создать несколько представлений
> той же таблицы - стандартное, расширенное и т.д. А иначе
> выйдет все вперемешку, некрасиво, да и особой разницы от
> таблицы нет - врят ли это понравится пользователям.

Таблиц слишком много, рисовать 26 форм ручками как то очень не охота)))


12   (2010-06-29 10:37:00) [20]

а что в этом плохого?

я так иногда делаю, чтоб DBaware не использовать
простые контрлы, заполняются, потом по кнопке обрабатываются , и одним запросом обновляется

 UpdateR.SQL.Text := 'exec rnrUpdateRequest '+
                           ':IdR, :IdD, :IdElNet, :IdObj, :NumAbonM, :NumAbonI, :NumMAbonTLF, :NumIAbonTLF ';

 if EditRequest.FieldByName('NumAbonM').AsString <> NumAbonM.text
// если менялось, передадим, иначе пусто, а в хранимке поймем, что не надо менять если передали пусто
  then QSetParam(UpdateR, 'IdD', NumAbonM.text)
  else QSetParam(UpdateR, 'IdD', sEmpty);


Страницы:   1 2

Наверх

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