Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Вывод в лабел


Автор: Mew 2.2.2005, 12:34
У меня 2 label один на нем слова, а другоц перекрывает его, по слогам другим цветом, Первая строчка идет хорошо, а потом когда доходит до конца любой строки, он закрашивает полностью нижнюю строку как этого исзбежать...

Автор: Snowy 2.2.2005, 12:41
Нда. Фразопостроение и грамматика хромает. Смысла ни на дюйм.
Попробуй объяснить членораздельно.

Автор: Alex 2.2.2005, 12:44
И желательно объяснить, что ты хочешь получить, т.к. есть подозрение, что это можно сделать не с помощью label.

Автор: Mew 2.2.2005, 12:46
Объясняю так..

Есть песенка
Ла-ЛаЛа это 1 label
А второй Label заполняется поверх 1 label по слогам. Но загвозка в том, что когда он доходит до конца первой строки.. Он закрывает полностью следующюю строку, что не нужно делать..
Как сделать так, чтобы он не закрашивал полностью следующую строку


Добавлено @ 12:47
Я хочу получить караоке

Автор: ~FoX~ 2.2.2005, 13:02
Mew
Чес лово ни фига не понял........
Но если тебе нужен прозрачный фон лэйбола, то используй функцию TextOut
Вот описание эквивалент
Код

BOOL TextOut(
 HDC hdc,           // handle to DC
 int nXStart,       // x-coordinate of starting position
 int nYStart,       // y-coordinate of starting position
 LPCTSTR lpString,  // character string
 int cbString       // number of characters
);

Автор: Snowy 2.2.2005, 13:18
Так проблема с многострочным лабелом?
Пример показать можешь? Параметры лабелов какие? Пример фраз и кусков, что куда чего закрашивает?
Попробуй в конце концов попросить кого-нибудь нормально сформулировать вопрос.

Есть такой вариант:
Ты кладешь многострочный лабел, а сверху него точно такой же. Но текст немного различается.
Первая строчка проходит нормально, а вторая расходится.
Если моя версия правильная, то получается это из-за того, что текст разный и WordWrap на них работает по разному.
Попробуй использовать жесткий перенос (#13) вместо автоматического.

Автор: Alex 2.2.2005, 13:27
Mew скрин просто покажи и все, если нету куда выложить пришли мне я сейчас выложу

Автор: Girder 2.2.2005, 15:26
Код
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
   i,j,Y:integer;
   c:TColor;
   SS:TStrings;
begin
c:=Label1.Canvas.Font.Color;
Label1.Caption:='Lala...lala...lalalalalala...'+#13+#10+'Блабла...блабла...блабла!';
SS:=TStringList.Create;
SS.Text:=Label1.Caption;
Y:=0;
for j:=0 to SS.Count-1 do
 begin
  s:=SS.Strings[j];
  for i:=1 to Length(s) do
   begin
    Label1.Canvas.Font.Color:=clGreen;
    Label1.Canvas.TextOut(0,Y,copy(s,1,i));
    sleep(200);
    Label1.Canvas.Font.Color:=c;
    Application.ProcessMessages;
   end;
  Y:=Y+Label1.Canvas.TextHeight(s);
 end;
SS.Free;
end;

smile

Автор: SoWa 3.2.2005, 16:40
Форматируй весь текст по гласным буквам пробелами, обойдешься ведь без второго Лейбла!

Автор: Mew 4.2.2005, 05:45
У меня все получилось... Я поставила свойство transporent:=true; и все получилось... smile

Автор: Zero 6.2.2005, 16:24
Цитата(Mew @ 2.2.2005, 12:46)
Есть песенка Ла-ЛаЛа

Я уж подумал что ты про Жану Фриске. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)