Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2010, 21:46   #11
golopjatov
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
просто замечание.
у DataSet можно проверить на пустоту через IsEmpty (и не надо городить огород через свою функцию NotEmptySet....):
Код:
if Not inSet.IsEmpty then
begin
...
А разница-то в чём?
golopjatov вне форума Ответить с цитированием
Старый 13.07.2010, 22:59   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
А разница-то в чём?
Проще. Красивее. Эффективнее.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.07.2010, 23:02   #13
golopjatov
Пользователь
 
Регистрация: 09.07.2010
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Проще. Красивее. Эффективнее.
Возможно проще и красивее где-то и даже в чем-то эффективнее. Но не массштабируемей чуть язык не сломал пока выговорил. Я думаю смысл понятен..
golopjatov вне форума Ответить с цитированием
Старый 14.07.2010, 05:08   #14
Korben5E
Форумчанин
 
Аватар для Korben5E
 
Регистрация: 13.07.2010
Сообщений: 346
По умолчанию

есть такой стиль программирования - с "защитой от дурака", где смысл в показе диалоговых окон(а не редактировании таблицы напрямую)

реализуется так:

все проверки на значения полей организуются на Form2
Form2 показывается модально
обработчик проверки ставится на кнопке "Готово"/"ОК"/"Сохранить" - вот он:

Код:
procedure TForm2.Button1Click(Sender: TObject);
begin
    Edit1.Text := Trim(Edit1.Text);
    Edit2.Text := Trim(Edit2.Text);

    if (Edit1.Text)='' then // если пустой первый едит (фамилия)
    begin
        MessageDlg('Введите фамилию!',mtInformation,[mbOK], 0); // сообщаем что фамилия не указана
        Edit1.SetFocus; // ставим на него фокус
        Exit; // выходим из процедуры
    end;

    if (Edit2.Text)='' then // если пустой первый едит (имя)
    begin
        MessageDlg('Введите имя!',mtInformation,[mbOK], 0); // сообщаем что имя не указано
        Edit2.SetFocus; // ставим на него фокус
        Exit; // выходим из процедуры
    end;

    ModalResult := mrOk;
end;
в Form1 делаем одну процедуру и назначаем ее обеим клавишам так:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
    edt : boolean;
begin
// если форма не создается автоматически - создаем.
    Form2 := TForm2.Create(Application);

// заметка: если форма создается автоматически, то при повторном вызове, 
// при добавлении записи - в полях будут отображаться предыдущие значения

    edt := (Sender = Button2);
    if edt then
    begin
        Form2.Edit1.Text := ADOQuery1.FieldByName('Фамилия').Text;
        Form2.Edit2.Text := ADOQuery1.FieldByName('Имя').Text;
    end

    if Form2.ShowModal = mrOk then
    begin

        if edt then ADOQuery1.Edit
        else ADOQuery1.Insert; // или ADOQuery1.Append; - по вкусу

        ADOQuery1.FieldByName('Фамилия').Text:=Form2.Edit1.Text;
        ADOQuery1.FieldByName('Имя'). Text:=Form2.Edit2.Text;
        ADOQuery1.Insert;// .Append; //.Post;
        ADOQuery1.Post;

    end;
   //если форма создается вручную - уничтожаем
   Form2.Free;
end;
собственно все.
Non est culpa vin, sed culpa bibentis

Последний раз редактировалось Korben5E; 14.07.2010 в 05:30.
Korben5E вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
переменные form2 на form1 motaro Общие вопросы Delphi 16 28.09.2009 07:49
Form1 & Form2 Alex Cones Общие вопросы Delphi 4 31.07.2009 21:50
Управление элементами Form2 из Form1 Niodar Общие вопросы Delphi 4 25.03.2009 04:22
Delphi. Form1 и Form2. Xeon332 Общие вопросы Delphi 8 01.11.2008 15:52
form1 и form2 SLIMMUS Общие вопросы Delphi 3 29.10.2008 01:15