[ AnaBaki @ 05.08.2007. 11:44 ] @
Treba mi za plejer koji moze pustati muziku random ali bez ponavljanja.
[ bojan21 @ 06.08.2007. 15:57 ] @
Cekaj, nisam razumeo! Da li ti treba da napravis taj plejer ili da nadjes gotov program?
[ Miloš Baić @ 06.08.2007. 16:02 ] @
Za početak, iskoristi pretragu foruma. Pa, ako ti to ne pomogne, javi.
[ AnaBaki @ 07.08.2007. 16:24 ] @
Kao muzicka podloga programu.
U folderu MP3 ubacim nesto pesama i dok se
koristi program onda se pustaju pesme , random, ali
bez ponavljanja.

Nesto sam probao u Delfiju ali pesme ponavlja
[ viking13 @ 07.08.2007. 22:45 ] @
Koliko ima fajlova u tom folderu?

Ukoliko ima malo fajlova, to je više nego očekivano ponašanje, sem ako ne napraviš neki mehanizam koji će sprečiti ponavljanje. Random funkcija ne vraća svaki put različitu vrednost.

Imaš nekoliko rešenja kako ovo da izvedeš.

Najjednostavnije rešenje je da pri svakom pokretanju aplikacije napraviš play listu, zatim je izmešaš, a onda puštaš tu izmešanu playlistu u loopu. Ovo nije problem ukoliko ima dovoljno fajlova, ali će korisnik posle određenog vremena provaliti da mu ide isti redosled pesama. Naravno, ponavljanje važi samo za taj put. Čim isključi aplikaciju i ponovo je pokrene dobiće drugi redosled.

Malo komplikovanije rešenje, ali neuporedivo moćnije, je da pesme stvarno puštaš po radom principu, ali da kontrolišeš koliko je vremena prošlo od poslednjeg puštanja te pesme. Ukoliko je vreme od poslednjeg "emitovanja" suviše malo, tu pesmu preskočiš i prelaziš na sledeću. Postupak ponavljaš dok ne nađeš pesmu koja zadovoljava kriterijum, odnosno da nije bila u skorije vreme. Da bi izbegao pauze, najbolje da sledeći mp3 tražiš, neposredno nakon puštanja trenutnog.

Ako treba još neka pomoć tu sam.
[ AnaBaki @ 07.08.2007. 23:49 ] @
Moze li neki primer?
Ili barem kod?
[ bojan21 @ 08.08.2007. 18:35 ] @
Hmm, mozes ovako: u neki string list ubacis nazive svih pesama koje se nalaze u tom folderu! Zatim, napravis niz brojeva od 1 pa do broja pesama, i izmesas taj niz! Onda pozivas x[n[1]], x[n[2]]... itd. i kad dodje do kraja ti ponovo izmesas niz i pustas ponovo! Uhhh, ni sam sebe ne razumem, valjda ces shvatiti ;)!
[ AnaBaki @ 09.08.2007. 12:45 ] @
Postavio sam TFileListBox, u kome se ucitavaju sve MP3 pesmice iz foldera.
Onda

FileListBox1.Directory:='Mp3';
ukupno:=FileListBox1.Items.Count;
randomize;
rand:=random(ukupno);
fajl:=FileListBox1.Items[rand];
MediaPlayer1.Close;
MediaPlayer1.FileName:=fajl;
MediaPlayer1.Open;
MediaPlayer1.Play;

ali ponavlja pesme, bez obzira koliko ih je.
Kako da ih pusta bez ponavljanja, sta jos dodati i/ili uraditi?
[ savkic @ 09.08.2007. 14:18 ] @
> rand:=random(ukupno);
> fajl:=FileListBox1.Items[rand];

> ali ponavlja pesme, bez obzira koliko ih je.

Šta znači ponavlja pesme, uvek se pušta jedna ista ili ...?

> Kako da ih pusta bez ponavljanja, sta jos dodati i/ili uraditi?

