• 14 odgovora
  • 4.445 pregleda
Molim za pomoc oko pravljenja programcica 23.03.2009. u 09:56 · pre 214 meseci #1
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
Re: Molim za pomoc oko pravljenja programcica 23.03.2009. u 10:11 · pre 214 meseci #2
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?
Re: Molim za pomoc oko pravljenja programcica 23.03.2009. u 10:16 · pre 214 meseci #3
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.
Re: Molim za pomoc oko pravljenja programcica 23.03.2009. u 12:05 · pre 214 meseci #4
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.
Potpis
http://www.montaznekuce.rs
Re: Molim za pomoc oko pravljenja programcica 23.03.2009. u 12:13 · pre 214 meseci #5
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 :(
Re: Molim za pomoc oko pravljenja programcica 25.03.2009. u 00:43 · pre 214 meseci #7
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.
Re: Molim za pomoc oko pravljenja programcica 25.03.2009. u 02:16 · pre 214 meseci #8
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 :)
Re: Molim za pomoc oko pravljenja programcica 25.03.2009. u 03:24 · pre 214 meseci #9
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.
Re: Molim za pomoc oko pravljenja programcica 25.03.2009. u 10:03 · pre 214 meseci #10
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

Potpis
viking ®
Re: Molim za pomoc oko pravljenja programcica 25.03.2009. u 11:13 · pre 214 meseci #11
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.
Re: Molim za pomoc oko pravljenja programcica 25.03.2009. u 11:51 · pre 214 meseci #12
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


Re: Molim za pomoc oko pravljenja programcica 25.03.2009. u 12:07 · pre 214 meseci #13
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 :).
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme