Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что имеется подобного для Delphi ? Компонент или библиотека автодиалога. 
:(
    Опции темы
Bearly
Дата 3.12.2009, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.8.2008

Репутация: нет
Всего: нет



Работаем с FireBird через соответствующие InterBase'овские стандартные компоненты.
Таблиц в проекте много, часть бизнес-логики перенесено в хранимые процедуры и триггеры.
Что бы сохранить своё время и ускорить сдачу проекта - вопрос... 
Кто знает существует ли что-нить подобное:
- Формируем текст (можно в файле), каждая строка описывает какой компонент должен отображать данные поля БД, его вместимость в символах (MaxLenght), добавляем строки с SQL-запросами;
- Передаём (загружаем) сформированный файл в некую функцию, указываем режим отображения - Insert или Update;
- Происходит формирование и вывод модального диалогового окна с указанными контролами - пустых (вариант Insert) или заполненными данными (вариант Update) из соответствующего табла базы;
- Редактируем данные в этом диалоге, которые нас интересуют;
- Жмём кнопку "Ок", данные пишутся в базу, диалог закрывается...

Для каждого табла ваять собственную форму диалога - напружно и работа просто тупая. Если что подобное существует, подскажите где взять, либо придётся сваять самостоятельно...
PM MAIL   Вверх
Frees
Дата 3.12.2009, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54





--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Bearly
Дата 3.12.2009, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.8.2008

Репутация: нет
Всего: нет



Хм ! TMSSoftware - слишком "тяжеленная" штука, но интересная... Спасибо, учту !
Но имеется что либо ещё подобное, попроще, но русским языком на борту ?
PM MAIL   Вверх
Bearly
Дата 15.12.2009, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 27.8.2008

Репутация: нет
Всего: нет





Это не "то"... Не прокатывает. Если я к каждой гридятине буду панельки "прикручивать" ручками, тогда это тот же труд, только с другого конца... 
Народ, помозгуйте ищё, мож кто что ещё знает. Я как раз "упёрся" в диалоги...
PM MAIL   Вверх
Демо
Дата 15.12.2009, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 2
Всего: 50



На самом деле не такая и сложная задача, чтобы компоненты искать.
Если есть желание, то можешь оттолкнуться от этой функции и реализовать самостоятельно.

Код

type
  TParamStr=array of AnsiString;

//Созадёт диалоговую форму
//Edit1..EditN создаются в зависимости от количества
//параметров в Params
//TParams: array of AnsiString
function CreateForm(const Msg: AnsiString; Params: TParamStr;
  FieldWidth: Integer=100): TForm;
const
  H=23;
var
  i: Integer;
  ed: TEdit;
  Lb: Tlabel;
  W: Integer;
  bn,bn1: TButton;
begin
  Result := TForm.Create(nil);
  Result.BorderStyle := bsDialog;
  Result.BorderIcons := [];
  Result.Caption := WideString(Msg);
  Result.Position := poScreenCenter;
  W := 0;
  for i  := 0 to High(Params) do
  begin
    lb := TLabel.Create(Result);
    lb.Parent := Result;
    lb.Visible := True;
    lb.Caption := WideString(Params[i]);
    if W<lb.Width then W := lb.Width;
    lb.Left := 10;
    lb.Top := 10+(i*(H+4));
  end;
  Result.Width := 16 + W + 4 + FieldWidth+16;
  for i  := 0 to High(Params) do
  begin
    ed := TEdit.Create(Result);
    ed.Name := 'Edit'+IntToStr(i+1);
    ed.Parent := Result;
    ed.Visible := True;
    ed.Text := '';
    ed.Width := FieldWidth;
    ed.Left := 10+W+4;
    ed.Top := 10+(i*(H+4));
  end;
  bn := TButton.Create(Result);
  bn.Parent := Result;
  bn.Caption := 'Применить';
  bn.ModalResult := mrOk;
  bn.Visible := True;
  bn.Width := 75;

  bn1 := TButton.Create(Result);
  bn1.Parent := Result;
  bn1.Caption := 'Отмена';
  bn1.ModalResult := mrCancel;
  bn1.Visible := True;
  bn1.Width := 60;

  if Result.Width<bn.Width+bn1.Width+62
    then Result.Width := bn.Width+bn1.Width+62;

  bn.Top := 10+(H+4)*Length(Params);
  bn1.Top := bn.Top;

  bn1.Left := Result.Width-16-bn1.Width-16;
  bn.Left := Result.Width-16-bn1.Width-10-bn.Width-16;

  Result.Height := 10+(H+4)*Length(Params)+bn.Height+50;
end;




--------------------
    
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0436 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.