1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

Эффект нажатой клавиши

Тема в разделе "Delphi - Компоненты", создана пользователем Guest_ACLeo_*, 3 ноя 2005.

Статус темы:
Закрыта.
  1. Guest_ACLeo_*

    Guest_ACLeo_* Гость

    Есть кнопка SpeedButton свойство Flat утсановлено True. Мне необходимо при нажатии этой кнопки , чтобы она оставалась нажатой до определенного момента!
    Так удобнее пользователю видеть, что он нажал (есть и такие!). Заранее спасибо!
     
  2. Barmutik

    Barmutik Гость

    Устанвливаете свойство GroupIndex в число отличное от нуля и свойство AllowAllUp в True и всё будет работать...
     
  3. Baton77

    Baton77 Гость

    А как правильно записать и считать из ini состояние кнопки ?
    Пробую так :
    Код (Text):
    destructor TForm1.Destroy;
    ...
    WriteBool('Editor', 'WordWpap', SpeedButton1.Down);
    PrgINI.Free;
    inherited Destroy;
    end;

    procedure TForm1.CreateParams(var Params: TCreateParams);
    ...
    SpeedButton1.Down := ReadBool('Editor', 'WordWpap', True);
    ...
    end;
    Запись в файл работает, а при старте программа вылетает(не может прочитать?) :angry:
     
  4. Barmutik

    Barmutik Гость

    А Вы уже создали Ini файл перед чтением ?
     
  5. Baton77

    Baton77 Гость

    Вроде да, остальное ведь работает...


    Код (Text):
    constructor TForm1.Create(AOwner: TComponent);
    begin
    PrgINI := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'BBcode.ini');
    inherited Create(AOwner);
    end;

    procedure TForm1.CreateParams(var Params: TCreateParams);
    begin
    inherited CreateParams(Params);
    with Params do
    begin
    Y := PrgINI.ReadInteger('Position', 'Top', Top);
    X := PrgINI.ReadInteger('Position', 'Left', Left);
    Width := PrgINI.ReadInteger('Position', 'Width', Width);
    Height := PrgINI.ReadInteger('Position', 'Height', Height);
    Memo.Font.Charset := PrgINI.ReadInteger('Editor', 'CharSet', RUSSIAN_CHARSET);
    Memo.Font.Color := PrgINI.ReadInteger('Editor', 'FontColor', clWindowText);
    Memo.Font.Size := PrgINI.ReadInteger('Editor', 'FontSize', 10);
    Memo.Color := PrgINI.ReadInteger('Editor', 'EditorColor', clWindow);
    SpeedButton1.Down := ReadBool('Editor', 'WordWpap', True);
    end;
    end;

    procedure TForm1.DoShow;
    var
    aWindowState: integer;
    begin
    aWindowState := PrgINI.ReadInteger('position', 'WindowState', 0);
    case aWindowState of
    0: WindowState := wsNormal;
    1: WindowState := wsMinimized;
    2: WindowState := wsMaximized;
    end;
    end;

    destructor TForm1.Destroy;
    begin
    if WindowState = wsNormal then
    begin
    PrgINI.WriteInteger('Position', 'Top', Top);
    PrgINI.WriteInteger('Position', 'Left', Left);
    end;
    PrgINI.WriteInteger('Position', 'Width', 802);
    PrgINI.WriteInteger('Position', 'Height', 606);
    case WindowState of
    wsNormal: PrgINI.WriteInteger('Position', 'WindowState', 0);
    wsMinimized: PrgINI.WriteInteger('Position', 'WindowState', 1);
    wsMaximized: PrgINI.WriteInteger('Position', 'WindowState', 2);
    end;
    PrgINI.WriteInteger('Editor', 'CharSet', Memo.Font.CHARSET);
    PrgINI.WriteInteger('Editor', 'FontColor', Memo.Font.Color);
    PrgINI.WriteInteger('Editor', 'FontSize', Memo.Font.Size);
    PrgINI.WriteInteger('Editor', 'EditorColor', Memo.Color);
    PrgINI.WriteBool('Editor', 'WordWpap', SpeedButton1.Down);
    PrgINI.Free;
    inherited Destroy;
    end;
    В ини записывается строка : WordWpap с параметром 0 или 1. :angry:
     
  6. Barmutik

    Barmutik Гость

    Ну всё правильно .. значение истина или ложь...

    Странно .. а чего ж Вы не читаете как все остальные параметры:

    Код (Text):
        SpeedButton1.Down := PrgINI.ReadBoolean('Editor', 'WordWpap', True);
    А используете ReadBool?
     
  7. Baton77

    Baton77 Гость

    Наверное, что-то не то делаю...
    В uses добавлен inifiles, но там нет функции ReadBoolean, а только ReadBool.
    :angry:



    P.S.


    Заработало...
    Пришлось переместить функцию ReadBool из CreateParams в FormCreate и добавить обработку SpeedButton1.

    Код (Text):
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    ...
    SpeedButton1.Down := PrgINI.ReadBool('Editor', 'WordWpap', True);
    if SpeedButton1.Down = True then
    begin
    Memo.WordWrap := True;
    Memo.ScrollBars := ssVertical;
    end;
    if SpeedButton1.Down = False then
    begin
    Memo.WordWrap := False;
    Memo.ScrollBars := ssBoth;
    end;
    end;

    procedure TForm1.SpeedButton1Click(Sender: TObject);
    begin
    if SpeedButton1.Down = True then
    begin
    Memo.WordWrap := True;
    Memo.ScrollBars := ssVertical;
    end;
    if SpeedButton1.Down = False then
    begin
    Memo.WordWrap := False;
    Memo.ScrollBars := ssBoth;
    end;
    end;
    Меньше кода сделать не получилось...

    Barmutik, спасибо за участие! :)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей