Последняя версия DataExpress 2021.09.12

Изображение Скачать | Изображение Что нового?

Обсуждение релиза 2020.01.18

Аватара пользователя
Develop-Soft
Сообщения: 2009
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 130 раз
Поблагодарили: 665 раз
Контактная информация:

Обсуждение релиза 2020.01.18

Сообщение Develop-Soft » 19 янв 2021, 12:27

Изображение

Аватара пользователя
admin
Разработчик
Сообщения: 5890
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 72 раза
Поблагодарили: 577 раз

Обсуждение релиза 2020.01.18

Сообщение admin » 19 янв 2021, 12:48

Это к чему?

Аватара пользователя
Develop-Soft
Сообщения: 2009
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 130 раз
Поблагодарили: 665 раз
Контактная информация:

Обсуждение релиза 2020.01.18

Сообщение Develop-Soft » 19 янв 2021, 12:52

Удалено из API: [...список "ненужных" классов, методов и свойств...]

Аватара пользователя
admin
Разработчик
Сообщения: 5890
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 72 раза
Поблагодарили: 577 раз

Обсуждение релиза 2020.01.18

Сообщение admin » 19 янв 2021, 12:56

Что-то нужное удалил?

Аватара пользователя
Develop-Soft
Сообщения: 2009
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 130 раз
Поблагодарили: 665 раз
Контактная информация:

Обсуждение релиза 2020.01.18

Сообщение Develop-Soft » 19 янв 2021, 13:14

Application.Terminate - единственный способ закрыть программу чтобы не получить "флаг в руки".
Application.Terminated - единственный способ выйти по этому состоянию из управляемого цикла при закрытии программы.
TPicture - единственный способ получить DIB-структуру из буфера обмена в TBitmap.
остальные не проверял. TClipboard.Open/Close полагаю нужны были для обеспечения монопольного доступа к БО...

Аватара пользователя
admin
Разработчик
Сообщения: 5890
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 72 раза
Поблагодарили: 577 раз

Обсуждение релиза 2020.01.18

Сообщение admin » 19 янв 2021, 13:21

Application.Terminate завершает программу в обход событий OnClose, OnCloseQuery, т. е. без корректного отключения от базы.
Соответственно и свойство Terminated не нужно.
Про TPicture не знал, что-нибудь придумаю вместо этого класса.
Нет никаких методов БО, которые должны вставляться между Open и Close. В AsText эти методы вызываются автоматически.
Некоторые типы вообще были ни с чем не связаны, попали в АПИ случайно, когда я стопкой их добавлял. Всплыли, когда я делал справочник по АПИ.

Аватара пользователя
Develop-Soft
Сообщения: 2009
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 130 раз
Поблагодарили: 665 раз
Контактная информация:

Обсуждение релиза 2020.01.18

Сообщение Develop-Soft » 19 янв 2021, 13:59

admin писал(а):Application.Terminate завершает программу .. без корректного отключения от базы.
Именно это и требуется, когда нужно гарантировано закрыть программу (например - конкретноу пользователю запрет входа по условию).
admin писал(а):Соответственно и свойство Terminated не нужно.
Ну я и говорю - это был единственный способ. Иначе "потушить" while или repeat цикл нечем.
admin писал(а):Нет никаких методов БО, которые должны вставляться между Open и Close

Код: Выделить всё

procedure TForm1.FormCreate(Sender: TObject);

begin
   ClipBoard:=TClipboard.Create;
   ClipBoard.Open;
   ClipBoard.AsText := '123';
end;

// Копируем текст "Хрен" в блокноте

procedure TForm1.FormDestroy(Sender: TObject);
begin
  ShowMessage(ClipBoard.AsText);  // = 123
   ClipBoard.Close;
   ClipBoard.Free;
end;

Код: Выделить всё

procedure TForm1.FormCreate(Sender: TObject);

begin
   ClipBoard.AsText := '123';
end;

// Копируем текст "Хрен" в блокноте

procedure TForm1.FormDestroy(Sender: TObject);
begin
  ShowMessage(ClipBoard.AsText);  // = Хрен
end;

Аватара пользователя
admin
Разработчик
Сообщения: 5890
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 72 раза
Поблагодарили: 577 раз

Обсуждение релиза 2020.01.18

Сообщение admin » 19 янв 2021, 18:56

Просто сохраняйте текст в переменную, а в Destroy присваивайте AsText. Можно вполне обойтись без Open, Close.
Develop-Soft писал(а):Именно это и требуется, когда нужно гарантировано закрыть программу (например - конкретноу пользователю запрет входа по условию).

Надо придумать правильный способ.

Аватара пользователя
Develop-Soft
Сообщения: 2009
Зарегистрирован: 05 мар 2019, 18:09
Благодарил (а): 130 раз
Поблагодарили: 665 раз
Контактная информация:

Обсуждение релиза 2020.01.18

Сообщение Develop-Soft » 19 янв 2021, 19:05

admin писал(а):Просто сохраняйте текст в переменную, а в Destroy присваивайте AsText. Можно вполне обойтись без Open, Close.
Собственно TClipboard не панацея.
admin писал(а):
Develop-Soft писал(а):Именно это и требуется, когда нужно гарантировано закрыть программу (например - конкретноу пользователю запрет входа по условию).

Надо придумать правильный способ.
Для целей принудительного закрытия программы это он и был.

Аватара пользователя
admin
Разработчик
Сообщения: 5890
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 72 раза
Поблагодарили: 577 раз

Обсуждение релиза 2020.01.18

Сообщение admin » 19 янв 2021, 20:34

Develop-Soft писал(а):Для целей принудительного закрытия программы это он и был.

При этом запись о пользователе оставалась в базе.


Вернуться в «Обсуждение релизов DataExpress»