Kill the Borland :)
От: Зверёк Харьковский  
Дата: 24.03.05 00:36
Оценка: +1
(Сергею Орлику, если он вдруг сюда заглянет — не сердитесь )

Эта ветка создана для борьбы с "борландизмами" в интерфейсе.

Борландизмы — несущественные, но заметные отклонения от стандартов интерфейса Windows, вызванные применением библиотеки VCL.

Примечание: Кроме VCL-ных, нестандартно выглядят также приложения, основанные на кросс-платформенных библиотеках (GTK, Tcl, Java) — но это можно понять и невозможно исправить.


Сообщения в эту ветку желательно писать в формате "Название проблемы — Проблема — Решение".

Краткое содержание будущих серий:
  • Кнопки с картинками
  • MessageBox
  • Выбор директории
  • TTrackBar
    ...
    это мы, Зверьки!
  • FAQ — це мiй ай-кью!
    Кнопки с картинками
    От: Зверёк Харьковский  
    Дата: 24.03.05 01:03
    Оценка: +13 -5
    Проблема:
    Вот такие прелестные кнопочки:

    — признак домашней самоделки.

    Решение:
    3 слова: не используйте их.
    это мы, Зверьки!
    FAQ — це мiй ай-кью!
    Диалог выбора папки
    От: Зверёк Харьковский  
    Дата: 24.03.05 01:03
    Оценка: +5
    Проблема:
    В VCL нет диалога для выбора папки. Поэтому зачастую для решения этой задачи используют закладку с говорящим именем "Win3.1" и ваяют чего-нибудь такое:

    В то время, как приличный диалог выбора папки Windows должен выглядеть так:


    Решение:
    Использовать функцию WinAPI SHBrowseForFolder.
    это мы, Зверьки!
    FAQ — це мiй ай-кью!
    TTrackBar
    От: Зверёк Харьковский  
    Дата: 24.03.05 01:03
    Оценка:
    Проблема:
    Борландовский TTrackBar выглядит так:

    Стандартный трэкбар Windows — так:


    Решение:
    К сожалению, с полпинка вопрос не решается.
    Одно из возможных решений написано тут: http://faqs.org.ru/progr/pascal/del_vcl2.htm

    Вопрос:
    Как бы мне создать эдакий trackbar в котором вместо широкой белой полоски с ползунком была бы тонкая линия?

    Ответ:
    В примере создается компонент, унаследованный от TTrackbar который переопределяет метод CreateParams и убират флаг TBS_ENABLESELRANGE из Style. Константа TBS_ENABLESELRANGE обьявленна в модуле CommCtrl.

    Пример:

    uses CommCtrl, ComCtrls;
    
    type TMyTrackBar = class(TTrackBar)
        procedure CreateParams(var Params: TCreateParams); override;
    end;
    
    procedure TMyTrackBar.CreateParams(var Params: TCreateParams);
    begin
        inherited;
            Params.Style := Params.Style and not TBS_ENABLESELRANGE;
    end;
    
    var
        MyTrackbar : TMyTrackbar;
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        MyTrackBar := TMyTrackbar.Create(Form1);
        MyTrackbar.Parent := Form1;
        MyTrackbar.Left := 100;
        MyTrackbar.Top := 100;
        MyTrackbar.Width := 150;
        MyTrackbar.Height := 45;
        MyTrackBar.Visible := true;
    end;

    это мы, Зверьки!
    FAQ — це мiй ай-кью!
    MessageBox
    От: Зверёк Харьковский  
    Дата: 24.03.05 01:03
    Оценка: +2
    Проблема:
    MessageBox(Text, Caption, Flags) показывает диалог, который чуть-чуть отличается от стандартного — ровно настолько, чтобы пользователь ничего не заметил, но почувствовал легкий дискомфорт.
    Сравните:
  • Борланд:

  • Windows:

    (дело не в названиях кнопок)

    Решение:
    Использовать функцию WinAPI MessageBox(HWND, text, caption, type);
    это мы, Зверьки!
  • FAQ — це мiй ай-кью!
    Re: Диалог выбора папки
    От: Sheridan Россия  
    Дата: 24.03.05 05:08
    Оценка: +2
    Здравствуйте, Зверёк Харьковский, Вы писали:

    ЗХ>Проблема:

    ЗХ>В VCL нет диалога для выбора папки. Поэтому зачастую для решения этой задачи используют закладку с говорящим именем "Win3.1" и ваяют


    ЗХ>Решение:

    ЗХ>Использовать функцию WinAPI SHBrowseForFolder.
    или SelectDirectory
    extern PACKAGE bool __fastcall SelectDirectory(constAnsiString Caption, const WideString Root, AnsiString &Directory);
    extern PACKAGE bool __fastcall SelectDirectory(AnsiString &Directory, TSelectDirOpts Options, int HelpCtx);
    ... << RSDN@Home 1.1.4 beta 4 rev. 370>>
    Matrix has you...
    Re: Kill the Borland :)
    От: softland Россия  
    Дата: 24.03.05 06:38
    Оценка:
    Здравствуйте, Зверёк Харьковский, Вы писали:

    ЗХ>Краткое содержание будущих серий:

    ЗХ>
  • Кнопки с картинками
    ЗХ>
  • MessageBox
    ЗХ>
  • Выбор директории
    ЗХ>
  • TTrackBar
    ЗХ>...

    Уточняющий вопрос. Вы считаете использовать картинки на кнопках неправильным вообще, или конкретно на Ok и Cancel?
  • Re[2]: Kill the Borland :)
    От: Odi$$ey Россия http://malgarr.blogspot.com/
    Дата: 24.03.05 06:42
    Оценка: +1 -3
    Здравствуйте, softland, Вы писали:

    S>Уточняющий вопрос. Вы считаете использовать картинки на кнопках неправильным вообще, или конкретно на Ok и Cancel?


    imho: вообще, т.е. либо кнопка с картинкой, либо она с текстом, а и то и другое на одной кнопке — порнография
    Re[3]: Kill the Borland :)
    От: softland Россия  
    Дата: 24.03.05 06:58
    Оценка: 1 (1)
    Здравствуйте, Odi$$ey, Вы писали:

    OE>imho: вообще, т.е. либо кнопка с картинкой, либо она с текстом, а и то и другое на одной кнопке — порнография

    Очень смелое и безальтернотивное утверждение
    Если мы отвлечёмся от общеупотребимым приложений и следовательно от таких команд как "open", "send", а рассмотрим скажем программу для отображения каротажной информации при бурении скважины , то отсутствие подписей на кнопках делает время освоения программы существенно большим. Ссылки на то, что прикладные программы используются конкретным пользователем с утра до вечера и он очень быстро привыкает к конкретному интерфейсу, для меня не проходят, т.к. это лишь мнение. У меня совсем другой опыт, и многим моим пользователям приходится использовать сразу несколько программ. При этом перерыв в использовании может быть больше месяца, а этого хватит для забывания.
    Может надо иметь возможность настройки стиля отображения кнопки, например как в IE.
    Re[3]: Kill the Borland :)
    От: sterya Россия  
    Дата: 24.03.05 07:01
    Оценка: 20 (3) :))) :))) :)))
    Здравствуйте, Odi$$ey, Вы писали:

    OE>imho: вообще, т.е. либо кнопка с картинкой, либо она с текстом, а и то и другое на одной кнопке — порнография


    Хм...

    ... << RSDN@Home 1.1.4 beta 4 rev. 358>>
    Re[4]: Kill the Borland :)
    От: Всеволод П.  
    Дата: 24.03.05 07:06
    Оценка:
    Здравствуйте, softland, Вы писали:

    S>Если мы отвлечёмся от общеупотребимым приложений и следовательно от таких команд как "open", "send", а рассмотрим скажем программу для отображения каротажной информации при бурении скважины , то отсутствие подписей на кнопках делает время освоения программы существенно большим.


    Как альтернативу можно использовать кнопку с изображением и всплывающей текстовой подсказкой при наведении.
    А скорость вспоминания интерфейса после перерыва... все зависит от изображений. Главное — правильно одобранная метафора
    Всеволод
    Re[4]: Kill the Borland :)
    От: Denwer Россия  
    Дата: 24.03.05 07:09
    Оценка: 4 (1) +1
    Здравствуйте, softland, Вы писали:

    S>Здравствуйте, Odi$$ey, Вы писали:


    OE>>imho: вообще, т.е. либо кнопка с картинкой, либо она с текстом, а и то и другое на одной кнопке — порнография

    S>Очень смелое и безальтернотивное утверждение
    S>Если мы отвлечёмся от общеупотребимым приложений и следовательно от таких команд как "open", "send", а рассмотрим скажем программу для отображения каротажной информации при бурении скважины , то отсутствие подписей на кнопках делает время освоения программы существенно большим. Ссылки на то, что прикладные программы используются конкретным пользователем с утра до вечера и он очень быстро привыкает к конкретному интерфейсу, для меня не проходят, т.к. это лишь мнение. У меня совсем другой опыт, и многим моим пользователям приходится использовать сразу несколько программ. При этом перерыв в использовании может быть больше месяца, а этого хватит для забывания.
    S>Может надо иметь возможность настройки стиля отображения кнопки, например как в IE.

    Тут речь немного о другом, никто не говорит что тебе нужно использовать кнопки ТОЛЬКО с картинками, посмотри программы-монстры например офис, там все такие кнопки имеют только надписи, и это по моему правильно, а картинку нужно выводить только на тулбарах, и конечно с надписью, но и что бы надпись отключить можно, например когда пользователь уже сможет работать визуально, тем самым он сэкономит пространство на экране.

    ЗЫ: А от бормалеевской кнопки закрыть(точнее от картинки) меня просто корежит, если такую увижу программу сразу деисталю, нечего им делать на моем компе.
    Re: Кнопки с картинками
    От: retalik www.airbandits.com/
    Дата: 24.03.05 07:10
    Оценка: 13 (3)
    Здравствуйте, Зверёк Харьковский, Вы писали:

    ЗХ>Проблема:

    ЗХ>Вот такие прелестные кнопочки:
    ЗХ>- признак домашней самоделки.

    А как насчет таких?
    Успехов,
    Виталий.
    Re[3]: Kill the Borland :)
    От: Зверёк Харьковский  
    Дата: 24.03.05 07:12
    Оценка:
    Здравствуйте, Odi$$ey, Вы писали:

    S>>Уточняющий вопрос. Вы считаете использовать картинки на кнопках неправильным вообще, или конкретно на Ok и Cancel?


    OE>imho: вообще, т.е. либо кнопка с картинкой, либо она с текстом, а и то и другое на одной кнопке — порнография


    ... кроме использования таких кнопок на тулбаре!!!
    это мы, Зверьки!
    FAQ — це мiй ай-кью!
    Re[2]: Kill the Borland :)
    От: Зверёк Харьковский  
    Дата: 24.03.05 07:12
    Оценка:
    Здравствуйте, softland, Вы писали:

    S>Уточняющий вопрос. Вы считаете использовать картинки на кнопках неправильным вообще, или конкретно на Ok и Cancel?


    Второе.
    это мы, Зверьки!
    FAQ — це мiй ай-кью!
    Re[2]: Кнопки с картинками
    От: Зверёк Харьковский  
    Дата: 24.03.05 07:16
    Оценка: 1 (1) +3 -1
    Здравствуйте, retalik, Вы писали:

    ЗХ>>Проблема:

    ЗХ>>Вот такие прелестные кнопочки:
    ЗХ>>- признак домашней самоделки.

    R>А как насчет таких?

    R>

    Ну, awicons — это вообще отдельная история; про его юзабилити (как плохих, так и хороших аспектах) можно книгу писать
    Конкретный ответ на вопрос — мне эти картинки кажутся лишними. Не могу придумать им логического обоснования — и с эстетической точки зрения тоже не кажутся необходимым элементом.
    это мы, Зверьки!
    FAQ — це мiй ай-кью!
    Re: MessageBox
    От: wildwind Россия  
    Дата: 24.03.05 07:32
    Оценка:
    Здравствуйте, Зверёк Харьковский, Вы писали:

    ЗХ>Проблема:

    ЗХ>MessageBox(Text, Caption, Flags) показывает диалог, который чуть-чуть отличается от стандартного

    Имеется в виду MessageDlg() ?
    Re[2]: MessageBox
    От: Зверёк Харьковский  
    Дата: 24.03.05 08:21
    Оценка:
    Здравствуйте, wildwind, Вы писали:

    ЗХ>>Проблема:

    ЗХ>>MessageBox(Text, Caption, Flags) показывает диалог, который чуть-чуть отличается от стандартного

    W>Имеется в виду MessageDlg() ?


    И он тоже. Когда я еще писал на Билдере, я использовал это:
    [q]
    TApplication.MessageBox
    Displays a specified message to the user.
    function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_OK): Integer;

    Description
    Use MessageBox to display a generic dialog box a message and one or more buttons. Caption is the caption of the dialog box and is optional.
    [q]

    но это однохренственно.
    это мы, Зверьки!
    FAQ — це мiй ай-кью!
    Re[2]: Кнопки с картинками
    От: Аноним  
    Дата: 24.03.05 08:32
    Оценка:
    Здравствуйте, retalik, Вы писали:

    R>Здравствуйте, Зверёк Харьковский, Вы писали:


    ЗХ>>Проблема:

    ЗХ>>Вот такие прелестные кнопочки:
    ЗХ>>- признак домашней самоделки.

    R>А как насчет таких?

    R>

    Ужасный интерфейс. Я бы купил, но из-за нестандартности не стану. Что мешало сделать стандартный SDI/MDI с хорошим оформлением?

    Я знаю, что здесь этот продукт в почете. Что ж, кричу: "Король голый".
    Re: Диалог выбора папки
    От: Аноним  
    Дата: 24.03.05 08:34
    Оценка: +5 -2
    Здравствуйте, Зверёк Харьковский, Вы писали:

    ЗХ>Проблема:

    ЗХ>В VCL нет диалога для выбора папки. Поэтому зачастую для решения этой задачи используют закладку с говорящим именем "Win3.1" и ваяют чего-нибудь такое:
    ЗХ>
    ЗХ>В то время, как приличный диалог выбора папки Windows должен выглядеть так:
    ЗХ>

    ЗХ>Решение:

    ЗХ>Использовать функцию WinAPI SHBrowseForFolder.

    Гадкая функция, а окно — еще гаже. Лучше сделать самоделку — окно File Open приспособить для папок, как это сделано в студии.

    Ребята, в натуре невозможно этим деревом пользоваться. Пусть МС засунет его своим дезигнерам обратно в одно место.
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.