Objasni detaljnije šta želiš postići.
[ AnaBaki @ 09.08.2007. 14:30 ] @
Hocu da pusta pesme preko reda, i kada pusti sve po jednom da pocne pustanje pesama ponovo.
Inace, ne ponavlja svaku pesmu, ali neku ponovi i po nekoliko puta.
[ savkic @ 09.08.2007. 15:15 ] @
> Hocu da pusta pesme preko reda, i kada pusti sve po jednom da pocne pustanje pesama ponovo.

Hoćeš da pustiš sve pesme iz liste u proizvoljnom redu a kada se sve puste da ih pustiš ponovo u istom tom redu ili u nekom drugom?
Napraviš random listu po učitavanju pesama i onda ih puštaš dok ne prođu sve, posle toga ponoviš listu ili praviš novu slučajnu listu.

> Inace, ne ponavlja svaku pesmu, ali neku ponovi i po nekoliko puta.

Znači da se random brojevi koje dobijaš ponavljaju, moraš promeniti algoritam.
[ viking13 @ 09.08.2007. 16:49 ] @
Citat:
AnaBaki: Moze li neki primer?
Ili barem kod?


Obzirom da je moja prva ideja jednostavnija, idemo sa njenom implementacijom.

Napravi novu aplikaciju, stavi TMediaPlayer, Button, Timer i Memo na form i iskopiraj sledeći kod:

Code:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, MPlayer, ExtCtrls;

type
  TForm1 = class(TForm)
    MediaPlayer1: TMediaPlayer;
    Memo1: TMemo;
    Button1: TButton;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
    PlayList: TStringList;
    PlayListIndex: Integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  // proveri da li uopšte imaš neki mp3 u listi
  if (PlayList.Count > 0) then
  begin
    Inc(PlayListIndex);
    // vraća brojač na početak kada dođe do kraja liste
    PlayListIndex := PlayListIndex mod PlayList.Count;
    // pusti mp3 i dodaj njegovo ime u memo
    MediaPlayer1.Close;
    MediaPlayer1.FileName := PlayList[PlayListIndex];
    Memo1.Lines.Add(MediaPlayer1.FileName);
    MediaPlayer1.Open;
    MediaPlayer1.Play;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Folder: string;
  SearchRec: TSearchRec;
  TmpPlayList: TStringList;
  I, RndInt, Result: Integer;
begin
  Result := 0;
  I := 0;
  Randomize;
  // pravljenje playliste koja ide redom
  PlayList := TStringList.Create;
  // setovanje foldera sa mp3 fajlovima
  // obrati paznju da moras da imas '\' na kraju stringa
  Folder := 'D:\mp3\';
  try
    ChDir(Folder);
  except
    on EInOutError do
    begin
      Exit; // ukoliko folder ne postoji ostak nema smisla
    end;
  end;
  // pronadji prvi folder
  FindFirst(Folder+'*.mp3', faAnyFile, SearchRec);
  // pronadji ostale i dodaj ih u listu
  while Result = 0 do
  begin
    PlayList.Add(SearchRec.Name);
    Result := FindNext(SearchRec);
    Application.ProcessMessages;
  end;
  // pomoćna lista da bi mogli da izmešamo originalnu
  TmpPlayList := TStringList.Create;
  try
    repeat
      // slučajan broj
      RndInt := Random(PlayList.Count);
      // dodaj novi element ukoliko već ne postoji
      if TmpPlayList.IndexOf(PlayList[RndInt]) = -1 then
      begin
        TmpPlayList.Add(PlayList[RndInt]);
        inc(I);
      end;
    until I = PlayList.Count-1; // svi elementi prebačeni u novu listu
    // prabaci elemente izmešane liste u originalnu listu
    PlayList.Assign(TmpPlayList);
  finally
    TmpPlayList.Free;
  end;
  Memo1.Lines.Clear;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  PlayList.Free;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  // pusti mp3 ukoliko nista ne svira
  if (MediaPlayer1.Mode <> mpPlaying)
    or (MediaPlayer1.Position > 5000) // ovo je samo za test
  then
    Button1.Click;
end;

end.


Namerno sam stavio da možeš da prebaciš na sledeću pesmu klikom na button. Možda se tvom korisniku ne sluša ta pesma koja trenutno ide. A i mnogo je zgodnije za testiranje. :)

Memo sam stavio da bi video da je lista stvarno različita pri svakom pokretanju aplikacije i da pušta pesme po redu iz te promešane liste, bez ponavljanja, sve dok ne dodje do kraja liste, kada naravno kreće iz početka.

Timer je namerno napravljen tako da pušta samo par sekundi svake pesme, cilj je da vidiš da radi, a ne da čekaš kraj pesme da bi video da li će kod da odradi posao.
[ AnaBaki @ 10.08.2007. 19:32 ] @
Radi kako treba.
Uneo sam izmene, tako da otvara folder MP3 ako je pored *.exe
ne treba mu cela putanja do foldera

Zahvaljujem na pomoci
[ TraktoRISTA Mijo @ 19.08.2007. 02:03 ] @
mmmmm sve je to fino,ali mislim da nije bila svrha da se napravi cijeli program(ili jest?),već algoritam koji će napravit random poredak n elemenata neke liste(pley liste u ovom slučaju)...Dakle,trebalo bi napraviti procedure i/ili funkcije,a ne pisati cijeli program..kad bude trebalo napravit neke izmjene u daljnjem razvoju,onda će to biti teško
da ne petljam dalje,evo kako bi se moglo:
imamo listu od n članova(filename u ovom slučaju),neka je ona
PlayLista:array[1..n]of string;
netko je već rekao,napravimo listu slučajnih brojeva od 1 do n tako da se svaki ponavlja samo jednom,lista neka je
Redosljed:array[1..n]of integer;
pjesma koja se pušta je ona čiji se file name nalazi u listi na poziciji redosljed[I],gdje je I brojač koji povećavamo prilikom završetka pjesme ili klika na gumb za prelazak na sljedeću.

npr.imamo PlayLista:('pjesma1.mp3','pjesma2.mp3','pjesma3.mp3','pjesma4.mp3','pjesma5.mp3',) i
Redosljed:(1,5,3,4,2)
dakle,kako I krene od 1 pa do 5,puštat će se 'pjesma1.mp3','pjesma5.mp3','pjesma3.mp3','pjesma4.mp3','pjesma2.mp3'. kad je i recimo I:=2,onda
se pušta pjesma5.mp3,jer je Redosljed[2]=5,a PlayLista[Redosljed[2]]=PlayLista[5]='pjesma5.mp3'

ovu ideja je već predložena,samo da ju malo pojasnim.
e sad, viking13 je između ostalog napisao i ovo:

Result := 0;
I := 0;
Randomize;
// pravljenje playliste koja ide redom
PlayList := TStringList.Create;
// setovanje foldera sa mp3 fajlovima
// obrati paznju da moras da imas '\' na kraju stringa
Folder := 'D:\mp3\';
try
ChDir(Folder);
except
on EInOutError do
begin
Exit; // ukoliko folder ne postoji ostak nema smisla
end;
end;
// pronadji prvi folder
FindFirst(Folder+'*.mp3', faAnyFile, SearchRec);
// pronadji ostale i dodaj ih u listu
while Result = 0 do
begin
PlayList.Add(SearchRec.Name);
Result := FindNext(SearchRec);
Application.ProcessMessages;
end;
// pomoćna lista da bi mogli da izmešamo originalnu
TmpPlayList := TStringList.Create;
try
repeat
// slučajan broj
RndInt := Random(PlayList.Count);
// dodaj novi element ukoliko već ne postoji
if TmpPlayList.IndexOf(PlayList[RndInt]) = -1 then
begin
TmpPlayList.Add(PlayList[RndInt]);
inc(I);
end;
until I = PlayList.Count-1; // svi elementi prebačeni u novu listu
// prabaci elemente izmešane liste u originalnu listu
PlayList.Assign(TmpPlayList);
finally
TmpPlayList.Free;
end;
Memo1.Lines.Clear;

prvo što mi se nesviđa je što je ovaj kod,umjesto da je u zasebnoj proceduri,on stoji u form.create,što znači da je moguće samo jednom napravit random listu,prilikom pokretanja programa,a novu pravi ponovnim pokretanjem programa.

drugo,što ćeš vidit ako ovo testiraš na većim playlistama,je to da će se program jaaako usporit tražeći posljednje elemente,jer je recimo vjerojatnost da će od 100 brojeva bit izvučen jedan, 1/100, pa kad na kraju ostane recimo da se treba naći broj 89 da bi se izašlo iz petlje, program u svakom koraku imati vjerojatnost od 0,01 da taj broj i dobije..100 je možda i mala brojka,ali kod većih listi,ma kolko jak bio procesor,usporit će se program..osim ako nemaš neki procesor sretne ruke ;)

u tu svrhu postoji više algoritama kako to izbjeći,a najbolji je ovaj:
zamisli se jedan broj od 1 do n
element na toj poziciji zamjeni se sa zadnjim
u sljedećem koraku se zamisli broj od 1 do n-1 i zamjeni s predzadnjim,itd dok ne dođemo do jednog elementa

kod u delphiju bi bio

procedure Izmjesaj_niz(var niz:array of integer);
var
i,r,pom,n:integer;
begin
n:=high(niz);

for I:=0 to n do niz[I]:=I+1;

for I:=n downto 1 do
begin
randomize;
r:=random(I+1);

pom:=niz[I];
niz[I]:=niz[r];
niz[r]:=pom;

end;

end;

dakle,ova procedura u array niz zapisuje n nasumičnih brojeva

ovo je glavno,i odgovor na tvoje pitanje,a dalje možemo na razne načine.Možemo napravti niz slučajnih brojeva i po njemu svirati.možemo i ispremještati samu playlistu..kako smo ovo sve radili zbog brzine,najbolje je ovo prvo.Zbog toga možemo napraviti proeduru sviraj

procedure Sviraj(i:integer);
begin
MediaPlayer1.Close;
MediaPlayer1.FileName := PlayLista[Redosljed[I]];
MediaPlayer1.Open;
MediaPlayer1.Play;
end;

tako u proceduru FormCreate ide između ostalog

procedure FormCreate(Sender: TObject);
begin
.
.
.
brojac:=-1;
end;

gdje je brojac varijabla globalnog tipa definirana u private odjeljku unita,kao i nizovi PlayLista i Redosljed(slično kao u prethodnom rješenju, samo naši nazivi) dok u proceduru TForm1.Button1Click može ići

procedure TForm1.Button1Click(Sender: TObject);
begin
.
.
.
Postavi_brojac(brojac);
Sviraj(brojac);
end;

gdje nam procedura Postavi_brojac izgleda

procedure Postavi_brojac(var brojac:integer);
begin
if brojac>high(Redosljed) then brojac:=0 else brojac:=brojac+1;
end;

imamo i proceduru za stvaranje nove random liste,koju možemo upotrjebiti kad želimo novi razmještaj stare ili nove playliste

procedure Stvori_listu(velicina:integer);
begin
setlength(redosljed,velicina);
Izmjesaj_niz(Redosljed);
end;

na kraju priče,tvoj unit bi trebao izgledati otprilike:

Code:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, MPlayer, ExtCtrls;

type
  TForm1 = class(TForm)
   .
   .
   .
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject)
   .
   .
   .
  private
    { Private declarations }
    PlayLista: TStringList;
    Redosljed:array of integer;
    brojac:integer;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  
  procedure Inicijalizacija;
  procedure Izmjesaj_niz(var niz:array of integer);forward;
  procedure Postavi_brojac(var brojac:integer);forward;
  procedure Stvori_listu(velicina:integer);forward;
  procedure Sviraj(i:integer);forward;

implementation

procedure Inicijalizacija;
begin
brojac:=-1;
end;

