Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод текста по кругу в элементе Label есть идеи? Вывод текста по кругу в Label 
V
    Опции темы
MAXIQ
Дата 22.1.2007, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



     Есть путь к файлу, считанный из диалога в переменную типа String, однако строка может быть достаточно длинной и не вмещаться в расположенный на форме Label а юзеру программы надо предоставить возможность видеть указанный им путь целиком, но в случае с длинной строкой она будет конечно же отражена только до правой границы формы, по этому надо вывести что-то вроде бегущей строки в Labele или в другом элементе. Если у кого есть идеи по этому поводу то пишите!

P.S. Не предлагать использование Edit так как у него нету свойства Transparent и он будет выделяться на фоновом рисунке формы.  А так же создание нового элемента для Builder-а с возможностью полной стилизации под существующий фон или абсолютно прозрачного с повадками как у Edit без подкрепления подробным листингом и инструкциями.
PM MAIL   Вверх
szz
Дата 22.1.2007, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



Сам и пускай цикл бегущей строки с помощь Timera


--------------------
PM   Вверх
Anikmar
Дата 22.1.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



А почему не использовать Hint?

Навел мышкой на метку - получил в подсказке полную строку
PM MAIL ICQ   Вверх
MAXIQ
Дата 22.1.2007, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Hint не стилизуешь, а с таймером это уже ближе)
PM MAIL   Вверх
Anikmar
Дата 22.1.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2513
Регистрация: 26.11.2006
Где: Санкт-Петербург

Репутация: 34
Всего: 59



Цитата(MAXIQ @  22.1.2007,  11:38 Найти цитируемый пост)
Hint не стилизуешь, а с таймером это уже ближе) 


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

Почему нельзя стилизовать Hint? Можно перехватить событие OnHint и нарисовать свою формочку, стилизованную как угодно...
PM MAIL ICQ   Вверх
Vyacheslav
Дата 22.1.2007, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 47
Всего: 59



Вообще-то принято в таком случае сокращать путь, указывая в средней части многоточие.
VCL даже предоставляет функцию для генерации строки под заданный размер
Цитата(C++Builder Help)

Shortens a fully qualified path name so that it can be drawn with a specified length limit.

Unit

FileCtrl

Category

file name utilities

extern PACKAGE AnsiString __fastcall MinimizeName(constAnsiString Filename, Graphics::TCanvas* Canvas, int MaxLen);

Description

Use MinimizeName to obtain a version of a file name and path that can be drawn on a limited size drawing surface. MinimizeName replaces directories in the path portion of the file name with dots until the resulting name fits the specified number of pixels in length.

MinimizeName returns the shortened name.

Filename is the fully qualified path name that (possibly) needs to be shortened.

Canvas is the drawing surface on which the resulting name is to be rendered. It is used to determine font metrics.

MaxLen is the length, in pixels, available for drawing the file name on the canvas.
 


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
szz
Дата 22.1.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 1
Всего: 33



Цитата
Не уверен, что с таймером красиво будет - в глазах рябить будет.

  Ну, не обязательно ведь каждую миллисекунду двигать...
Цитата
MinimizeName

  А это, кстати, мощная вещь! Не знал, спасибо smile


--------------------
PM   Вверх
MAXIQ
Дата 23.1.2007, 04:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Хоть я уже и сделал с таймером бегущую строку, но судя по поступившей новой инфе, будет гораздо лучше воспользоваться вместо этого и Hint-ом стилизованным и MinimizeName, только вот в чем беда, в перехвате событий я еще не сильно соображаю, нужен пример как перехватить OnHint и вывести форму в нужных координатах относительно главной формы, чтоб Hint не всплыл где-то в далеке от нужного Label-а.
Anikmar, если не трудно, по-подробнее.
PM MAIL   Вверх
Bima
Дата 23.1.2007, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



В главной форме программы пишешь:
Код

//---------------------------------------------------------------------------
void __fastcall TForm1::MyShowHint(System::AnsiString &HintStr, bool &CanShow, THintInfo &HintInfo)
{//показывает подсказки нужным цветом
for (int i=0; i<ComponentCount; i++)
   if (((THintWindow*)Components[i])->ShowHint==true) //Здесь можешь поставить проверку на нужный компонент
      {
      HintInfo.HintColor=clRed; // Это для примера делаем подсказку красным
      //сюда вставляешь MinimizeName
      }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->OnShowHint=MyShowHint;//Oбработчик для подсказок
}
//---------------------------------------------------------------------------

в *.h пишешь:
Код

private:    // User declarations
public:        // User declarations
   __fastcall TForm1(TComponent* Owner);
   void __fastcall MyShowHint(System::AnsiString &HintStr, bool &CanShow, THintInfo &HintInfo);
};
//---------------------------------------------------------------------------



--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
MAXIQ
Дата 23.1.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Bima, Hint красить не надо, он в любом случае будет смотреться совсем не в тему, вместо него надо вспомогательную форму подсунуть к нужному Label-у. чтоб она сыграла роль Hinta. Если я правильно понял идею Anikmar-а. 
PM MAIL   Вверх
Bima
Дата 23.1.2007, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 15.8.2006

Репутация: 2
Всего: 2



Цитата

Bima, Hint красить не надо, он в любом случае будет смотреться совсем не в тему, вместо него надо вспомогательную форму подсунуть к нужному Label-у. чтоб она сыграла роль Hinta. Если я правильно понял идею Anikmar-а.  

Я написал в примере, что перекраску всех хинтов я привел для примера. Я подал идею реализации. То есть на это место вставляем формочку и разрисовываем ее как нужно. 


--------------------
Чтобы дойти до цели, надо идти.

Клавиатура и мышь - это главные инструменты прогресса.
PM MAIL WWW   Вверх
MAXIQ
Дата 23.2.2007, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 30.12.2006

Репутация: нет
Всего: нет



Спасибо за участие, цены Вам нету, отдельное спасибо Bimа.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0558 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.