Bosna i Hercegovina


switch Lista naslova:

#1 09.11.2010-22:12
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Koristan Pascal Kod*
Tetris igrica u paskalu.

Prilozi:
Informacije o fajlu: txt  tetris.txt
Preuzimanja: 5
Veličina: 12.07 KB


Pozdrav
Ovaj komentar je mijenjan 2 puta. zadnja izmjena 03.03.2013-15:43 od strane zxz. ↑  ↓

#2 10.11.2010-01:00
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Učitavanje vrijednosti
Za učitavanje vrijednosti koriste se dvije naredbe u paskalu: READ i READLN. Učitavanje moze biti preko ulazne datoteke ili preko tastature.
Na primer:
READ (i, j, k)
znači učitavanje promjenljivih i, j i k. Pretpostavimo da su podaci upisani preko tastature:
25 6 -100
tada će nakon izvrsenja naredbe READ promenljive imati sledeće vrednosti:

promenljiva

vrednost
i 25
j 6
k 100



U naredbi READ podaci se učitavaju po redu kako su u naredbi navedeni. Na primer:

READ (i, j);
READ (k, x);
READ (y, z)
Ako su ulazni podaci:

25 30 400
3.5 7.8 2.0

promenljive će imati sledeće vrednosti:

promenljiva vrednost
i 25
i 30
k 400
x 3.5
y 7.8
z 2.0


Naredba READLN učitava vreijdnosti kako su specificirane promenljivama, a nakon toga se prelazi na sledeći red, tj. zanemaruju se svi ostali podaci u tekućem redu.
Na primer, neka se izvrse naredbe:
READLN (i, j);
READLN (x, y)

ako su zadati podaci:

10 20 4.5 19
6.9 8.5 17 3.5
Vrijednosti promenljivih biti će:

promenljiva

vrednost
i 10
j 20
x 6.9
y 8.5


Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 22.05.2012-23:48 od strane zxz. ↑  ↓

#3 10.11.2010-01:36
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Delphi-String Grid u boji
StringGrid sa ćelijama u boji ima veoma dobar izgled, a na taj način možete informisati o korisnika o važnosti određenog sadržaja u ćeliji. Da bi obojili određene ćelije koristit ćemo događaj "OnDrawCell". U sledećem kodu prikazat ćemo vam kako da obojite pozadinu ćelija u crvenu boju. Pozadina druge kolone ćelija ?e biti obojena u zelenu boju.
DownloadIzvorni kod (Delphi):
  1.  
  2. procedure TForm1.StringGrid1DrawCell(Sender:
  3.       TObject; ACol, ARow: Integer;
  4.       Rect: TRect; State: TGridDrawState);
  5. Const         //ovde defini?ete boju. Naravno mo?ete ostaviti
  6.                  //i default boje.
  7.       clPaleGreen = TColor($CCFFCC);
  8.       clPaleRed =   TColor($CCCCFF);
  9. begin
  10. //Ukoliko ?elija ima fokus oboji?ete je u drugu boju
  11. if (gdFocused in State) then begin    
  12.       StringGrid1.Canvas.Brush.Color := clBlack;
  13.       StringGrid1.Canvas.Font.Color := clWhite;
  14. end
  15. else      //Ukoliko ?elija nema fokus mo?ete koristiti
  16.            //sopstvene boje
  17.       If ACol = 2      //druga kolona ?e biti obojena u
  18.                             //zeleno
  19.                then StringGrid1.Canvas.Brush.color := clPaleGreen
  20.                else StringGrid1.canvas.brush.Color := clPaleRed;
  21. //Sada bojimo ?elije, ali samo, ukoliko ?elija
  22. //nije naslovna - Row/Column
  23. If (ACol > 0) and (ARow>0) then
  24.       begin
  25.             //Painting the Background
  26.             StringGrid1.canvas.fillRect(Rect);
  27.             //Bojimo tekst. Ovde mo?ete
  28.             //koristiti i poravnavanje
  29.             StringGrid1.canvas.TextOut(Rect.Left,
  30.             Rect.Top,StringGrid1.Cells[ACol,ARow]);
  31.       end;
  32. end;
Ukoliko želite da obojite vaše ćelije u zavisnosti od vrednosti u ćelijama možete zamijeniti prethodne 3 linije (if Acol = 2 ...), sa sledećim:

DownloadIzvorni kod (Delphi):
  1.     if StringGrid1.Cells[ACol,ARow] = 'highlight it'
  2.           then StringGrid1.Canvas.Brush.color := clPalered
  3.           else StringGrid1.canvas.brush.Color := clwhite;

Pozdrav
↑  ↓