procedure Izmjesaj_niz(var niz:array of integer);
  var
  i,r,pom,n:integer;
  begin
   n:=high(niz);

   for i:=0 to n do niz[I]:=I+1;

   for i:=n downto 1 do
     begin
     randomize;
     r:=random(i+1);

       pom:=niz[I];
       niz[I]:=niz[r];
       niz[r]:=pom;

     end;
   end;

procedure Postavi_brojac(var brojac:integer);
  begin
   if brojac>high(Redosljed) then brojac:=0 else brojac:=brojac+1;
  end;

procedure Stvori_listu(velicina:integer);
  begin
  setlength(redosljed,velicina);
  Izmjesaj_niz(Redosljed);
  end;

procedure Sviraj(i:integer);
  begin
  MediaPlayer1.Close;
  MediaPlayer1.FileName := PlayLista[Redosljed[I]];
  MediaPlayer1.Open;
  MediaPlayer1.Play;
  end;
   .
   .
   .
procedure TForm1.Button1Click(Sender: TObject);
begin
.
.
.
Postavi_brojac(brojac);
Sviraj(brojac);
end;

procedure TForm1.Button2Click(Sender: TObject);//kojim možeš stvoriti novu listu i svirati odmah
var
...
velicina:integer;//nju dobiješ kad učitaš listu PlayListu,to možeš kako ti je viking13 objasnio.Primjeti da ova procedura mijenja FormCreate
begin
  PlayLista := TStringList.Create;
  // setovanje foldera sa mp3 fajlovima
  // obrati paznju da moras da imas '\' na kraju stringa
  Folder := 'D:\mp3\';
  try
    ChDir(Folder);
  except
    on EInOutError do
    begin
      Exit; // ukoliko folder ne postoji ostak nema smisla
    end;
  end;
  // pronadji prvi folder
  FindFirst(Folder+'*.mp3', faAnyFile, SearchRec);
  // pronadji ostale i dodaj ih u listu
  while Result = 0 do
  begin
    PlayList.Add(SearchRec.Name);
    Result := FindNext(SearchRec);
    Application.ProcessMessages;
  end;
  velicina:=PlayLista.Count;

  Stvori_listu(velicina);
  Inicijalizacija;
  Postavi_brojac(brojac);
  Sviraj;
end;
   .
   .
   .
end.


da napomenem,nema ništa pogrešno u prethodnom postu,ovdje je glavno da je popravljen algoritam za stvaranje random liste,ali isto mislim da je apstrakcija u programiranju jako važna,i zbog toga sam malo i preuredio unit(točkice zamjenjuju sve ostalo što ćeš ti još nadograditi).Iako, ni ovo nije baš apstrahirano kako treba,najbolje bi bilo kad bi napravio novi unit,ili još bolje biblioteku procedura i funkcija,koje bi radile sa random listama,i ti ih onda samo pozivao iz svog unit-a..nebi bilo loše ni napraviti novu klasu koja radi s random listama..ali to su sve samo različiti pristupi rješavanju problema,zasad je važno da je pristup koji se odabere točan..pozz
[/code][code][code]
[ viking13 @ 19.08.2007. 13:14 ] @
Citat:
TraktoRISTA Mijo: mmmmm sve je to fino,ali mislim da nije bila svrha da se napravi cijeli program(ili jest?)


Meni se čini da je dečko početnik i mislim da nisam pogrešio što sam mu napisao taj mali demo. Odabrao sam najjednostavniji način, jer mi je za to trebalo najmanje vremena i zato što će taj način najlakše da shvati, posebno uz komentare koje sam mu ostavio u kodu.

Nije bi bio cilj da mu napravim gotovu aplikaciju, jer da jeste, sigurno ne bi koristio TMediaPlayer nego DirectShow. :)

Citat:
TraktoRISTA Mijo:
prvo što mi se nesviđa je što je ovaj kod,umjesto da je u zasebnoj proceduri,on stoji u form.create,što znači da je moguće samo jednom napravit random listu,prilikom pokretanja programa,a novu pravi ponovnim pokretanjem programa.


