Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать титры [D7, WinXP]


AlexHawk ©   (2004-11-26 20:55:00) 

Необходимо чтобы на 4-х отдельных Label'ах расположеных один под другим выводился текст снизу вверх. А сам текст вводился например в Memo. В каждом Label'e должно быть не более 16 символов. Не подскажите хотябы с чего начать. Please!!


AlexHawk   (2004-11-27 01:46:00) [1]

Вау!! Большое спасибо GEN++ © !! Осталось только с переносами подумать, но посто Супер!


GEN++   (2004-11-26 23:25:00) [2]


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;

type
 TForm1 = class(TForm)
   Label1: TLabel;
   Label2: TLabel;
   Label3: TLabel;
   Label4: TLabel;
   Memo1: TMemo;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
   procedure copey_to_label(k:word);
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 B:TStringList;
implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
N,k:integer;
X:cardinal;
begin
         B:=TStringList.Create;
         for n:=0 to 3 do B.Add('                ');
         for n:=0 to memo1.Lines.Count-1 do B.Add
            (memo1.lines.strings[n]);
        for n:=0 to 3 do B.Add('                ');
       n:=B.Count;
         for k:=0 to n-4 do
         begin
             copey_to_label(k);
             X:=gettickcount+500;
             while gettickcount<X do application.ProcessMessages;
         end;

         B.free;
end;
procedure TForm1.copey_to_label(k:word);
begin
       label1.caption:=copy(B.strings[k],1,16);
       label2.caption:=copy(B.strings[k+1],1,16);
       label3.caption:=copy(B.strings[k+2],1,16);
   label4.caption:=copy(B.strings[k+3],1,16);
end;
end.


работающий пример, проверено.


TButton   (2004-11-26 22:51:00) [3]

begin...end ©   (26.11.04 21:26) [4]
а че не прав?
по-моему в динамических массивах проверка наличия n-го э-та именно так производится.


begin...end   (2004-11-26 21:26:00) [4]


> [1] TButton ©   (26.11.04 21:07)


> Memo1.Lines[n]<>nil

Мда...


OneFragLeft   (2004-11-26 21:08:00) [5]

А поподробнее можно, а то ничё не понятно - это не сабж, а не TButton=)


TButton   (2004-11-26 21:07:00) [6]

начни с запуска Delphi
потом реализуй ввод текста из Mem'ки в Label'ы
с контролем длины строки

примечания
(!)доступ к строке мемки №n
Memo1.Lines[n]

(!)проверка наличия в мемке строки №n
(Memo1.Lines.Count1>n)and(n>=0)
или
Memo1.Lines[n]<>nil
возвращают trueесли строка есть

(!)копирование текста - Copy


OneFragLeft   (2004-11-26 21:07:00) [7]

А поподробнее можно, а то ничё не понятно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо