Od razu mówię: wiem że C++ Builder to stare środowisko, ale w tym zacząłem program i w tym muszę skończyć. Mam 2 problemy:
Aplikacja pobiera oraz wypakowywuje (za pomocą ZipForge albo za pomocą oprogramowania zewnętrznego - problemy z curl) pewien plik. Ale podczas tej czynności zawsze pokazuje się te irytujące windowsowe kółeczko zamiast kursora i po chwili pisze że nie odpowiada, chociaż tak na prawdę właśnie pobiera i wypakowuje. Próbowałem dodać AntiFreeze, wtedy podczas pobierania jest OK, ale kiedy przychodzi to wypakowywania - znowu się zamraża. Kod:
ProgressBar->Max=FTPc->Size("plik.zip");
ProgressBar->Visible=true;
Trwa->Visible=true;
FTPc->Get("plik.zip", (zmienna + "\\scieka\\plik.zip").c_str());
ProgressBar->Visible=false;
Trwa->Visible=false;
ProgressBar2->Visible=true;
Trwa2->Visible=true;
Archiver->FileName = (zmienna+ "\\sciezka\\plik.zip").c_str();
Archiver->OpenArchive(fmOpenRead);
Archiver->BaseDir = (zmienna + "\\sciezka").c_str();
Archiver->ExtractFiles("*.*");
Archiver->CloseArchive();
ProgressBar2->Visible=false;
//koniec sposobu z ZipForge
STARTUPINFO info2={sizeof(info2)};
if (CreateProcess(zipath, zipcommand, NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &info2, &processInfo2))
{
WaitForSingleObject(processInfo2.hProcess, INFINITE);
CloseHandle(processInfo2.hProcess);
CloseHandle(processInfo2.hThread);
}
remove((appdata + "\\sciezka\\plik.zip").c_str());
Trwa2->Visible=false;
ProgressBar2->Visible=false;
//koniec z zewnetrznym oprogramowaniem
Ktoś zna jakiś sposób na to? Coś może źle zrobiłem?
2. Chcę aby po najechaniu na obraz widoczność innego obrazu się zmieniała. Niestety po najechaniu na chwilę pokazuje się biały kwadrat i znika. Już kiedyś miałem z tym problem, i to rozwiązałem, ale teraz nie mogę znaleźć żadnego sposobu na to.
void __fastcall TMainForm::Timer1Timer(TObject *Sender)
{
pozycja_kursora();
if(x>MainForm->obraz1->Left+MainForm->Left && x<MainForm->obraz1->Left+162+MainForm->Left &&
y>MainForm->obraz1->Top+MainForm->Top && y<MainForm->obraz1->Top+62+MainForm->Top)
{
if(PLplay1->Visible==true){
MainForm->obraz2->Visible=true;
}
}
else
{
MainForm->obraz2->Visible=false;
}
}```