Moj kod napravi radom listu na početku izvršavanja programa i kasnije samo vrti listu u krug. Znači ta radnom lista se vrti po redu. Kao kada u WinAmpu uradiš radomize liste, a onda pustiš da je pušta po redu.

Igor je tu ideju proširio time da se na kraju odsvirane playliste napravi nova i ponovi postupak.

Za implementaciju te ideje, potrebno je ukupno 2 minuta dodatnog posla, sa sve pravljenjem procedura od postojećeg koda, čak i bez refactoringa.

Ja to nisam uradio, zato što sam mislio da nema potrebe i da će sam to da stavi u proceduru ukoliko mu je potrebno da taj kod ponovo pozove.

Citat:
TraktoRISTA Mijo:
drugo,što ćeš vidit ako ovo testiraš na većim playlistama,je to da će se program jaaako usporit tražeći posljednje elemente,jer je recimo vjerojatnost da će od 100 brojeva bit izvučen jedan, 1/100, pa kad na kraju ostane recimo da se treba naći broj 89 da bi se izašlo iz petlje, program u svakom koraku imati vjerojatnost od 0,01 da taj broj i dobije..100 je možda i mala brojka,ali kod većih listi,ma kolko jak bio procesor,usporit će se program..osim ako nemaš neki procesor sretne ruke ;)


Teoretski ispravna logika, ali mislim da realno nije preterano bitno sem ako nije u pitanju veoma veliki broj elemenata ili neka jako stara mašina. Posebno što se ceo postupak odvija jednom ili u proširenom slučaju tek kad se odsvira cela lista. Što veća lista ponavljanje postupka je ređe.

Bez obzira na to, vredi razmisliti o tome o čemu pričaš.

Malo je problematičan način na koji si probao da objasniš sve ovo, posebno što se odnosi samo na proces pravljenja radnom liste, a iz ovoga deluje kao da se odnosi na celu aplikaciju.

Citat:
TraktoRISTA Mijo:
zamisli se jedan broj od 1 do n
element na toj poziciji zamjeni se sa zadnjim
u sljedećem koraku se zamisli broj od 1 do n-1 i zamjeni s predzadnjim,itd dok ne dođemo do jednog elementa


Zanimljiva ideja.

U početku mi je delovala kao da joj treba dorada, ali kad sam razmislio izgleda da je to to. Good work.

[ TraktoRISTA Mijo @ 19.08.2007. 19:10 ] @
Citat:
viking13:Malo je problematičan način na koji si probao da objasniš sve ovo, posebno što se odnosi samo na proces pravljenja radnom liste, a iz ovoga deluje kao da se odnosi na celu aplikaciju.


je istina,samo sam htjeo malko poboljšat generiranje rand liste,a iskomplicirao sam previše s procedurama..al sve u najboljoj namjeri ;)
pozz
[ AnaBaki @ 22.08.2007. 22:34 ] @
Zahvaljujem na pomoci.
Ipak sam pocetnik, kada sakupim celokupan rad u delfiju nema ni mesec dana.
Programiranje mi nije struka, ali pokusavam pomalo da se snadjem u delfju.
Jos kada bi nasao delfi bibliju i to na srpskom u pdf bilo bi mnogo dobro.

Ako zaskripi opet pisem nesto na forumu.

Pozdrav svima
[ TraktoRISTA Mijo @ 22.08.2007. 23:28 ] @
za to imaš mastering delphi 7 od marco cantu(imaš na netu,može se skinit na komp),ali ja bih preporučio da kupiš srpski prjevod,izdanje kompjuter biblioteke(ne znam dal ima na netu,al bolje ti je papirnata verzija),zaista nije skupo za sadržaj koji nudi(ja sam nabavio za 99 kuna)..
a tu ti je i delphi help,koji ti može jaaaaako pomoć kao početniku,sam ak znaš šta tražiš ;)..ima puno primjera iz kojih možeš dosta toga naučit.. ima tu i druge literature,da ne nabrajam,a ja bih ti još preporučio da pročitaš sagu o oop koju možeš naći ovdje na forumu,kao odličan uvod u objektno programiranje općenito..

