[ Pobierz całość w formacie PDF ]
.h.Wydruk 12.8 Tworzenie kompletnej ścieżki dlawybranej pozycji listyAnsiString __fastcall TForm1::GetPath(){TTreeNode *Base, *Temp;TStringList *TempList = new TStringList();int i;AnsiString ToReturn;Base = MyTree->Selected;TempList->Add(Base->Text);Temp = Base->Parent;while(Temp){TempList->Add(Temp->Text);Temp = Temp->Parent;}for(i=TempList->Count-1;i>-1;i--){ToReturn += "/" + TempList->Strings[i];}return ToReturn;}Poczynając od wybranej pozycji, podąża się tu w górę hierarchii węzłów nazwa każdegonapotkanego węzła stanowi kolejny człon ścieżki, oddzielany znakiem /.Zamykanie sesji oraz przesyłanie plikówZakończenie połączenia z serwerem FTP następuje w wyniku kliknięcia w przycisk Stop :void __fastcall TForm1::StopButtonClick(TObject *Sender){MyFtp->Disconnect();StartButton->Enabled = true;StopButton->Enabled = false;}Po zamknięciu połączenia za pomocą metody Disconnect() następuje zablokowanie przycisku Stop i odblokowanie przycisku Start.Przesyłanie pliku (upload) jest czynnością zgoła nieskomplikowaną i następuje w wynikukliknięcia w przycisk Prześlij :void __fastcall TForm1::UploadButtonClick(TObject *Sender){if(OpenDialog1->Execute()){MyFtp->Upload(OpenDialog1->FileName,ExtractFileName(OpenDialog1->FileName));}}Plik do przesłania wybierany jest tutaj za pomocą standardowego dialogu otwarcia pliku.Jegospecyfikacja znajduje się pod właściwością FileName tegoż dialogu.Zwróć uwagę, iż plikzapisywany jest na serwerze pod swoją oryginalną nazwą w bieżącym katalogu funkcjaExtractFileName() usuwa ze specyfikacji pliku ewentualną ścieżkę dostępu.PodsumowanieNiniejszy rozdział stanowi kolejne świadectwo niezwykłej użyteczności narzędzia typu RADjakim jest C++Builder; skomplikowane poniekąd technologie internetowe dostępne są dlaprogramisty niemal na wyciągnięcie ręki, a to za sprawą komponentów udostępniającychfunkcjonalność podstawowych protokołów komunikacyjnych.Prezentowane tu projekty zezrozumiałych względów okrojone są do wersji minimalnych, mogą jednak być bez przeszkódrozbudowywane i być może używane jako składniki aplikacji bardziej skomplikowanych [ Pobierz całość w formacie PDF ]