[ alexandarciric @ 23.03.2009. 09:56 ] @
Pozdrav svima,
vidim da se dosta vas jako puno razume u sto u Delphi sto u programiranje, i zato vas profesionalce molim za pomoc.



Na slici se vidi kako bi to sve trebalo vizuelno da izgleda... ali recimo, da se ponedeljak,tj. ovo Nk koktel vuce iz fajla: ponedeljak.txt

Utork vuce iz fajla: utorak.txt

A ovaj sreda tj. combobox vuce iz fajla sreda.txt


A kada izvrsim izmenu sve to sacuva sto sam promenio na pomenute fajlove...

I inace struktura svakog od txt fajla treba da izgleda prikaz=pa zapis iz programa (tj. iz ovih promenjivih)

Nadam se da sam uspeo da objasnim sta mi zapravo treba, unapred se radujem svakoj pomoc.

Hvala, puno puno unapred svim ljudima koji imaju dobru volju za pomoc
[ stankons @ 23.03.2009. 10:11 ] @
Ne razumem sta ti zapravo treba?

Da ti neko napravi pomenuti program, zapeo si negde pa ti treba pomoc, ili sta?

Shvatio sam da si objasnio program, ali nisam shvatio konacno pitanje?
[ alexandarciric @ 23.03.2009. 10:16 ] @
Apsolutni sam pocetnik i u programiranju i u delphiju, razumem se oko flash-a i php-a ali voleo bi i ovo da savladam jer mi je potrebno bar ovo da znam kako bi zavrsio neku animaciju u flashu.

Ako si voljan da pomognes daj mi odgovor, da li je lakse objasniti kako da napravim ovo ili da mi uradis programcic a ja da na osnovu toga skontam kako se to zapravo radi .... :)

Inace, kako je u Ljubljani, imam sestru tamo, moram je obici.
[ .:Marvin:. @ 23.03.2009. 12:05 ] @
Za pocetak, treba da napises handler za OnChange dogadjaj Combo boxa. Znaci kad korisnik izabere dan iz combo boxa, da tvoj program nesto radi.
Uradi dvoklik na combo box i dobices kostur f-je.

E sad, tu treba da napravis da ti cita neke podatke iz fajla, koji ce se zvati npr. combobox1.text '.txt'. To bi znacilo da ako u combo boxu pise 'sreda', fajl ti se zove sreda.txt.
Oko citanja iz fajlova konsultuj druge teme na ovom forumu, bilo ih je dosta.

Ako zaglavis, pitaj dalje.
[ alexandarciric @ 23.03.2009. 12:13 ] @
Lajik i totalni pocetnik sam za to, i sad kad sam probao nesto i da uradim totalno sam se pogubio.

Mislim da nikako necu moci da napravim ono sto sam zamislio, tako da cu morati na zalost da odustanem :(
[ bojan21 @ 24.03.2009. 03:22 ] @
Evo napisao sam ti na brzinu program:

http://uploading.com/files/SMW415NH/Test1.zip.html (download link)

ali nemoj ocekivati da radi isto sto si ti zamislio. Jednostavno pogledaj kod pa izvuci sta ti treba :). Veruj mi, uopste nije tesko.
[ alexandarciric @ 25.03.2009. 00:43 ] @
Fenomenalan si, puno ti hvala, sada polako i kontam neke stvari. Svaka cast u kodu su i uputstva sto mi posebno pomaze.

Jos jednom puno hvala, ako negde zapne zakukacu.
[ alexandarciric @ 25.03.2009. 02:16 ] @
E ovo sam sve skonto, bice od mene nesto jednog dana :D A ako mi je struktura txt fajlica sledeca:

Code:
&danas=Danas&vreme=21:00&emisija=Manemanija&autor=Mane


Kako da mi Edit1 pise i cita izmedju "&danas=" i "&" ...?
U kodu: s:= copy(s, pos('=', s)+1, Length(s)- Length('prikaz')); izmenim umesto prikaz danas, ali mi on cita sve pa i iza danas, sigurno treba da ga ogranicim dokle da cita, ali ja basak ne znam kako :)

I ako imam ComboBox i u njemu recimo 3 items: Danas Juce Sutra .... moze li kad kliknem na Danas on recimo zapise Promenada a kad ucetavam to Promenada ucitava kao "Danas"