poz
[ lordy007 @ 25.08.2007. 17:06 ] @
Citat:
TraktoRISTA Mijo: za to imaš mastering delphi 7 od marco cantu(imaš na netu,može se skinit na komp),ali ja bih preporučio da kupiš srpski prjevod,izdanje kompjuter biblioteke(ne znam dal ima na netu,al bolje ti je papirnata verzija),zaista nije skupo za sadržaj koji nudi(ja sam nabavio za 99 kuna)..
a tu ti je i delphi help,koji ti može jaaaaako pomoć kao početniku,sam ak znaš šta tražiš ;)..ima puno primjera iz kojih možeš dosta toga naučit.. ima tu i druge literature,da ne nabrajam,a ja bih ti još preporučio da pročitaš sagu o oop koju možeš naći ovdje na forumu,kao odličan uvod u objektno programiranje općenito..

poz


odlican post :)
samo jedno pitanje ...j imam delphi 2005 i Delphi 2007 for win32...pa ta mastering delphi 7 je za delphi 7 jel tako.? ili razlike izmedju delphi 7 i te novije verzije nije tako znacanj i moze se sve to nauciti i u 2005 i 2007?

[Ovu poruku je menjao lordy007 dana 25.08.2007. u 18:23 GMT+1]
[ TraktoRISTA Mijo @ 26.08.2007. 22:59 ] @
svaka nova verzija delphia je nadogradanja stare,s novim tehnologijama i dopunama starih..tak da sve što vrijedi za delphi 7(pogotovo osnovne stvari od kojih trebaš krenit)vrijede i za delphi 2005/2007..tak da će ti mastering delphi 7 bit sasvim dobar početak(a i mnogo,mnogo više, ipak je to knjiga od preko 1000 strana ;) )..samo nemoj krenit naglo..polako i sve će bit,možda bi bilo dobro da se najprije upoznaš s pascalom(ima od istog autora essential pascal,a ima i masa domaćih knjiga..)i onda dalje..pozz
[ viking13 @ 29.08.2007. 16:00 ] @
Citat:
lordy007: odlican post :)
samo jedno pitanje ...j imam delphi 2005 i Delphi 2007 for win32...pa ta mastering delphi 7 je za delphi 7 jel tako.? ili razlike izmedju delphi 7 i te novije verzije nije tako znacanj i moze se sve to nauciti i u 2005 i 2007?


Jeste da je offtopic, ali je ipak Delphi. :)

Razlika između knjiga Mastering D7 i Mastering D2005 je u tome što knjiga Mastering D2005, obrađuje i .net programiranje.

Moj predlog ti je da ipak uzmeš Mastering D2005, jer ćeš na taj način naučiti i nešto o .net-u.

Razlike između D2005 i D2006 imaš na sajtu autora kao e-book.

Knjiga Mastering D2006 ne postoji, a da li će se pojaviti knjiga za D2007 ili samo e-book, kao za D2006, stvarno ne znam.

Edit:

Da li neko od moderatora može da podeli temu?
[ lordy007 @ 30.08.2007. 01:47 ] @
hvala ti puno. al za .NET imam knige od xavier pacheko Delphi for .NET ali prvo sto ce uradit je da procitam delphi za 21 dan pa mastering 7 ili 2005 ako uspem a ja nadzem na netu... pa cu poceti izucuvanja .NET profesionalno :P
[ TraktoRISTA Mijo @ 30.08.2007. 02:24 ] @
to ti je dobar plan..samo nemoj upast u zamku kao većina koji nešto žele instant naučit..dakle,samo polako i s vremenom će sve doć..ak si početnik,nemoj o .net i drugim tehnologijama razmišljat barem idućih pola godine..upoznaj osnove,ak treba delphi za 21 dan nek traje i 42 dana ;),al usvoji to dobro..et sretno!

usput,nisam nikakav stručnjak,al ovo gore napisano znam iz iskustva ;),i svog a i drugih..