#4 10.11.2010-01:39
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Procedura za praznjenje Windows Recycle Bin-a
Procedura za praznjenje Windows Recycle Bin-a;
Za ovu proceduru cemo iskoristiti sistemsku DLL biblioteku Shell32.dll, koja dolazi uz stariju verziju Internet Explorer-a (verziju 4.0), tj. vec je ugradjena u Windows 98 i novije verzije ovog operativnog sistema. Morate obratiti paznju na to da starije verzije Windows-a 95 nemaju update-ovanu verziju (tj. verzija koja onemogucava izvoz procedure) ove biblioteke.
Procedura koristi funkciju SHEmptyRecycleBinA koju ?emo pozvati iz Shell32.dll biblioteke. A sada evo i procedure:

DownloadIzvorni kod (Delphi):
  1. Procedure EmptyRecycleBin ;
  2.       Const
  3.           SHERB_NOCONFIRMATION = $00000001 ;
  4.           SHERB_NOPROGRESSUI = $00000002 ;
  5.           SHERB_NOSOUND = $00000004 ;
  6.       Type
  7.           TSHEmptyRecycleBin = function (Wnd : HWND;                                                            
  8.       pszRootPath : PChar;                                                        
  9.       dwFlags : DWORD                              
  10.       ) : HRESULT; stdcall ;
  11.       Var
  12.           SHEmptyRecycleBin : TSHEmptyRecycleBin;
  13.           LibHandle                 : THandle;
  14.       Begin    { EmptyRecycleBin }
  15.           LibHandle := LoadLibrary(PChar('Shell32.dll')) ;
  16.           if LibHandle <> 0 then
  17.                @SHEmptyRecycleBin := GetProcAddress(LibHandle,
  18.       'SHEmptyRecycleBinA')
  19.           else
  20.           begin
  21.                MessageDlg('Neuspesno otvaranje
  22.               biblioteke Shell32.dll.', mtError,
  23.       [mbOK], 0);
  24.                Exit;
  25.           end;
  26.      
  27.      
  28.           if @SHEmptyRecycleBin <> nil then
  29.                SHEmptyRecycleBin(Application.Handle,  nil,
  30.       SHERB_NOCONFIRMATION or
  31.       SHERB_NOPROGRESSUI or SHERB_NOSOUND);
  32.           FreeLibrary(LibHandle);
  33.           @SHEmptyRecycleBin := nil ;
  34.       end;

Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 10.11.2010-01:40 od strane zxz. ↑  ↓

#5 10.11.2010-01:49
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Delphi - Funkcija Trim
Delphi - Funkcija Trim

Jedan od velikih problema za programere je trimovanje ulaznih stringova od strane korisnika programa. Ono sto se cesto desava je da korisnici nepaznjom unesu manji ili veci broj praznih mjesta, a vas program treba da operise sa takvim stringovima, npr. da ih uporedjuje. A Da bi popravili unos korisnika, Delphi obezbjedjuje tri funkcije:
Trim
TrimLeft
TrimRight
Zbog postojanja tri trim funkcije, ne morate povecavati kod da bi trimovali odredjeni string sa obje strane. Evo i primera primjene ove funkcije, na praznu formu postavite jedno dugme (Button) i jedan Listbox. I u proceduru dogadjaja OnClick dugmeta dodajte sledece redove:
DownloadIzvorni kod (Delphi):
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3.    S, Temp: string;
  4. begin
  5.    S := ?    Tekst   ?;
  6.    Temp := S;
  7.    S := Trim(S);
  8.    ListBox1.Items.Add(Temp);
  9.    ListBox1.Items.Add(S);
  10. end;
Pokrenite program i pritisnite dugme Button1, string konstanta sadrzi prazna mjesta i dodijeljena je varijabli S. Potom je vrednost varijable S dodijeljena drugoj string varijabli - Temp. Sledeci red uklanja prazna mesta sa pocetka i kraja stringa uz pomoc funkcije "Trim". U ovom trenutku, varijabla S vise nema praznih mjesta, a varijabla Temp ima. I u poslednja dva koraka dati stringovi se dodaju u Listbox, jedan ispod drugog, da bi vidjeli razliku.
___Tekst___
Tekst
Pokazat cemo i primer za funkciju "TrimRight":
DownloadIzvorni kod (Delphi):
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3.    S, Temp: string;
  4. begin
  5.    S := ?   Tekst   ?;
  6.    Temp := S;
  7.    S := TrimRight(S);
  8.    ListBox1.Items.Add(Temp);
  9.    ListBox1.Items.Add(S);
  10. end;
