Centar za edukaciju-BiH


switch Lista naslova: Koristan Pascal Kod

#1 09.11.2010 22:12
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Koristan Pascal Kod
Tetris igrica u paskalu.

Prilozi:
Informacije o tipu datoteke za:txt  tetris.txt
Preuzimanja:178
Velicina datoteke:12.07 KB


Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 3 puta. Posljednja izmjena 12.10.2021 11:53 od strane zxz. ↑  ↓

#2 10.11.2010 01:00
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet: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


Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 22.05.2012 23:48 od strane zxz. ↑  ↓

#3 10.11.2010 01:36
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet: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.
PreuzmiIzvorni kôd (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:

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

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#4 10.11.2010 01:39
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet: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:

PreuzmiIzvorni kôd (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;

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 10.11.2010 01:40 od strane zxz. ↑  ↓

#5 10.11.2010 01:49
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet: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:
PreuzmiIzvorni kôd (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":
PreuzmiIzvorni kôd (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
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#6 10.11.2010 01:58
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet: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:
PreuzmiIzvorni kôd (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":
PreuzmiIzvorni kôd (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;

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#7 26.01.2011 01:37
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet: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:

PreuzmiIzvorni kôd (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
PreuzmiIzvorni kôd (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:

PreuzmiIzvorni kôd (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.

PreuzmiIzvorni kôd (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;

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#8 26.01.2011 01:44
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet: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():

PreuzmiIzvorni kôd (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:
PreuzmiIzvorni kôd (Delphi):
  1. MoveFile('C:\Moj folder\word.txt',
  2. 'C:\Moj folder\excel.txt');
Evo i sintakse i definicije same API funkcije.

PreuzmiIzvorni kôd (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.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#9 27.02.2011 21:54
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Sortiranje podataka
Kod za sortiranje podataka.
type
PreuzmiIzvorni kôd (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;

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (1):1


Sva vremena su GMT +01:00. Trenutno vrijeme: 4: 53 pm.