Access

Alternativna učenja

Android

Animacija

Antropologija

Apple - MAC OS X

Arheologija

Arhitektura

Astrologija

Astronomija

Audio kursevi + knjige

Audio, Multimedia, Video

Autobiografija

AutoCad, ArchiCAD, SolidWorks, Catia, Pro/Engineer

Automobili

Bajke

Baze podataka

Biografija

Biološke nauke

Botanika

C++ Visual C++ C#

Cloud

CSS

Dečije knjige

Delphi

Digitalna fotografija

Dizajn

Django

Domaće pripovetke

Domaći roman

Drama

E-knjiga

E-komerc

ECDL

Ekologija

Ekonomija

Elektrotehnika

Enciklopedija

Esejistika

Etika

Fantastika

Film

Filologija

Filozofija

Fizika

Fotografija

Geografija

Geologija

GOOGLE

Grafika, Dizajn, Štampa

Građevinarstvo

Hardver

Hemija

Hidrotehnika

Hobi

Horor

Humor

Internet

Intervju

Istorija

Istorija i teorija književnosti

Istorija umetnosti

Istorijski roman

Java, JavaScript, JScript, Perl

Joomla

jQuery

Knjiga posle posla - Beletristika i ostala izdanja

Knjižare i naše knjige

Književna kritika

Kuvari, hrana i piće

Leksikografija

Lingvistika

Ljubavni roman

logo

Magija

Marketing

Mašinsko učenje

Mašinstvo

Matematika

Medicina

Memoari

Menadžment

Modeliranje podataka

Monografija

Mreže

MS Office

Muzika

Nagrađivanje knjige

Naučna fantastika

Obrada teksta

OFFICE 2013

OpenOffice.org

Operativni sistemi

Oracle

Organizacione nauke

Pedagogija

PHP I MYSQL

Pisci u medijima

Ples

Poezija

Politika

Poljoprivreda

Popularna medicina

Popularna nauka

Popularna psihologija

Posao

Pozorište

Pravo

Pravoslavlje

Primenjene nauke

Pripovetke

Prirodne nauke

Priručnik

Programiranje

Psihologija

Publicistika

Putopis

Python programiranje

Raspberry PI

Rečnici

Religija

Robotika

Roman

Ruby i Ruby on Rails

Satira

Saveti

Sertifikati

Slikarstvo

Socijalna mreža - Facebook

Sociologija

Sport

Sport i hobi

SQL Server

Statistika

Strip

Tabele

Tableti

Tehnologija

Telekomunikacije

Triler

Turizam

Twitter

Udžbenici

Umetnost

Unix, Linux

Urbanizam

UX DIZAJN

Visual Basic .NET, VBA, V. Studio

Web design

Windows

Windows 7

Windows 8

WordPress

Zaštita i sigurnost

 

KAKO DA – iščitavanje informacija o programu, Delphi

 

 

  • Twitter
  • Facebook
  • Google plus
  • Linkedin
  • Pinterest
  • Email

 

Pregleda (30 dana / ukupno): 11 / 1977

U svaki Delphi projekat/aplikaciju možete smestiti i osnovne informacije o programa, što će biti korisno i korisnicima aplikacija ali i programerima koji vrše eventualni reinženjering.

Delphi svojim korisnicima - programerima, omogućava da uz svaki projekat (aplikaciju) smeste i osnovne informacije o programu, kao što su:

• Naziv programa
• Verzija programa
• Opis projekta
• Podaci o pravima korišćenja programa
• Komentari, itd.

Sve ove informacije možete uneti pri kreiranju aplikacija, preko menija Project > Options i kartice “Version Info”. Ovde unete informacije koriste i samim programerima, ali i budućim korisnicima. Programerima, ponajviše zbog beleženja izmena, revizija, i prepravki u kodu, tj. radi boljeg snalaženja unutar jednog projekta. Korisnicima ova opcija može biti važna, kako zbog praćenja verzije programa kojeg koriste (u sklopu održavanja softverskog proizvoda), tako i zbog prava i obaveza preuzetih kupovinom nekog programa (sekcije “LegalCopyright” i “LegalTrademarks”).

Za iščitavanje “VersionInfo” informacija služi procedura “GetFileVersionInfo”. U sledećim redovima videćemo primer procedure koja će da iščita sve dostupne VersionInfo informacije i da ih smesti u jedan listbox. Na praznu formu postavi te jedno dugme i jednu listu (listbox). Klikom na dugme pozivaćemo funkciju koja će sve odraditi:

procedure TForm1.Button1Click(Sender: TObject);
begin
InformacijeOVerziji(ListBox1);
end;

Preostali deo koda smestite u isti Unit:

Function StringPad(
InputStr,
FillChar: String;
StrLen: Integer;
StrJustify: Boolean): String;
Var
TempFill: String;
Counter : Integer;
Begin
If Not (Length(InputStr) = StrLen) Then
Begin
If Length(InputStr) > StrLen Then
Begin
InputStr := Copy(InputStr,1,StrLen);
End
Else
Begin
TempFill := ”;
For Counter := 1 To StrLen-Length(InputStr) Do
Begin
TempFill := TempFill + FillChar;
End;
If StrJustify Then
Begin
{Left Justified}
InputStr := InputStr + TempFill;
End
Else
Begin
{Right Justified}
InputStr := TempFill + InputStr ;
End;
End;
End;
Result := InputStr;
End;

Function InformacijeOVerziji(
ListBox : TListBox): Boolean;
const
InfoNum = 11;
InfoStr : array [1..InfoNum] of String =
(’CompanyName’, ‘FileDescription’, ‘FileVersion’,
‘InternalName’, ‘LegalCopyright’, ‘LegalTradeMarks’,
‘OriginalFilename’, ‘ProductName’, ‘ProductVersion’,
‘Comments’, ‘Author’);
LabelStr : array [1..InfoNum] of String =
(’Company Name’, ‘Description’, ‘File Version’,
‘Internal Name’, ‘Copyright’, ‘TradeMarks’,
‘Original File Name’, ‘Product Name’,
‘Product Version’, ‘Comments’, ‘Author’);
var
S: String;
n, Len, i : Integer;
Buf : PChar;
Value : PChar;
begin
Try
S := Application.ExeName;
ListBox.Items.Clear;
ListBox.Sorted := True;
ListBox.Font.Name := ‘Courier New’;
n := GetFileVersionInfoSize(PChar(S),n);
If n > 0 Then Begin
Buf := AllocMem(n);
ListBox.Items.Add
(StringPad(’Size’,’ ‘,20,True)+’ = ‘+IntToStr(n));
GetFileVersionInfo(PChar(S),0,n,Buf);
For i:=1 To InfoNum Do Begin
If VerQueryValue(Buf,PChar(’StringFileInfo\040904E4\’+
InfoStr[i]),Pointer(Value),Len) Then
Begin
Value := PChar(Trim(Value));
If Length(Value) > 0 Then
Begin
ListBox.Items.Add
(StringPad(labelStr[i],’ ‘,20,True)+’ = ‘+Value);
End;
End;
End;
FreeMem(Buf,n);
End
Else Begin
ListBox.Items.Add
(’Nema FileVersionInfo podataka’);
End;
Result := True;
Except
Result := False;
End;
End;

Pripremio: Milenko Kusurović

 

Budite prvi koji će ostaviti komentar.

Ostavite komentar Ostavite komentar