Kao izlaz dobit cemo string sa cije desne strane su uklonjena tri prazna mjesta:
___Tekst___
___Tekst
Pozdrav
↑  ↓

#6 10.11.2010-01:58
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Delphi-Skrol teksta
Klizna poruka
Ovo skrolovanje je vrlo slicno tekstu koji skroluje u Taskbar liniji ili recimo kao u WinAmp prozoru, kada naslov pjesme koja se reprodukuje skroluje.
Ono sto cemo prvo odrediti su dvije globalne varijable:
DownloadIzvorni kod (Delphi):
  1. var
  2.     ScrollPozicija: integer = 0;
  3.     ScrollTekst : string = 'Ovo je tekst koji skroluje...';
Prva varijabla (ScrollPozicija) je tipa integer i ona ce sadrzati vrednost trenutne pozicije skrolujuceg teksta, a druga (ScrollTekst) predstavlja tekst koji ce da "klizi" po naslovnoj liniji. Startovat cemo skrolovanje teksta sa istim brojem karaktera (praznih mesta), koliko celimo da se odjednom prikaze odredjeni tekst. Potom skrolovanje pocinje sa desne strane i ide ka levoj. Sledeca procedura koristi komponentu "Timer" da bi se izvrsilo pomijeranje teksta udesno. Zato smo iskoristili dogadjaj komponente "OnTimer":
DownloadIzvorni kod (Delphi):
  1. procedure TForm1.Timer1Timer(Sender: TObject);
  2. const
  3.  
  4.   // Prostor koji odvajamo za prikaz teksta
  5.   SCROLL_PROSTOR = 10;
  6. begin
  7.   // Dio teksta koji se prikazuje
  8.   Form1.Caption := Copy(ScrollTekst, ScrollPozicija, SCROLL_PROSTOR);
  9.   // Povecanje skrol pozicije za jedan karakter
  10.   Inc(ScrollPozicija);
  11.   // Vrsimo resetovanje pozicije kada
  12.   // skrolujuci tekst dodje do kraja
  13.   if ScrollPozicija >= Length(ScrollTekst) then
  14.    ScrollPozicija := 0;
  15. end;

Pozdrav
↑  ↓

#7 26.01.2011-01:37
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Delphi - Rad sa tekstualnim fajlovima
Delphi - Rad sa tekstualnim fajlovima

Svaki tekstualni fajl se sastoji od niza ASCII karaktera. Rad sa ovakvim fajlovima u Delphi-ju je vrlo sličan "čitanju" i snimanju podataka sa audio kaseta. U tekstualne fajlove možemo da dodajemo nove podatke,činimo izmjene nad postojećim i dr. Tekst fajlovi u stvari predstavljaju nizove karaktera koji su formatirani u linije (redove), gde je svaka linija određena znakom "end-of-line" na kraju linije.
Da bi uopšte radili u Delphi-ju sa ovakvim fajlovima, moramo da povežemo fajl na disku sa fajl-varijablom u našem programu. Da bi ovo uradili prvo ćemo deklarisati varijablu tipa "TextFile", i potom ćemo uz pomoć procedure "AssignFile" dodijeliti fizički fajl na disku, varijabli u programu:

DownloadIzvorni kod (Delphi):
  1. var
  2.    NekiTxtFajl : TextFile;
  3. begin
  4.    AssignFile(NekiTxtFajl , FileName)
...
Da napomenemo, ukoliko fajl pozvan uz pomoć "FileName", nije u tekućem folderu, moramo navesti celu putanju do fajla na disku. Da bi učitali podatke iz tekst fajla u Delphi projekt, upotrebit ćemo komponentu "TMemo" i upisat ćemo samo jednu liniju programskog koda:
Memo1.Lines.LoadFromFile('c:\autoexec.bat')
Da bi pročitali iz fajla liniju po liniju, morat ćemo da otvorimo fajl za ulaz, koristeći "Reset" proceduru. Ova procedura otvara postojeći fajl sa nazivom dodeljenim pomoću TextFile varijable. U slučaju da fajl ne postoji na disku javit će se greška. Kada fajl otvorimo na ovaj način - resetovanjem, koristit ćemo instrukciju "ReadLn" za čitanje pojedinačne linije.
...
v
DownloadIzvorni kod (Delphi):
  1. ar
  2.    NekiTxtFajl : TextFile;
  3.    bafer : string;
  4. begin
  5.    AssignFile(NekiTxtFajl, 'c:\autoexec.bat');
  6.   Reset(NekiTxtFajl);
  7.   ReadLn(NekiTxtFajl, bafer);
  8.   Memo1.Lines.Add(bafer);
  9.   CloseFile(NekiTxtFajl);
  10. end;
