
Обсуждение релиза 2020.01.18
- Develop-Soft
- Сообщения: 2217
- Зарегистрирован: 05 мар 2019, 18:09
- Откуда: Белгород
- Благодарил (а): 134 раза
- Поблагодарили: 780 раз
- Контактная информация:
- Develop-Soft
- Сообщения: 2217
- Зарегистрирован: 05 мар 2019, 18:09
- Откуда: Белгород
- Благодарил (а): 134 раза
- Поблагодарили: 780 раз
- Контактная информация:
- Develop-Soft
- Сообщения: 2217
- Зарегистрирован: 05 мар 2019, 18:09
- Откуда: Белгород
- Благодарил (а): 134 раза
- Поблагодарили: 780 раз
- Контактная информация:
Обсуждение релиза 2020.01.18
Application.Terminate - единственный способ закрыть программу чтобы не получить "флаг в руки".
Application.Terminated - единственный способ выйти по этому состоянию из управляемого цикла при закрытии программы.
TPicture - единственный способ получить DIB-структуру из буфера обмена в TBitmap.
остальные не проверял. TClipboard.Open/Close полагаю нужны были для обеспечения монопольного доступа к БО...
Application.Terminated - единственный способ выйти по этому состоянию из управляемого цикла при закрытии программы.
TPicture - единственный способ получить DIB-структуру из буфера обмена в TBitmap.
остальные не проверял. TClipboard.Open/Close полагаю нужны были для обеспечения монопольного доступа к БО...
- admin
- Разработчик
- Сообщения: 8038
- Зарегистрирован: 14 мар 2016, 11:32
- Откуда: Ленинградская
- Благодарил (а): 292 раза
- Поблагодарили: 1918 раз
Обсуждение релиза 2020.01.18
Application.Terminate завершает программу в обход событий OnClose, OnCloseQuery, т. е. без корректного отключения от базы.
Соответственно и свойство Terminated не нужно.
Про TPicture не знал, что-нибудь придумаю вместо этого класса.
Нет никаких методов БО, которые должны вставляться между Open и Close. В AsText эти методы вызываются автоматически.
Некоторые типы вообще были ни с чем не связаны, попали в АПИ случайно, когда я стопкой их добавлял. Всплыли, когда я делал справочник по АПИ.
Соответственно и свойство Terminated не нужно.
Про TPicture не знал, что-нибудь придумаю вместо этого класса.
Нет никаких методов БО, которые должны вставляться между Open и Close. В AsText эти методы вызываются автоматически.
Некоторые типы вообще были ни с чем не связаны, попали в АПИ случайно, когда я стопкой их добавлял. Всплыли, когда я делал справочник по АПИ.
- Develop-Soft
- Сообщения: 2217
- Зарегистрирован: 05 мар 2019, 18:09
- Откуда: Белгород
- Благодарил (а): 134 раза
- Поблагодарили: 780 раз
- Контактная информация:
Обсуждение релиза 2020.01.18
Именно это и требуется, когда нужно гарантировано закрыть программу (например - конкретноу пользователю запрет входа по условию).admin писал(а):Application.Terminate завершает программу .. без корректного отключения от базы.
Ну я и говорю - это был единственный способ. Иначе "потушить" while или repeat цикл нечем.admin писал(а):Соответственно и свойство Terminated не нужно.
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
- Разработчик
- Сообщения: 8038
- Зарегистрирован: 14 мар 2016, 11:32
- Откуда: Ленинградская
- Благодарил (а): 292 раза
- Поблагодарили: 1918 раз
Обсуждение релиза 2020.01.18
Просто сохраняйте текст в переменную, а в Destroy присваивайте AsText. Можно вполне обойтись без Open, Close.
Надо придумать правильный способ.
Develop-Soft писал(а):Именно это и требуется, когда нужно гарантировано закрыть программу (например - конкретноу пользователю запрет входа по условию).
Надо придумать правильный способ.
- Develop-Soft
- Сообщения: 2217
- Зарегистрирован: 05 мар 2019, 18:09
- Откуда: Белгород
- Благодарил (а): 134 раза
- Поблагодарили: 780 раз
- Контактная информация:
Обсуждение релиза 2020.01.18
Собственно TClipboard не панацея.admin писал(а):Просто сохраняйте текст в переменную, а в Destroy присваивайте AsText. Можно вполне обойтись без Open, Close.
Для целей принудительного закрытия программы это он и был.admin писал(а):Develop-Soft писал(а):Именно это и требуется, когда нужно гарантировано закрыть программу (например - конкретноу пользователю запрет входа по условию).
Надо придумать правильный способ.
- admin
- Разработчик
- Сообщения: 8038
- Зарегистрирован: 14 мар 2016, 11:32
- Откуда: Ленинградская
- Благодарил (а): 292 раза
- Поблагодарили: 1918 раз
Обсуждение релиза 2020.01.18
Develop-Soft писал(а):Для целей принудительного закрытия программы это он и был.
При этом запись о пользователе оставалась в базе.