Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

imam jedan problem...

[es] :: Pascal / Delphi / Kylix :: imam jedan problem...

[ Pregleda: 3046 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Floppy

Član broj: 58142
Poruke: 34
*.160.eunet.yu.

ICQ: 243
Sajt: h1.ripway.com/vipersoft


Profil

icon imam jedan problem...19.07.2006. u 21:41 - pre 216 meseci
...e, ovako....Imam 3 Edit-a i jedan listBox. Kad u Edit1 upisem npr. ime treba da mi u listbox-u stavi to ime(to znam da uradim) ,a kada u edit2 upisem npr. sifru treba nekako da je "poveze" sa imenom, a u edit3 treba da ukucam sifru za ime iz listbox-a.
evo da pojasnim...Recimo da u listbox-u imam tri imena,Pera,Mika i Nika,i da svak od njih ima svoju sifru(1,2,3), sada kad pera u edit3 ukuca svoju sifru(1) npr.treba da mu pokaze messageBox...znaci kako da kreiram vise naloga...u listBox-u bi trebalo da budu imena naloga i kada selektujem neki i upisem sifru(za taj nalog) trba da izbaci npr. MessageBox.
Nadam se da ste razumeli sta sam hteo da kazem :/
ako mozete da mi pomognete bio bi vam veoma zahvalan....
Ko ne zna, a misli da zna
Kloni ga se
Ko ne zna i zna da ne zna
Pomogni mu
Ko zna, a misli da ne zna
Postuj ga
Ko zna i zna da zna
Idi njegovim stopama
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: imam jedan problem...19.07.2006. u 23:43 - pre 216 meseci
> ...e, ovako....Imam 3 Edit-a i jedan listBox. Kad u Edit1 upisem npr. ime treba da mi u listbox-u stavi to ime(to znam da uradim) ,a kada u edit2 upisem npr. sifru > treba nekako da je "poveze" sa imenom, a u edit3 treba da ukucam sifru za ime iz listbox-a.

Nisam siguran da razumem šta želiš, ali možda je AddObject metoda ono što tražiš.
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: imam jedan problem...20.07.2006. u 02:20 - pre 216 meseci
Citat:

...e, ovako....Imam 3 Edit-a i jedan listBox. Kad u Edit1 upisem npr. ime treba da mi u listbox-u stavi to ime(to znam da uradim) ,a kada u edit2 upisem npr. sifru treba nekako da je "poveze" sa imenom, a u edit3 treba da ukucam sifru za ime iz listbox-a.

Pozdrav,

budi malo jasniji i precizniji... Nemoj samo nabacati reči, napravi tako da ima smisla kad se čita.

BTW, ako ima smisla, a ja nisam razumeo, izvinjavam se.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

Floppy

Član broj: 58142
Poruke: 34
*.96.eunet.yu.

ICQ: 243
Sajt: h1.ripway.com/vipersoft


Profil

icon Re: imam jedan problem...20.07.2006. u 11:30 - pre 216 meseci
Skinite New Folder.zip...pa otvorite u Delphi i mozda ce vam biti jasnije

Ko ne zna, a misli da zna
Kloni ga se
Ko ne zna i zna da ne zna
Pomogni mu
Ko zna, a misli da ne zna
Postuj ga
Ko zna i zna da zna
Idi njegovim stopama
Prikačeni fajlovi
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.neobee.net.



Profil

icon Re: imam jedan problem...20.07.2006. u 12:19 - pre 216 meseci
Pozdrav,

ne znam šta će ti to(S TListBox), ali kreiranje naloga i memorisanje, mislim da treba
odraditi sa tabelom iz BP. Znači, u tabelu memorišeš Korisnicko_Ime
i Sifru i pri pokretanju programa tražiš unos u TEdit (Korisnicko_Ime)
a u drgi TEdit (Sifru).
Postoji varijanta i s ovim, ali moraš kreirati i jedan .txt fajl koji će pamtiti
podatke iz TListBox-a.
Sve zavisi s čim i šta radiš, ako radiš s BP, onda napravi tabelu sa korisničkim nalozima.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

Floppy

Član broj: 58142
Poruke: 34
*.53.eunet.yu.

ICQ: 243
Sajt: h1.ripway.com/vipersoft


Profil

icon Re: imam jedan problem...20.07.2006. u 15:00 - pre 216 meseci
Jel mozes da mi uradis neki primercic, da vidim kako to izgleda(sa BP)....
Ko ne zna, a misli da zna
Kloni ga se
Ko ne zna i zna da ne zna
Pomogni mu
Ko zna, a misli da ne zna
Postuj ga
Ko zna i zna da zna
Idi njegovim stopama
 
Odgovor na temu

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.neobee.net.



Profil

icon Re: imam jedan problem...20.07.2006. u 16:15 - pre 216 meseci
Pogledaj za početak ovde: http://www.torry.net/pages.php?id=313 , ima stvarno zanimljivih stvari.
Someone's sitting in the shade today because someone planted a tree a long time ago.
 
Odgovor na temu

inherited
Novi Sad

Član broj: 95516
Poruke: 219
*.neobee.net.



Profil

icon Re: imam jedan problem...21.07.2006. u 19:48 - pre 216 meseci
Cao

Pogledao sam na Torry-ju i stvarno ima svega... Ali, posto nemam velikog iskustva, gotove komponente mi ne odgovaraju bas, jer ne kontam sta i kako funkcionise. Pa, ajde, pomozite, da, za pocetak, napravimo sami nesto.

Pretpostavljam da treba u bazi prvo napraviti tabelu sa poljima( User_Name, User_Password ). Treba nam, dalje, forma za unos korisnika, kojoj pristupa Super_User(administrator) iz MainForm, a pri pokretanju programa mala forma na kojoj su dva TEdit-a, za User_Name i User_Password, kao i TButton(OK) i TButton(Cancel)???
TButton(OK) proverava u bazi uslov i ako zadovoljava ulazimo a ako ne javlja se poruka o nezadovoljenju uslova, a TButton(Cancel) obustavlja ulaz u program.

Moze li neko?
 
Odgovor na temu

doroz
Zoro Zoro

Član broj: 37127
Poruke: 39
*.adsl.net.t-com.hr.



Profil

icon Re: imam jedan problem...01.08.2006. u 13:44 - pre 215 meseci
Ovako...

Najprije trebas znati koju bazu koristi, ako namjeravas koristi bazu za to...

Sve u svemu... ako koristiz baze onda napravis tablicu kao sta si naveo
Prilikom OnShow glavne forme napuni listbox sa imenima iz tablice

Ime tablice: Korisnici, Tablica ima polja: NAZIV_KORISNIKA, SIFRA_KORISNIKA i stavis primary key na NAZIV_KORISNIKA tako
da ti se ne ponavljaju imena...

OnShow punjenje...
Otvori tablicu... (primjer dataset-a za Interbase)
Korisnici.Close;
Korisnici.SelectSQL.Text := 'select * from korisnici order by NAZIV_KORISNIKA';
Korisnici.Open;

ListBox1.Clear;
While not Korisnici.Eof do
begin
ListBox1.Items.Add(Korisnici.FieldByName('NAZIV_KORISNIKA').AsString);
Korisnici.Next;
end;

...Znaci sad smo napunili listbox

Provjera sifre nakon sto se klikne na dugme

OnClick dugmeta
Korisnici.CLose;
Korisnici.SelectSQL.Text := 'select * from korisnici where naziv_korisnika = ' +
QuotedStr(ListBox1.Items[ListBox1.ItemIndex]) + ' and sifra_korisnika = ' +
QuotedStr(Edit3.Text);
Korisnici.Open;
If Korisnici.RecordCount = 0 then
ShowMessage('Šifra je pogrešno unesena!');
 
Odgovor na temu

inherited
Novi Sad

Član broj: 95516
Poruke: 219
*.neobee.net.



Profil

icon Re: imam jedan problem...01.08.2006. u 23:50 - pre 215 meseci
OK, otprilike, to je to.
Napravio sam da se pre MainForm pojavljuje forma, kao splash screen.
Code:

program Project1;

uses
  Forms,
  Main in 'Main.pas' {MainForm},
  Unit1 in 'Unit1.pas' {Form1},

{$R *.res}

begin
  Form1 := TForm1.Create(nil);
  Form1.ShowModal;
  Form1.Free;
  Application.Initialize;
  Application.Title := '  Project';
  Application.CreateForm(TMainForm, MainForm);
  Application.Run;
end.

Na toj formi koja se pojavljuje pre glavne postavio sam TADOQuery i TDataSource i povezao
sa bazom ( Access ). Medjutim, kojiko sam skontao na osnovu greske koju delphi prijavi ne
moze se na tu formu postaviti TADOQuery i TDataSource, niti te komponente pozivati s te
forme.

Znaci, kako da napravim da se pojavi prvo prozor za upit imena i lozinke, pa potom da se
otvori MainForm? Na osnovu primera doroz?
 
Odgovor na temu

doroz
Zoro Zoro

Član broj: 37127
Poruke: 39
*.adsl.net.t-com.hr.



Profil

icon Re: imam jedan problem...02.08.2006. u 07:41 - pre 215 meseci
Mozes staviti sve to na OnShow glavne forme...

Code:

Form1 := TForm1.Create(Self);
Form1.ShowModal;

... ovdje na Formu ide ona provjera i ako je sifra pogresna onda


Mozda je jos bolji naci da ako imas dugme odustani i postavis mu ModalResult na mrCancel onda
zatavars programa ako korisnik odiustane

Code:

Form1 := TForm1.Create(Self);
If Form1.ShowModal = mrCancel then PostMessage(Self.handle, WM_CLOSE, 0, 0);
 
Odgovor na temu

inherited
Novi Sad

Član broj: 95516
Poruke: 219
*.neobee.net.



Profil

icon Re: imam jedan problem...02.08.2006. u 10:51 - pre 215 meseci
Odradio sam i funkcionise, ali:
Code:

Korisnici.CLose;
Korisnici.SelectSQL.Text := 'select * from korisnici where naziv_korisnika = ' +
QuotedStr(ListBox1.Items[ListBox1.ItemIndex]) + ' and sifra_korisnika = ' +
QuotedStr(Edit3.Text);
Korisnici.Open;
If Korisnici.RecordCount = 0 then
ShowMessage('Šifra je pogrešno unesena!');

Sta da radim ako je uslov, sifra, ispravna? Kako da uklonim formu(OnShow)? Posto sam
na Form1.OnShow odradio:
Code:

Form2 := TForm1.Create(Self);
Form2.ShowModal;

Znaci, prvo se pojavi Form2, pa ako odustanem, program terminate, a ako je sifra ispravna
treba da se Form2 zatvori a Form1 pojavi?

Nadam se da nisam previse zakomplikovao?
 
Odgovor na temu

doroz
Zoro Zoro

Član broj: 37127
Poruke: 39
*.adsl.net.t-com.hr.



Profil

icon Re: imam jedan problem...02.08.2006. u 12:27 - pre 215 meseci
Code:

Korisnici.CLose;
Korisnici.SelectSQL.Text := 'select * from korisnici where naziv_korisnika = ' +
QuotedStr(ListBox1.Items[ListBox1.ItemIndex]) + ' and sifra_korisnika = ' +
QuotedStr(Edit3.Text);
Korisnici.Open;
If Korisnici.RecordCount = 0 then
ShowMessage('Šifra je pogrešno unesena!') else Close;


...ali tu ti se javlja problem druge naravi... ako korisnik sam zatvori formu onda se nastavlja dalje koda je sifra ispravno unesena...

Tako da mozes na onu formu staviti jos jednu provjeru na OnClose... ustvari isu kao i na ButtonClick.... samo je malo promjenis i na glavnu formu stavi varijablu i label:
Code:

public
   bNastavi: Boolean
end;

...

TFMain.OnShow(Sender);
label VratiSe;
begin
   VratiSe:
   Form1 := TForm1.Create(Self);
   If Form1.ShowModal = mrCancel then PostMessage(Self.handle, WM_CLOSE, 0, 0);
   If bNastavi = False then goto VratiSe;
end;


... a na form1 on close ti izgleda ovako

Code:

Korisnici.CLose;
Korisnici.SelectSQL.Text := 'select * from korisnici where naziv_korisnika = ' +
QuotedStr(ListBox1.Items[ListBox1.ItemIndex]) + ' and sifra_korisnika = ' +
QuotedStr(Edit3.Text);
Korisnici.Open;
If Korisnici.RecordCount = 0 then fMain.bNastavi := False else fMain.bNastavi := True;

 
Odgovor na temu

inherited
Novi Sad

Član broj: 95516
Poruke: 219
*.neobee.net.



Profil

icon Re: imam jedan problem...02.08.2006. u 12:46 - pre 215 meseci
Nisam te bas razumeo. Ovako, imam TForm1 (MainForm) i TForm2.
Na TForm1 sam obradio OnShow:
Code:

//logovanje u aplikaciju
procedure TForm1.FormShow(Sender: TObject);
begin
  Form2 := TForm2.Create(Self);
  //ako zelimo odustati od logovanja u program
  if Form2.ShowModal = mrCancel then PostMessage(Self.handle, WM_CLOSE, 0, 0);
  Form2.Free;
end;

Tad mi se pojavi forma za logovanje. Kad u TListBox1 izaberemo korisnicko_ime
onda u TMaskEdit1 se unosi sifra_korisnika, to sam obradio ovako:
Code:

procedure TForm2.MaskEdit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (Key = VK_RETURN) and (MaskEdit1.Text <> '') then  begin
//pretraga tabele
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM Korisnici WHERE Naziv_Korisnika='+ QuotedStr(ListBox1.Items[ListBox1.ItemIndex])+ 'AND Sifra_Korisnika='+ QuotedStr(MaskEdit1.Text));
  ADOQuery1.Open;

//provera ispravnosti sifre za odredjeno lice - korisnika
  if ADOQuery1.RecordCount=0 then begin
    //ako nije ispravna
    ShowMessage('Sifra koju ste uneli nije ispravna!');
    MaskEdit1.Clear;
    MaskEdit1.SetFocus
    end
  else
    //ako postoji korisnik s takvom sifrom onda:

 end;
end;

Ukoliko sifra nije ispravna iz koda se vidi poruka o gresci. Ostalo mi je da
odradim ukoliko je sifra ispravna sta dalje. Da, kad stavim close posle
else program se zatvara.
Meni treba samo ako je ispunjen uslov(sifra) da se zatvori TForm2 i otvori
TForm1 (MainForm)?

 
Odgovor na temu

badam

Član broj: 78553
Poruke: 97
62.108.111.*



+2 Profil

icon Re: imam jedan problem...02.08.2006. u 20:48 - pre 215 meseci
ajd da se upletem

1. zasto PostMessage... umesto prosto Close
2. bez problema Form2 moze da bude u Auto Create, pa Ti ne treba ni Form2:=TForm2.create(Self).

Code:

procedure TForm1.FormShow(Sender: TObject);
begin
  //ako zelimo odustati od logovanja u program
  if Form2.ShowModal = mrCancel then 
    Close
end;


3. U gornjem kodu promeni if Form2.ShowModal = mrCancel then u if Form2.ShowModal <> mrOK then i u Form2 postavi da je mrOK samo kad je RecordCount>0. Tako ce se program nastaviti samo ako su uneti ispravni username i password, a pri kliku na Cancel ili zatvaranju Form2 program ce se terminirat.

Code:

...
  else
    ModalResult:=mrOK;
    //ako postoji korisnik s takvom sifrom onda:



Nadam se da sam pomogao.

Pozz
 
Odgovor na temu

inherited
Novi Sad

Član broj: 95516
Poruke: 219
*.neobee.net.



Profil

icon Re: imam jedan problem...03.08.2006. u 01:42 - pre 215 meseci
Da, ovo je pomoglo... Hvala puno...
 
Odgovor na temu

doroz
Zoro Zoro

Član broj: 37127
Poruke: 39
*.adsl.net.t-com.hr.



Profil

icon Re: imam jedan problem...03.08.2006. u 07:13 - pre 215 meseci
Close ne moze ici zato jer ne mozes zatvarti formu u OnShow proceduri
 
Odgovor na temu

badam

Član broj: 78553
Poruke: 97
62.108.111.*



+2 Profil

icon Re: imam jedan problem...04.08.2006. u 03:44 - pre 215 meseci
meni sledeci kod radi:

Code:

procedure TForm1.FormShow(Sender: TObject);
begin
  if (MessageDlg('zatvori?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
    Close
end;
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: imam jedan problem...

[ Pregleda: 3046 | Odgovora: 17 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.