![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Кому не сложно помогите:
вот листинг: Код:
unit Unit21; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm21 = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; procedure FormKeyPress(Sender: TObject; var Key: Char); procedure FormClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure FormPaint(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form21: TForm21; implementation {$R *.dfm} const s = 'ДОБРО ПОЖАЛОВАТЬ В НАШЕ ТАКСИ'; ColDark = clGray; ColNorm = clSilver; ColLight = clWhite; XPos = 10; YPos = 10; dx = 1; dy = 1; procedure TForm21.FormClick(Sender: TObject); begin form21.Close; end; procedure TForm21.FormKeyPress(Sender: TObject; var Key: Char); begin label1.visible:=true; label2.visible:=true; label3.visible:=true; label4.visible:=true; label5.visible:=true; label6.visible:=true; label7.visible:=true; end; procedure TForm21.FormCreate(Sender: TObject); begin Form21.Canvas.Brush.Style := bsClear; with Form21.Canvas.Font do begin name := 'Arial'; Size := 20; Style := [fsBold]; end; end; procedure TForm21.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin with Form21.Canvas do begin Font.Color := ColDark; TextOut(XPos - dx, YPos - dy, s); Font.Color := ColLight; TextOut(XPos + dx, YPos + dy, s); Font.Color := ColNorm; TextOut(XPos, YPos, s); end; end; procedure TForm21.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin with Form21.Canvas do begin Font.Color := ColLight; TextOut(XPos - dx, YPos - dy, s); Font.Color := ColDark; TextOut(XPos + dx, YPos + dy, s); Font.Color := ColNorm; TextOut(XPos, YPos, s); end; end; procedure TForm21.FormPaint(Sender: TObject); begin Form21.MouseUp(mbLeft, [], 0, 0); end; end. Задача поставлена следующая сделать шашку такси.и чтобы квадратики с интервалом времени появлялись или вылетали. На 1 надпись не обращайте особого внимания(это я сделал просто для красоты). далее я тупо указал значения всех label как false, а в программном коде как true. при нажитии кнопки Enter у меня все шашку всю показывает. и не удивительно - интервал(период)времени не указан. кто если знает помогите Последний раз редактировалось Admin, 14.12.2009 в 10:15. |
#2
|
||||
|
||||
![]() Так добавьте TTimer, выставите в нем необходимый интервал и обрабатывайте в событии ваши шашки.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() А без Timer сделать можно как нибудь?
преподаватель зараза не разрешает им пользоваться=( |
#4
|
||||
|
||||
![]() Хоть и изврат, но можно.
Примерно так: Код:
procedure TForm1.FormActivate(Sender: TObject); Var t: LongInt; begin t := GetTickCount; repeat if GetTickCount-t >= 100 then begin //Здесь помещаете ваш модуль для отрисовки Form1.Left := Form1.Left + 1; if Form1.Left+Form1.Width > Screen.Width then Form1.Left := 0; t := GetTickCount; end; Application.ProcessMessages; until false; end; Но как остановить сей процесс выдумывайте сами ![]() Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
![]() Cпс прикольная вещь=)
только по задании мне надо чтобы шашки(label) появлялись по очереди с интервалом ну допустим в 2секунды. накачал всяких программ -подобных найти не могу=( |
#6
|
||||
|
||||
![]() Я же для примера окно бегать заставляю. Свой модуль отрисовки шашек туда вставьте и интервал не 100, а 2000 = 2сек поставьте.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
![]() легко сказать=)
первый раз слышу че такой модуль отресовки.яж ток начинающий. ну всё равно спасибо что помог чем смог=)признателен |
#8
|
||||
|
||||
![]() Модуль отрисовки в даном случае - это тот код который должен быть исполнен...раз тебе нужно что то перерисовать, то и прокомментирован как "модуль для отрисовки"...
В начале был Бит, потом Байт и только потом появилось Слово... |
#9
|
|||
|
|||
![]() мне не нужно перериросовывать.мне тупо нужно между появлениями
label1 и label2 и т.д. сделать интервал времени. просто вот такую вроде глупость а сделать не могу. мне бы 1 скрипт связки узнать а там естественно проще будет. |
#10
|
||||
|
||||
![]() Ну модулем можно назвать любой завершенный блок программы.
В вашем случае отрисовка шашечек такси может быть использована как в вашей программе, так и где-то еще. Это можно назвать модулем. Сложность в отрисовке? Ладно, я сегодня добрый, держите: Код:
procedure TaxiLogo(Canvas: TCanvas; X,Y: Integer); Const Box: TPoint = (X:20;Y:20); Var i: Integer; begin with Canvas do begin Brush.Color := clYellow; Rectangle(X,Y,X+Box.X*7,Y+Box.Y*2); Brush.Color := clBlack; for i := 0 to 6 do if i mod 2 = 0 then Rectangle(X+i*Box.X,Y,X+(i+1)*Box.X,Y+Box.Y) else Rectangle(X+i*Box.X,Y+Box.Y,X+(i+1)*Box.X,Y+Box.Y*2); end; end; Ну и вызов соответственно: Код:
TaxiLogo(Canvas, 20, 20); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#11
|
|||
|
|||
![]() Спасибо ОГРОМНОЕ !!!! Очень выручил!
спс спс спс.... |
#12
|
||||
|
||||
![]() Немножко улучшил, для перемигивания шашечками:
Код:
procedure TaxiLogo(Canvas: TCanvas; X,Y: Integer; BkColor,Color: TColor); Const Box: TPoint = (X:20;Y:20); Var i: Integer; begin with Canvas do begin Brush.Color := BkColor; Rectangle(X,Y,X+Box.X*7,Y+Box.Y*2); Brush.Color := Color; for i := 0 to 6 do if i mod 2 = 0 then Rectangle(X+i*Box.X,Y,X+(i+1)*Box.X,Y+Box.Y) else Rectangle(X+i*Box.X,Y+Box.Y,X+(i+1)*Box.X,Y+Box.Y*2); end; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#13
|
|||
|
|||
![]() Спс еще раз.
а вот это: Ну и вызов соответственно: Код: TaxiLogo(Canvas, 20, 20); после какой фразы записывать?или куда? просто копирую твоё всё всятавляю .ошибки нет запускается но пустой экран.при нажатие мыши или клавиш ниче не появляется. Последний раз редактировалось kinderpingui20, 14.12.2009 в 14:39. |
#14
|
||||
|
||||
![]() Смотря куда вставляешь.
Примерно так должно быть: Код:
procedure TForm1.FormPaint(Sender: TObject); Var t,i: LongInt; begin t := GetTickCount; i := 1; repeat if GetTickCount - t > 500 then begin if i mod 2 = 0 then TaxiLogo(Canvas, 20, 20, clYellow, clBlack) else TaxiLogo(Canvas, 20, 20, clBlack, clYellow); t := GetTickCount; Inc(i); end; until False; end; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#15
|
|||
|
|||
![]() спс.всё даже эффектнее чем по заданию=))))
|