trochę się uczę i tak sobie wymysliłem, żeby googlowską mapkę przenieść na TImage
mam klasę która jest odpowiedzialna za rysowanie
w niej mam metodę która w dwóch pętlach po x-ach i po y-kach tworzy url-a
void mapa::obrazki(int iX,int iY)//pozycja lewy górny róg
{
/*zmienne - np obliczanie po wielkości TImage ile wejdzie obrazków w pionie i w poziomie */
for(i=iX;i<iXMax;i++)
{
for(j=iY;j<iYMax;j++)
{
strULR = /*ściezka URL do obrazka*/;
/*Tworzenie wątku*/
pobieranieMapkiThd*pMapaT=new pobieranieMapkiThd(true);
pMapaT->setThreadData(strULR ,m_pImage/*wskaźnik do obrazka TImage*/,i,j);
pMapaT->Resume();
}
}
}
no i teraz wątek pobierajacy obrazki
void __fastcall pobieranieMapkiThd::Execute()
{
TPngImage *pPng = new TPngImage();
TMemoryStream *pPicStream = new TMemoryStream();
TIdHTTP* idhTmp=new TIdHTTP(0);
idhTmp->Get(m_strPath,pPicStream);//pobranie obrazka
pPicStream->Seek(0,0);
pPng->LoadFromStream(pPicStream) ;//zapis obrazka do zmiennej
m_pImage->Canvas->Lock();
m_pImage->Canvas->Draw((m_isposX)*256, (m_isposY)*256, pPng );
m_pImage->Canvas->Unlock();
}
wszystko działa - ale co najwyżej średnio
jak widać jeden obrazek top jeden wątek - nie wiem czy to dobrze, czy źle - na pewno szybko
problemem sa białe plamy na rysunku pewnie spowodowane blokowaniem obrazka (m_pImage->Canvas->Lock();
jeśli przeniosę to do osobnej funkcji i dam Synchronize(funkcja) białych plam nie ma, ale trwa to kilka sekund
jako, że jak na razie zupelnie się na tym nie znam to nie wiem czy robię to dobrze czy źle
mam taki plan, żeby obrazki zapisywać do tablicy - a na końcu je wczytać do obrazka
nie wiem też czy sposób, aby wczytanie każdego obrazka był to osobny watek jest dobry czy zły
chodzi mi o to, aby było szybko i pewnie
teraz jest albo szybko (ale czasami sie pojawiają białe plamy) albo pewnie, czyli trwa to trochę, ale nie ma białych plam
w związku z tym mam prośbę o podanie sposobu jak to wszystko zgrać
co do pomysłu ze zbieraniem danych do tablicy a potem wyświetlaniu tej tablicy to nie wiem, czy jest dobry czy zły i co najważniejsze - kiedy i jak można się dowiedzieć, że już wątków żadnych nie ma i że można wyświetlać