Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 1
Всего онлайн: 1
Зарегистрировано юзеров: 6822
Комментариев на сайте: 651
Новый юзер: MaritaTyday



Последние комментарии
c
Rodneyhef прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
Zauważże, czym cechują się kredyty na sześcdziesięciu dni. Jako co zwrócić uwagę podczas asortymentu oferty? Które firmy użyczają chwilówek za taki czas? Sprawdź! [url=https://chwilowki-pozyczka.pl/]chwilówki[/url] [url=https://chwilowki-pozyczka.pl/chwilowki-online]chwilówki online[/url] [url=https://chwilowki-pozyczka.pl/pozyczki-na-raty]pożyczki ratalne[/url] [url=https://chwilowki-pozyczka.pl/kredyty-gotowkowe]kredyty gotówkowe[/url] Zdecydowana większość pożyczek krótkoterminowych udzielana jest od okres nie zaakceptować dłuższy niźli dwa miesiące. Krótki słowo spłaty wydaje się być charakterystyczny na rzecz tego rodzaju wytworów finansowych. Firmy pożyczkowe wprowadziły także zastrzeżenia, skutkujące tym, że nie każdy klient będzie mógł momentalnie zaciągnąć wzięcie pożyczki na 60 dni. W poniższym artykule podpowiadamy, na jak zwrócić uwagę, postanawiając się pod ten typ dofinansowania, na czym polegają opisane ograniczenia, oraz pokazujemy, które obecne na rynku firmy użyczają pożyczek dzięki 60 dni. chwilowki-pozyczka.pl Termin kredyty jest jednym z kluczowych składników mających bezpośredni wpływ jako całkowite koszty zobowiązania. Alternatywa krótszego czy dłuższego sezonu ma przełożenie na wysokość RRSO, innymi słowy rzeczywistej rocznej stopy oprocentowanie informującej nas w stosunku procentowym o kosztach związanych z pożyczką. Jest to pierwszy element, na który trzeba zwrócić szczególną uwagę w chwili wyboru możliwości. Drugim elementem jest uważna ocena spersonalizowanych możliwości kredytowych, co koniecznie musi towarzyszyć zaciąganiu jakiegokolwiek zobowiązania. Być może będziemy potrzebować produktu finansowego, którego spłata wydaje się znacznie dłuższa. Wówczas winniśmy zdecydować się jako pożyczki od raty. Warto również stwierdzić o aplikowanych przez spółki pożyczkowe ograniczeniach, wynikających spośród realizacji strategii ryzyka. Ochraniając się zanim niewypłacalnością pożyczkobiorców, instytucje finansowe przedłożyły szereg wielu ograniczeń, oddanych w szczególności dla osób nowych odbiorców. Ci pożyczkobiorcy, którzy zaciągają chwilówkę na raz 1 w podanej firmie, niejednokrotnie nie mogą liczyć na termin dłuższy niźli 30 dni. Poza tym wiążą ograniczenia szczególne dla kredytów krótkoterminowych. Przemówienie między innymi na temat weryfikacji petentów w charakteryzujących się ogromną popularnością rejestrach dłużników, ukończenie 21. roku egzystencji czy identyfikacja maksymalnej poziomie pożyczki. Pożądane byłoby podkreślić, hdy znaczna część przedsiębiorstw nie udziela pożyczek o dłuższym okresie w ogóle, co ponadto nie jest rezultatem wprowadzenia ograniczeń, a wynika po prostu wraz z oferty.
dealrattKi прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Это действительно радует меня. --- Бесподобное сообщение скачать fifa, скачать фифа а также [url=http://15fifa.ru/novosti-fifa-15]fifa 15 последние новости[/url] скачать фифа

Автоматическое сохранение и восстановление свойств формы

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

Создание пустого компонента и пакета
Для начала сделаем "пустышку" для нашего компонента. Для этого вызываем File -> New -> Other:, в диалоге которого выбираем пиктограмму "Component". В появившемся окне заполняем свойства так, как показано на первом рисунке (пути указывайте удобные вам) и нажимаем кнопку "OK".

Теперь, сохраняйте файл компонента и закрывайте его.

Во-вторых, нам потребуется создать пустой пакет, где мы отныне будем размещать компоненты из "Маленьких хитростей". Делается это с помощью пункта меню, в диалоге которого теперь надо выбрать пиктограмму "Package". В окне редактора пакетов (ниже на рисунке) нажмите кнопку "Add" и добавьте недавно созданный файл компонента.

Для проверки нажмите кнопку "Compile", сохраните пакет и возвращайтесь к редактированию компонента, заново открыв его.

Немного проектирования
Следующим номером нашей обширнейшей программы будет вот что: мы определимся с тем, что, как и когда надо сохранять и восстанавливать.

Зная логику работы Delphi-программ, можно уверенно сказать, что сохранять значения следует в обработчике OnDestroy, а восстанавливать в обработчике OnCreate. При этом следует помнить, что во время редактирования формы в IDE ни сохранять, ни восстанавливать ничего не надо.

Оперировать мы будем следующими параметрами: физический размер формы, позиция формы и ее состояние. В этом нам помогут свойства компонента TForm, носящие имена Left, Top, Width, Height и WindowState.

Все параметры мы будем сохранять в ветке HKEY_CURRENT_USER системного реестра. Следовательно, потребуется настроечное свойство, отвечающее за имя ветви, куда сохраняются данные.

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

procedure TgrFormPropSaver.SaveSettings;
var reg: TRegistry;
    frm: TForm;
begin
  if (RegPath = '') then exit;
  try
    reg := TRegistry.Create;
    with reg do
    begin
      RootKey := HKEY_CURRENT_USER;
      OpenKey(RegPath,true);
      frm := TForm(Owner);
      if (frm.WindowState = wsNormal) then
      begin
        WriteInteger('Left',frm.Left);
        WriteInteger('Width',frm.Width);
        WriteInteger('Top',frm.Top);
        WriteInteger('Height',frm.Height);
      end;
      case frm.WindowState of
        wsNormal: WriteInteger('State',1);
        wsMinimized: WriteInteger('State',2);
        wsMaximized: WriteInteger('State',3);
      end;
   end;
  finally
    FreeAndNil(reg);
  end;
end;
Здесь следует пояснить, что, во время состояний формы "максимизирована" и "минимизирована" значения свойств размера и позиции формы могут быть искажены, поэтому я отключил их запись в этих состояниях.

Процедура восстановления также проста, как и сохранения, поэтому я не буду про нее рассказывать.

Вызывать эти процедуры стоит из методов OnCreate и OnDestroy формы, на которой лежит компонент.

Полный текст модуля grFormPropSaver.pas
unit grFormPropSaver;

//**! ----------------------------------------------------------
//**! This unit is a part of Gregor.RU pack project (Gregor.RU
//**! Delphi Components Package).
//**! ----------------------------------------------------------
//**! You may use or redistribute this unit for your purposes
//**! while unit's code and this copyright notice is unchanged
//**! and exists.
//**! ----------------------------------------------------------
//**! URL:  http://www.gregor.ru/
//**! Mail: gregor@gregor.ru
//**! ----------------------------------------------------------
//**! (c) Gregor.RU, 2002. All rights reserved.
//**! ----------------------------------------------------------

{***} interface {***}

uses
  Classes;

type
  TgrFormPropSaver = class(TComponent)
  private
    { Private declarations }
    FRegPath: string;
  protected
    { Protected declarations }
  public
    { Public declarations }
    procedure SaveSettings;
    procedure LoadSettings;
  published
    { Published declarations }
    property RegPath: string read FRegPath write FRegPath;
  end;

procedure Register;

{***} implementation {***}

uses Windows, Forms, SysUtils, Registry;

procedure Register;
begin
  RegisterComponents('Gregor.RU', [TgrFormPropSaver]);
end;

{ TgrFormPropSaver }
procedure TgrFormPropSaver.LoadSettings;
var reg: TRegistry;
    frm: TForm;
begin
  if (csDesigning in ComponentState) or
     (RegPath = '') then exit;
  try
    reg := TRegistry.Create;
    with reg do
    begin
      RootKey := HKEY_CURRENT_USER;
      OpenKey(RegPath,true);
      frm := TForm(Owner);
      frm.Position := poDesigned;
      case ReadInteger('State') of
        1: frm.WindowState := wsNormal;
        2: frm.WindowState := wsMinimized;
        3: frm.WindowState := wsMaximized;
      end;
      frm.Width  := ReadInteger('Width');
      frm.Height := ReadInteger('Height');
      frm.Top    := ReadInteger('Top');
      frm.Left   := ReadInteger('Left');
   end;
  finally
    FreeAndNil(reg);
  end;
end;

procedure TgrFormPropSaver.SaveSettings;
var reg: TRegistry;
    frm: TForm;
begin
  if (csDesigning in ComponentState) or
     (RegPath = '') then exit;
  try
    reg := TRegistry.Create;
    with reg do
    begin
      RootKey := HKEY_CURRENT_USER;
      OpenKey(RegPath,true);
      frm := TForm(Owner);
      if (frm.WindowState = wsNormal) then
      begin
        WriteInteger('Left',frm.Left);
        WriteInteger('Width',frm.Width);
        WriteInteger('Top',frm.Top);
        WriteInteger('Height',frm.Height);
      end;
      case frm.WindowState of
        wsNormal: WriteInteger('State',1);
        wsMinimized: WriteInteger('State',2);
        wsMaximized: WriteInteger('State',3);
      end;
   end;
  finally
    FreeAndNil(reg);
  end;
end;

end.

Также замечу, что я не ставил перед собой задачи сделать абсолютно устойчивый и правильный модуль, а хотел показать способ, полнейшая реализация которого его в рамки "маленьких хитростей" не вписывается.

Вот и всё, Удачи!

Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 26 Апреля 2015
Просмотров:


Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.