Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Приложение А. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ⇐ ПредыдущаяСтр 3 из 3
unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls; type TMoveThread = class(TThread) private FBox: TPaintBox; // Где воспроизводится картинка b0, b1: tbitmap; // Сами картинки i: integer; // Для определения координат картинки procedure DoVisualSwap; // Одна процедура двигает вправо, procedure DoVisual; // Другая влево protected procedure Execute; override; public constructor Create(a, b: TBitmap; c: TPaintBox); destructor Destroy; override; end;
type TForm1 = class(TForm) PaintBox1: TPaintBox; PaintBox2: TPaintBox; PaintBox3: TPaintBox; TrackBar1: TTrackBar; TrackBar2: TTrackBar; TrackBar3: TTrackBar; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; TrackBar4: TTrackBar; Button8: TButton; Button9: TButton; procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure Button7Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure TrackBar4Change(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); private { Private declarations } public { Public declarations } Thread1, Thread2, Thread3: TMoveThread; end;
var Form1: TForm1; var taxi00: TBitmap; taxi01: TBitmap; implementation
{$R *.dfm} var speed: integer=0; constructor TMoveThread.Create(a, b: tbitmap; c: TPaintBox); begin b0: =a; b1: =b; Fbox: =c; i: =0; inherited Create(False); end;
destructor TMoveThread.Destroy; begin b0.free; b1.free; inherited Destroy; end;
procedure TMoveThread.DoVisualSwap; { Двигает картинку вправо } begin with FBox do begin canvas.Draw(i, 0, b0); i: =i+1; sleep(speed); end; Application.ProcessMessages; end;
procedure TMoveThread.DoVisual; { Двигает картинку влево } begin with FBox do begin canvas.Draw(i, 0, b1); i: =i-1; sleep(speed); end; Application.ProcessMessages; end;
procedure TMoveThread.Execute; {В зависимости от координат, картинка двигается влево или вправо } begin while true do begin while i< =(fbox.Width+b0.Width) do begin Synchronize(DoVisualSwap); end; while i> =(0-b0.Width) do begin Synchronize(DoVisual);
end; end; end;
procedure TForm1.Button1Click(Sender: TObject); begin if Thread1.Suspended=true then Thread1.Resume; end;
procedure TForm1.Button2Click(Sender: TObject); begin if Thread1.Suspended=false then Thread1.Suspend; end;
procedure TForm1.Button3Click(Sender: TObject); begin if Thread2.Suspended=true then Thread2.Resume; end;
procedure TForm1.Button4Click(Sender: TObject); begin if Thread2.Suspended=false then Thread2.Suspend; end;
procedure TForm1.Button5Click(Sender: TObject); begin if Thread3.Suspended=true then Thread3.Resume; end;
procedure TForm1.Button6Click(Sender: TObject); begin if Thread3.Suspended=false then Thread3.Suspend; end;
procedure TForm1.Button7Click(Sender: TObject); begin
Thread1.Suspend; Thread2.Suspend; Thread3.Suspend; end;
procedure TForm1.Button8Click(Sender: TObject); begin Form1.Close; end;
procedure TForm1.Button9Click(Sender: TObject); begin if not Thread1.Suspended then Thread1.Suspend; if not Thread2.Suspended then Thread2.Suspend; if not Thread3.Suspended then Thread3.Suspend; Thread1.i: =0; Thread2.i: =0; Thread3.i: =0; PaintBox1.Refresh; PaintBox2.Refresh; PaintBox3.Refresh; Thread1.Resume; Thread2.Resume; Thread3.Resume; end;
procedure TForm1.FormCreate(Sender: TObject);
begin {} taxi00: =tbitmap.Create; // Создается объект BitMap taxi00.LoadFromFile('taxi00.bmp'); //В него загружается изображение taxi01: =tbitmap.Create; taxi01.LoadFromFile('taxi01.bmp'); thread1: = TMoveThread.Create(taxi00, taxi01, PaintBox1); //Создается поток Thread1.Priority: =tpLowest; // Устанавливается небольшой приоритет у потока; это необходимо для того, чтобы поток был управляемым и не забирал все ресурсы.
thread2: = TMoveThread.Create(taxi00, taxi01, PaintBox2); //Создается поток Thread2.Priority: =tpLowest; thread3: = TMoveThread.Create(taxi00, taxi01, PaintBox3); //Создается поток Thread3.Priority: =tpLowest; end;
procedure TForm1.FormDestroy(Sender: TObject); begin taxi00.Free; Taxi01.Free; Thread1.Terminate; Thread2.Terminate; Thread3.Terminate; end;
procedure TForm1.TrackBar1Change(Sender: TObject); var I: integer; priority: TThreadPriority; { Изменение приоритета соответствующего потока } begin priority: =tpIdle; for i: =0 to ((sender as ttrackbar).position -1) do inc(priority); if sender=trackbar1 then thread1.priority: =priority else if sender=trackbar3 then thread3.priority: =priority else thread2.Priority: =priority; end;
procedure TForm1.TrackBar4Change(Sender: TObject); begin speed: =round(TrackBar4.Position/10); end;
end.
|