Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 20:14   #1
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию Моргает label при перемещении

Как убрать это? Может применить какой-нибудь другой компонент вместо него? Надо всего лишь чтобы можно было в нем программно изменять шрифт, фон, было WordWrap=False, Autosize=True и чтоб входило больше 255 символов.
Maxs вне форума
Старый 25.10.2009, 20:22   #2
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

StaticText тебе подойдет.
Gerzs вне форума
Старый 25.10.2009, 20:55   #3
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию

Он тоже мигает. Можно ли с помощью Canvas сделать так? Строка должна идти по форме, которая растянулась от начала экрана до конца (Бегущая строка) и из определенного числа Memo должен текст постепенно добавляться в Canvas.
Maxs вне форума
Старый 25.10.2009, 21:10   #4
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Можно, метод TextOut(X,Y,text)
Gerzs вне форума
Старый 25.10.2009, 21:32   #5
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию

Цитата:
Сообщение от Gerzs Посмотреть сообщение
Можно, метод TextOut(X,Y,text)
Там можно только 255 символов. Как это обойти? Читал про компонент Marquee OLE Control Module, но у меня его нет ни в Delphi 7, ни в 2009

Последний раз редактировалось Maxs; 25.10.2009 в 21:40.
Maxs вне форума
Старый 25.10.2009, 21:44   #6
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Maxs, Два раза используй TextOut (или сколь там нудно), ну и конечно синхронизируй положение надписей ))

Последний раз редактировалось Gerzs; 25.10.2009 в 21:51.
Gerzs вне форума
Старый 25.10.2009, 21:54   #7
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию

Цитата:
Сообщение от Gerzs Посмотреть сообщение
Maxs, Два раза используй TextOut (или сколь там нудно), ну и конечно синхронизируй положение надписей ))
А как узнать длину получившегося TextOuta? Чтобы следом за ним другой вылез?
Maxs вне форума
Старый 25.10.2009, 22:06   #8
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Цитата:
Сообщение от Maxs Посмотреть сообщение
А как узнать длину получившегося TextOuta? Чтобы следом за ним другой вылез?
Методом TextWidth(‘текст длину которого нужно узнать’)
Gerzs вне форума
Старый 25.10.2009, 22:21   #9
Maxs
Заблокирован
 
Регистрация: 06.04.2009
Сообщений: 130
По умолчанию

Вот в инете нашел:
Код:
var
BitMap: TBitmap;
TW,X,Y: Integer;
Txt : String;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
txt := 'Это бегущая строка.';
BitMap := TBitmap.Create;
Bitmap.Width := Form1.Width;
Bitmap.Height := 100;
Bitmap.Canvas.Brush.Color := clBlack;
Bitmap.Canvas.Font.Name := 'Times New Roman';
Bitmap.Canvas.Font.Size := 35;
Bitmap.Canvas.Font.Color := clWhite;
TW := Bitmap.Canvas.TextWidth(txt);
X := Form1.Width;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Bitmap.Width := Form1.Width;
Bitmap.Height := Form1.Height;
Bitmap.Canvas.Polygon([Point(0, 0), Point(799, 0), 
Point(799, 599), Point(0, 599)]); 
X := X - 3;
If X <= -TW then
X := Form1.Width;
Bitmap.Canvas.TextOut(X,10,txt);
Form1.Canvas.Draw(0,0,Bitmap);
end;
Работает, только как тут можно создавать неизвестное количество BitMap'ов, следить за ними чтобы они удалялись при выходе за границы и меняли атрибуты шрифта и фона при изменениях их в настройках? Если бы было известно количество их, то это было бы сделать легко. а тут как? создавать новые имена?
Maxs вне форума
Старый 25.10.2009, 22:56   #10
Gerzs
Форумчанин
 
Аватар для Gerzs
 
Регистрация: 23.07.2009
Сообщений: 185
По умолчанию

Maxs, Зачем создавать витмап?
Код:
var
  Form7: TForm7;
  i:integer;

implementation

{$R *.dfm}

procedure TForm7.GoButtonClick(Sender: TObject);
begin
 Form7.StopButton.Enabled:=true;
 Form7.GoButton.Enabled:=false;
end;

procedure TForm7.StopButtonClick(Sender: TObject);
begin
 Form7.GoButton.Enabled:=true;
 Form7.StopButton.Enabled:=false;
end;

procedure TForm7.Timer1Timer(Sender: TObject);
begin
 if Form7.StopButton.Enabled=true then
 begin
  i:=i+1;
  Form7.Canvas.TextOut(Form7.ClientWidth-i,100, 'Привет');
  Form7.Canvas.TextOut(Form7.ClientWidth+Form7.Canvas.TextWidth('Привет ')-i,100, 'всем!!!');
  if i=Form7.ClientWidth+Form7.Canvas.TextWidth('Привет всем!!!') then i:=0;
 end;
end;

Последний раз редактировалось Gerzs; 26.10.2009 в 10:41. Причина: А лучше так
Gerzs вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить курсор при перемещении формы Nester Общие вопросы Delphi 11 28.09.2009 18:29
Процедура при перемещении формы Alex Cones Общие вопросы Delphi 7 28.07.2009 09:11
Запоминание координат при перемещении формы Shouldercannon Общие вопросы Delphi 5 21.06.2009 23:11
При расположении Label на компонентах, место под Label, не реагирует на событие onClick. NavigatorNeba Компоненты Delphi 3 15.11.2008 19:56
Почему моргает экран при развороте спрайта V-int Мультимедиа в Delphi 2 03.11.2007 14:47