//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TSearchRec Search;
String Szukane;
String Katalog;
String sAppDir = ExtractFilePath( ParamStr(0) );
//---------------------------------------------------------------------------
// Szukanie Kategorii, dodanie ich do ListBox1
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Form1->ListBox1->Items->Clear();
int i;
if (FindFirst(sAppDir + "\\Kategorie Programów\\*.*", faDirectory, Search) == 0)
{
do{
if(((Search.Attr & faDirectory) > 0) & (Search.Name != ".") & (Search.Name != ".."))
Form1->ListBox1->Items->Add(Search.Name);
}
while(FindNext(Search) == 0);
FindClose(Search);
}
}
//------------------------------------------------------------
// Tworzenie obiektów
void __fastcall TForm1::CreateNewObjects(int i, String sAppName)
{
Panel_Programu[i] = new TPanel(this);
Panel_Programu[i]- >Parent = ScrollBox1;
Panel_Programu[i]- >Top = 10 + (i * 106);
Panel_Programu[i]- >Left = 10;
Panel_Programu[i]- >Width = 540;
Panel_Programu[i]- >Height = 95;
Panel_Programu[i]- >BevelOuter = bvNone;
Panel_Programu[i]- >Color = clActiveCaption;
Panel_Programu[i]- >Visible = true;
Napis_Nazwa_Programu[i] = new TLabel(this);
Napis_Nazwa_Programu[i]- >Parent = Panel_Programu[i];
Napis_Nazwa_Programu[i]- >Top =0;
Napis_Nazwa_Programu[i]- >Left = 0;
Napis_Nazwa_Programu[i]- >Width = 540;
Napis_Nazwa_Programu[i]- >Height = 25;
Napis_Nazwa_Programu[i]->Visible = true;
Napis_Nazwa_Programu[i]- >Font->Name = "Calibri";
Napis_Nazwa_Programu[i]- >Font->Size = 16;
Napis_Nazwa_Programu[i]- >Alignment = taCenter;
Napis_Nazwa_Programu[i]- >Align = alTop;
Napis_Nazwa_Programu[i]- >Caption = sAppName;
Napis_Nazwa_Programu[i] - > Tag = i;
Napis_Nazwa_Programu[i]- >OnClick = Nazwa_Programu;
Przycisk_Zainstaluj_X86[i] = new TButton(this);
Przycisk_Zainstaluj_X86[i]- >Parent = Panel_Programu[i];
Przycisk_Zainstaluj_X86[i]- >Top= 27;
Przycisk_Zainstaluj_X86[i]- >Left = 106;
Przycisk_Zainstaluj_X86[i]- >Width = 60;
Przycisk_Zainstaluj_X86[i]- >Height = 30;
Przycisk_Zainstaluj_X86[i]- >Visible = true;
Przycisk_Zainstaluj_X86[i]- >Caption = "Zainstaluj";
Przycisk_Zainstaluj_X86[i]- > Tag = i;
Przycisk_Zainstaluj_X86[i]- >OnClick = Zainstaluj_X86;
Przycisk_Zainstaluj_X64[i] = new TButton(this);
Przycisk_Zainstaluj_X64[i]- >Parent = Panel_Programu[i];
Przycisk_Zainstaluj_X64[i]- >Top= 56;
Przycisk_Zainstaluj_X64[i]- >Left = 106;
Przycisk_Zainstaluj_X64[i]- >Width = 60;
Przycisk_Zainstaluj_X64[i]- >Height = 30;
Przycisk_Zainstaluj_X64[i]- >Visible = true;
Przycisk_Zainstaluj_X64[i]- >Caption = "Zainstaluj";
Przycisk_Zainstaluj_X64[i]- > Tag = i;
Przycisk_Zainstaluj_X64[i]- >OnClick = Zainstaluj_X64;
}
//------------------------------------------------------------
// Usuwanie obiektów
void __fastcall TForm1::DeleteOldObjects(int count)
{
for(int i = 0; i < count; i++)
delete Panel_Programu[i];
}
//------------------------------------------------------------
// Szukanie folderów programów, Dodawanie ich do ListBox3
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
int i;
static int count = 0;
if (count != 0)
{
Form1->ListBox3->Items->Clear();
DeleteOldObjects(count);
count = 0;
}
if(FindFirst(sAppDir + "Kategorie Programów\\" + ListBox1->Items->Strings[ListBox1->ItemIndex] + "\\*.*", faDirectory, Search) == 0)
{
do{
if(((Search.Attr & faDirectory) > 0) & (Search.Name != ".") & (Search.Name != ".."))
{
Form1->ListBox3->Items->Add(Search.Name);
CreateNewObjects(count, ExtractFileName(Search.Name));
count++;
}
}
while(FindNext(Search) == 0);
FindClose(Search);
}
}
//------------------------------------------------------------
void __fastcall TForm1::Uruchom_Foldery(int Tag)
{
Katalog=sAppDir + "Kategorie Programów" + "\\" + ListBox1->Items->Strings[ListBox1->ItemIndex] + "\\" + ListBox3->Items->Strings[Tag] + "\\";
ShellExecute(Form1->Handle, NULL , (Katalog).c_str(), "", "", SW_SHOWNORMAL);
}
void __fastcall TForm1::Uruchom(String Szukane, int Tag)
{
Katalog=sAppDir + "Kategorie Programów" + "\\" + ListBox1->Items->Strings[ListBox1->ItemIndex] + "\\" + ListBox3->Items->Strings[Tag] + "\\";
if(FindFirst(Katalog + Szukane, faAnyFile, Search) == 0)
{
do
{
ShellExecute(Form1->Handle, NULL , (Katalog+Search.Name).c_str(), "", "", SW_SHOWNORMAL);
}
while(FindNext(Search) == 0);
FindClose(Search);
}
}
}
void __fastcall TForm1::Nazwa_Programu(TObject *Sender)
{
int Tag = dynamic_cast<TComponent *>(Sender) -> Tag;
Uruchom_Foldery(Tag);
}
//------------------------------------------------------------
// Uruchamianie programów X86
void __fastcall TForm1::Zainstaluj_X86(TObject *Sender)
{
int Tag = dynamic_cast<TComponent *>(Sender) -> Tag;
Szukane="[X86*.*";
Uruchom(Szukane, Tag);
}
//------------------------------------------------------------
// Uruchamianie programów X64
void __fastcall TForm1::Zainstaluj_X64(TObject *Sender)
{
int Tag = dynamic_cast<TComponent *>(Sender) -> Tag;
Szukane="[X64*.*";
Uruchom(Szukane, Tag);
}