Гобелен - кликните для возврата на главную
Не прошло и месяца а Фурмановская ЦРБ в очередной раз попала в историю. На этот раз сотрудница клеветала на пациентов, а именно огласку получил случай когда сотрудница назвала пациента алкашём.
Так почему бы не начать использовать обход блокировки YouTube при том что техническая возможность используя расширение nikolaevevge для браузера Mozilla Firefox уже появилась, а объем полезной(и не очень) информации на видеохостинге YouTube, по мнению некоторых диванных экспертов, меньше не стал.
Ровно 3 года назад произошло событие, которое подарило жителям планеты Змеля новый чистый праздник 6 апреля - в этот замечательный день земля забрала гнить негодяя и СПАМера Владимира Вольфовича Жириновского.
Как бы не обстояли дела в области культуры и IT-технологий, Самосвал писал статьи на связанные темы и планирует ещё написать.
На очередном конкурсе танцев, школьница отлично выступила.
Вот та самая информация: программа для продвижения канала YouTube, эта информация выложена уже несколько лет, при этом просмотров не много, а метод который описан в данном видео действительно помогает продвигать видео в YouTube.
Начал разбираться с информацией которая находится в HTTPS клиентском запросе рукопожатия.
Обратите внимание! Объект изображённый на гобилене может отличаться от общепринятого вида описанного объекта. Тут дело в том что художник видит именно так!
Код ниже успешно выполняется в Borland C++ Builder 6(проверено), для того чтобы запустить код в пустом проекте на форме разместить Laber1, Button1 и Button2 затем заменить код файлов Unit1.h и Unit.cpp кодом представленным для указанных файлов ниже.
Файл Unit1.h
#ifndef Unit1H
#define Unit1H
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
// Объявляем класс потока прямо в Unit1.h
class TMyThread : public TThread
{
private:
int counter;
protected:
void __fastcall Execute();
void __fastcall UpdateLabel();
public:
__fastcall TMyThread(bool CreateSuspended);
};
class TForm1 : public TForm
{
__published:
TLabel *Label1;
TButton *Button1;
TButton *Button2;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
private:
TMyThread *myThread;
public:
__fastcall TForm1(TComponent* Owner);
};
extern PACKAGE TForm1 *Form1;
#endif
Файл Unit1.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
// Реализация методов потока
__fastcall TMyThread::TMyThread(bool CreateSuspended) : TThread(CreateSuspended)
{
counter = 0;
FreeOnTerminate = true; // Автоматическое освобождение памяти при завершении
}
void __fastcall TMyThread::UpdateLabel()
{
Form1->Label1->Caption = "Counter: " + IntToStr(counter);
}
void __fastcall TMyThread::Execute()
{
while(!Terminated) // Пока поток не остановлен
{
counter++;
Synchronize(UpdateLabel); // Безопасное обновление Label
Sleep(100); // Пауза 100 мс
}
}
// Реализация методов формы
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
myThread = NULL;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(myThread == NULL)
{
myThread = new TMyThread(true); // Создаем поток в приостановленном состоянии
myThread->Resume(); // Запускаем поток
Button1->Caption = "Stop";
}
else
{
myThread->Terminate(); // Останавливаем поток
myThread = NULL;
Button1->Caption = "Start";
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Label1->Caption = "Button clicked!";
}
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if(myThread != NULL)
myThread->Terminate(); // Останавливаем поток при закрытии формы
}
Вы так же можете прочитать следующие статьи: