Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2012, 23:50   #1
Толян1
Новичок
Джуниор
 
Регистрация: 13.07.2012
Сообщений: 1
По умолчанию нужно разобраться с многопоточностью с ThRead Object

Мне нужно разобраться с ThRead Object.Ясделал базу данных через C++ Builder в Alias Maneger.Всё работает.но только мне нужно реализовать многопоточность мне нужно понять как её осуществить.У меня есть 2 процесса ,первый открывает папку с картинками, второй открывает базу данных.у меня при компиляции появляется папка открытие файла,только потом уже открывается база даддых.а мне нужно,что бы было всё одновркменно.Подскажите кто чем может..
вот код проги:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <jpeg.hpp>
#include <process.h>

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
AnsiString aPath;
TSearchRec aSearchRec;
int a;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Image1->Proportional=true;
if (FindFirst(aPath+"*.jpg",faAnyFile, aSearchRec)==0)
{
ListBox1->Items->Add(aSearchRec.Name);
while( FindNext(aSearchRec)==0)
{
ListBox1->Items->Add(aSearchRec.Name);
}
ListBox1->ItemIndex=0;
Label2->Caption=ListBox1->Items->Strings[0];
Image1->Picture->LoadFromFile(aPath + ListBox1->Items->Strings[0]);
}

if ( OpenDialog1->Execute() )
{
ListBox1->Clear();

aPath = ExtractFilePath(OpenDialog1->FileName);

if ( FindFirst(aPath+"*.jpg", faAnyFile,aSearchRec)==0)
{
ListBox1->Items->Add(aSearchRec.Name);
while (FindNext(aSearchRec)==0)
{
ListBox1->Items->Add(aSearchRec.Name);
}
int n=ListBox1->Items->IndexOf(ExtractFileName(OpenDialog 1->FileName));
ListBox1->ItemIndex=n;
Label2->Caption=ListBox1->Items->Strings[n];
Image1->Picture->LoadFromFile(aPath + ListBox1->Items->Strings[0]);
}
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormShow(TObject *Sender)
{
try
{
Table1->Open();
}
catch ( EDBEngineError &e)
{
ShowMessage("Для доступа к базе данных необходимо создать псевдоним shop");
}

}
//---------------------------------------------------------------------------

void __fastcall TForm1::DataSource1StateChange(TObj ect *Sender)
{
if (DataSource1->State == dsBrowse)
StatusBar1->Panels->Items[1]->Text = "магазин";
else
StatusBar1->Panels->Items[1]->Text = "№";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Table1AfterScroll(TDataSet *DataSet)
{
if ( Table1->RecNo !=-1)
{
StatusBar1->Panels->Items[0]->Text="№"+ IntToStr( Table1->RecNo);
}
else
{
StatusBar1->Panels->Items[0]->Text="Zapis:";
StatusBar1->Panels->Items[1]->Text="r";
}

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if (Table1->State == dsEdit)
Table1->Post();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
a=a+StrToInt(DBEdit2->Text);
Label1->Caption = a;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Label1->Caption = "0";

}
//---------------------------------------------------------------------------

void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
int n = ListBox1->ItemIndex;

Label2->Caption=ListBox1->Items->Strings[n];
Image1->Picture->LoadFromFile(aPath+ListBox1->Items->Strings[n]);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if ( OpenDialog1->Execute() )
{
ListBox1->Clear();

aPath = ExtractFilePath(OpenDialog1->FileName);

if ( FindFirst(aPath+"*.jpg", faAnyFile,aSearchRec)==0)
{
ListBox1->Items->Add(aSearchRec.Name);
while (FindNext(aSearchRec)==0)
{
ListBox1->Items->Add(aSearchRec.Name);
}
int n=ListBox1->Items->IndexOf(ExtractFileName(OpenDialog 1->FileName));
ListBox1->ItemIndex=n;
Label2->Caption=ListBox1->Items->Strings[n];
Image1->Picture->LoadFromFile(aPath + ListBox1->Items->Strings[0]);
}
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{

Label1->Caption = a-StrToInt(DBEdit2->Text);
}
//---------------------------------------------------------------------------
Толян1 вне форума Ответить с цитированием
Старый 16.07.2012, 09:52   #2
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Разработка многопоточных приложений в C++Builder
Drugnir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с многопоточностью Kapitan4ik Работа с сетью в Delphi 3 29.02.2012 21:46
Ошибка при подключении к базе данных Object reference not set to an instance of an object. lowercase ASP.NET 1 20.11.2011 22:48
Нужно разобраться с кодом написанным на Object Pascal в среде Delphi 7.0 anchuta Помощь студентам 10 15.05.2011 21:17
Нужно разобраться !!! вовик 82 WordPress и другие CMS 1 15.04.2011 13:36
Нужно разобраться со стеком GladiatoR24 Общие вопросы C/C++ 1 08.05.2010 11:34