Postoji li mogucnost da kad stisnem neko dugme pusti se externi waw ili mp3 fajl i da nicemu sem toga dugme ni ne sluzi :)
[ bojan21 @ 25.03.2009. 03:24 ] @
1.Kako da mi Edit1 pise i cita izmedju "&danas=" i "&" ...?
U kodu: s:= copy(s, pos('=', s)+1, Length(s)- Length('prikaz')); izmenim umesto prikaz danas, ali mi on cita sve pa i iza danas, sigurno treba da ga ogranicim dokle da cita, ali ja basak ne znam kako

E ovako, prvo treba da shvatis kako rade funkcije "pos" i "copy":


a. POS vraca poziciju nekog podstringa u datom stringu, na primer: pos('phi', 'delphi') vraca 4, pos('de', 'delphi') vraca 1, pos('pgi', 'delphi') vraca 0 posto podstring 'pgi' ne postoji u stringu 'delphi';


b. COPY funkcija uzima tri parametra, respektivno: string iz koga hoces da kopiras neki deo, pozicija od koje pocinjes da kopiras (prvo znak u stringu ima poziciju 1), i broj znakova koje kopiras. U mom kodu stoji:
Code:

s:= copy(s, pos('=', s)+1, Length(s)- Length('prikaz'));

to znaci da iz stringa s, od pozicije koja se nalazi posle znaka '=' (zato stoji ovo +1 posle poziva POS - ne treba da procitas '='), kopiras broj znakova koji je jednak duzini celog stringa (to je Length(s)) minus duzina stringa 'prikaz' (to je Length('prikaz'); tu si mogao da napises i: Length(s)- Length('prikaz='), i to bi bio tacan broj znakova koje treba da kopiras, ali ako je taj broj veci od duzine stringa, kopirace se sve do kraja stringa, pa u ovom slucaju nije bitno sta si stavio od ta dva (mogao si i samo Length(s) da stavis).

E nadam se da si to razumeo, ako nisi procitaj help, lepse je objasnjeno .




2. Kako da mi Edit1 pise i cita izmedju "&danas=" i "&" ...?

Ako si ukapirao ovo gore onda ti je lako da shvatis da se deo stringa izmedju "&danas=" i "&" cita ovako:

Code:

s:= '&danas=Danas&vreme=21:00&emisija=Manemanija&autor=Mane';
Edit1.Text:= copy(s, pos('=', s)+1, pos('&vreme', s) - Length('&danas=') - 1);





3. I ako imam ComboBox i u njemu recimo 3 items: Danas Juce Sutra .... moze li kad kliknem na Danas on recimo zapise Promenada a kad ucetavam to Promenada ucitava kao "Danas"

Naravno da moze:

Code:

//zapisivanje
procedure TForm1.ComboBox1Change(Sender: TObject);
var t: TextFile;
begin
assignFile(t, 'moja_datoteka.txt');
rewrite(t);

if (ComboBox1.Text = 'Danas') then WriteLn(t, 'Promenada')
  else if (ComboBox1.Text = 'Sutra') then WriteLn(t, 'Limunada')
    else if (ComboBox1.Text = 'Juce') then WriteLn(t, 'juce nisam pio :)');

CloseFile(t);
end;


Code:

//ucitavanje
procedure TForm1.FormCreate(Sender: TObject);
var t: TextFile; s: string;
begin
assignFile(t, 'moja_datoteka.txt');
reset(t);
ReadLn(t, s);

if (s = 'Promenada') then ComboBox1.Text:= 'Danas'
  else if (s = 'Limunada') then ComboBox1.Text:= 'Sutra'
    else if (s = 'juce nisam pio :)') then ComboBox1.Text:= 'Juce';

CloseFile(t);
end;



Ako nesto nije jasno u tom kodu, slobodno pitaj, napravicu ti aplikaciju da vidis kako to radi.




3. Postoji li mogucnost da kad stisnem neko dugme pusti se externi waw ili mp3 fajl i da nicemu sem toga dugme ni ne sluzi

Naravno da postoji. Evo kako klikom na neko dugme mozes pokrenuti bilo koji fajl:

Code:

uses ShellApi; //moras da dodas 'ShellApi' u 'uses' listu koja se nalazi na vrhu koda programa, inace program nece 'videti' funkciju ShellExecute;

procedure TForm1.Button3Click(Sender: TObject);
begin
ShellExecute(Handle, 'open','C:\Program Files (x86)\Guitar Pro 5\GP5.exe', nil, nil, SW_SHOWNORMAL);
end;


naravno, umesto ove adrese za pokretanje GP5.exe ti stavis adresu (tj. putanju) do datoteke koju hoces da pokrenes.




Eto to ti je to, ne mogu vise da pisem, vec je svanulo .


edit: ovo gore za pustanje mp3 fajla ce pokrenuti default audio plejer za pustanje. Ako hoces da se zvuk cuje direktno iz tvog programa (znaci bez pokretanja audio playera), koristi MediaPlayer komponentu koja dodje uz delphi.
[ viking13 @ 25.03.2009. 10:03 ] @
A šta ćete da radite kad se emisija zove recimo "Mane & manija"?

Nađi neki drugi separator, moj predlog je da koristiš recimo "|".

Code:

danas=Danas|vreme=21:00|emisija=Mane & manija|autor=Mane

[ bojan21 @ 25.03.2009. 11:13 ] @
A šta ćete da radite kad se emisija zove recimo "Mane & manija"?

Zasto bi to bio problem?? On ne trazi pozicije znaka '&' vec citave reci koja oznacava podatak. Ako se emisija zove "Mane & manija", on ce naci poziciju stringova '&emisija' i '&autor', a zatim procitati odgovarajuci deo stringa izmedju.
[ alexandarciric @ 25.03.2009. 11:51 ] @
Code:
Code:

//zapisivanje
procedure TForm1.ComboBox1Change(Sender: TObject);
var t: TextFile;
begin
assignFile(t, 'moja_datoteka.txt');
rewrite(t);

if (ComboBox1.Text = 'Danas') then WriteLn(t, 'Promenada')
  else if (ComboBox1.Text = 'Sutra') then WriteLn(t, 'Limunada')
    else if (ComboBox1.Text = 'Juce') then WriteLn(t, 'juce nisam pio :)');

CloseFile(t);
end;




Code:

//ucitavanje
procedure TForm1.FormCreate(Sender: TObject);
var t: TextFile; s: string;
begin
assignFile(t, 'moja_datoteka.txt');
reset(t);
ReadLn(t, s);

if (s = 'Promenada') then ComboBox1.Text:= 'Danas'
  else if (s = 'Limunada') then ComboBox1.Text:= 'Sutra'
    else if (s = 'juce nisam pio :)') then ComboBox1.Text:= 'Juce';

CloseFile(t);
end;




Ovo kad ubacim jednostavno ne radi... Treba li se na pocetku staviti neka promenjiva? Jer ovde mi kaze:
Code:
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    ComboBox1: TComboBox;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private


[ bojan21 @ 25.03.2009. 12:07 ] @
Hahaha pa naravno da ne radi kad si ti samo prepisao kod :). Kao sto vidis ja sam napisao dve funkcije:

Code:

procedure TForm1.ComboBox1Change(Sender: TObject);
begin
...
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
...
end;



Ali zaglavlja te dve funkcije nemas u "type" delu programa, pa program ne moze da prepozna funkcije. Evo pogledaj ovo sto si ti napisao:
Code:

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    ComboBox1: TComboBox;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);    //OK, ovo je u redu, zaglavlje funkcije TForm1.FormCreate imas :)
    procedure Button1Click(Sender: TObject);  //vidis, ovo je zaglavlje funkcije TForm1.Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);  //a ovo je zaglavlje funkcije TForm1.Button2Click(Sender: TObject);
  private


znaci, fali ti zaglavlje funkcije (procedure): TForm1.ComboBox1Change(Sender: TObject);

Mozes ga sam dodati tako sto ispod zaglavlja funkcije FormCreate dodas:
Code:

procedure ComboBox1Change(Sender: TObject);


ili jednostavnije, dva puto brzo klikni na ComboBox1 kontrolu na tvojoj formi i program ce sam da doda sve sto ti treba :).
[ alexandarciric @ 25.03.2009. 13:19 ] @
E sad sam se totalno izgubio :)

Majko mila
[ bojan21 @ 25.03.2009. 19:40 ] @
Daj posalji mi msn ID ili tako nesto, trebace mi sto godina da ovde objasnim tako prostu stvar