...
Procedura ReadLn, iščitava jednu liniju teksta i prelazi na sledeću. Kada završimo rad sa tekstualnim fajlovima, obavezno sledi njihovo zatvaranje pomoću procedure "CloseFile". Slična prethodnoj proceduri "ReadLn" je i procedura "Read", s tim što ona kada iščita liniju pokazivač ne prebacuje na sledeću liniju. Takođe, moguće je da sadržaj jedne linije teksta dodijelimo dvjema varijablama odjednom:

DownloadIzvorni kod (Delphi):
  1. var
  2.    NekiTxtFajl : TextFile;
  3.    bafer1,bafer2 : string[5];
  4. begin
  5.    AssignFile(NekiTxtFajl, 'c:\autoexec.bat');
  6.    Reset(NekiTxtFajl);
  7.    ReadLn(NekiTxtFajl, bafer1,bafer2);
  8.    ShowMessage(bafer1 + ' ' +bafer2);
  9.    CloseFile(NekiTxtFajl);
  10. end;
Da spomenemo još i funkciju "EndOfFile" (EOF), koja sliči za provjeru kraja tekstualnog fajla, tj. da spriječi čitanje linija nakon krajnje linije fajla.

DownloadIzvorni kod (Delphi):
  1. var
  2.    NekiTxtFajl : TextFile;
  3.    bafer : string;
  4. begin
  5.    AssignFile(NekiTxtFajl, 'c:\autoexec.bat');
  6.    Reset(NekiTxtFajl);
  7.    while not EOF(NekiTxtFajl) do
  8.     begin
  9.        ReadLn(NekiTxtFajl, bafer );
  10.        ShowMessage(bafer );
  11.     end;
  12.   CloseFile(NekiTxtFajl);
  13. end;

Pozdrav
↑  ↓

#8 26.01.2011-01:44
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Delphi - Preimenovanje fajlova i foldera
Delphi - Preimenovanje fajlova i foldera

Za ovu operaciju iskoristit ćemo Windows API funkciju "MoveFile()". Preimenovanje ćemo prikazati na primeru, recimo da imamo folder "C:\Moj folder" i da želimo da ga preimenujemo u "C:\Drugi folder". Krajnje je jednostavno, samo pozovemo API funkciju MoveFile():

DownloadIzvorni kod (Delphi):
  1. MoveFile('C:\Moj folder',
  2. 'C:\Drugi folder');
Vrlo je slično i kada se radi o fajlovima, za primer preimenovat ćemo fajl "word.txt" u fajl "excel.txt" u nekom folderu:
DownloadIzvorni kod (Delphi):
  1. MoveFile('C:\Moj folder\word.txt',
  2. 'C:\Moj folder\excel.txt');
Evo i sintakse i definicije same API funkcije.

DownloadIzvorni kod (Delphi):
  1. BOOL MoveFile(
  2.     LPCTSTR lpExistingFileName,
  3.     // naziv postojeceg fajla ili foldera
  4.     LPCTSTR lpNewFileName
  5.     // naziv novog fajla ili foldera
  6.    );
Argumenti i parametri funkcije su:
lpExistingFileName - predstavlja PChar string (string koji se završava nulom), naziv postojećeg fajla-foldera.
lpNewFileName - predstavlja PChar string koji specifikuje novi naziv prethodnog fajla ili foldera. Novi nazivi ne smeju da već postoje, novi fajl može biti na različitom drajvu. Novi folder mora da bude na istom drajvu na kome se nalazi i prethodni folder (preimenovani).
Funkcija MoveFile() će premestiti (preimenovati) postojeći fajl ili folder uključujući sve podfoldere. Jedina mana ove funkcije je ta, što neće proći ako vršimo premiještanje (move) na neki drugi drajv na sistemu.
Pozdrav
↑  ↓

#9 27.02.2011-21:54
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 8,828


Subject: Sortiranje podataka
Kod za sortiranje podataka.
type
DownloadIzvorni kod (Delphi):
  1.   TNiz = array[1..1000] of integer;
  2.  
  3. procedure Bubble_Sort(Count : integer; var niz : TNiz);
  4. var
  5.   i, j : integer;
  6. begin
  7.   for i := Count - 1 downto 1 do
  8.     for j := 1 to i do
  9.       if niz[j] > niz[j + 1] then
  10.         begin
  11.           Temp := Niz[j];
  12.           Niz[j] := Niz[j + 1];
  13.           Niz[j + 1] := Temp;
  14.         end;
  15. end;

Pozdrav
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 24.01.2017-10:23.