Šta je novo?

Procedure u Delphi-ju

  • Začetnik teme Začetnik teme Logen
  • Datum pokretanja Datum pokretanja

Logen

Slavan
Učlanjen(a)
20.12.2009
Poruke
1,688
Poena
375
Moja oprema  
Laptop
Macbook Air M1, Framework 13
Mobilni telefon
iPhone 17 Pro
Pristup internetu
  1. Optički internet
Kako da napisem proceduru u kojoj ce odredjena komponenta nesto da uradi a ne da dobijem neku vrednost? Problem mi je sa parametrima(ulaznim i izlaznim). Trebam da ucitam neke fajlove u filelistbox.
 
procedure Nesto(MojaKompa: TComponent)
begin
UradiStaTreba();
End;
U cemu je problem?
 
Probao sam ali ne mogu da koristim svojstva te komponente. Recimo ovako

procedure nesto(filelistbox1:Tcomponent);
var
a:string;
begin
filelistbox1.delete(a);
end;

sad on ne poznaje property delete...
 
A pa naravno da ne moze tako 🙂 Morace ovako onda:
procedure nesto(filelistbox1:TFileListBox);
var
a:string;
begin
filelistbox1.delete(a);
end;
Sad se ne secam da li se komponente zvala TFileListBox, ali stavi svejedno tip te kontrole i to je to.
 
To je to, hvala
 
Ako nisi siguran kog ce ti tipa biti komponenta, ali znas bar od koje ce poticati mozes i da mu ekspliciton navedes kog je tipa:

with Control as TFileListBox do begin
uradi nesto....
end;
 
Kako da izbegnem poruku koju po defaultu pokazuje komponenta kad je nesto lose uradjeno, npr. hocu da se konektujem na ftp server i unesem lose korisnicko/sifru i onda mi on izbaci njegovu poruku da su neispravni podaci. Mislim da se koristi try ali nisam siguran
 
Yep:
try
Komponente.UradiStaNeTrebaDaUradi;
Except
ENecesTvojErrorNegoMoj;
End;
🙂
 
probao ali nesto nece. evo koda
Kod:
begin
if idftp1.Connected then idftp1.Disconnect;
try
idftp1.Host:=adresa.text;
idftp1.Username:=korisnicko.text;
idftp1.Password:=sifra.text;
idftp1.Connect();
except
showmessage('Neispravni podaci');
end;
end;

treba da pokaze gresku samo u slucaju da su nisu tacni podaci
 
Procitaj dokumentaciju za Indy komponente... Lepo ti pise koji exception ce generisati koja greska... Takodje, da li si to isprobavao iz IDE ili tako sto pokrenes program? Ako si u IDE onda ce ti po defaultu uvek ispisati exception pa tek onda tvoju poruku... Probaj da ugasis IDE i da pokrenes exe... Dobices tvoju poruku... BTW onaj kod koji si napisao nije preterano koristan zato sto ne znas koja je greska u pitanju... Moze biti da adresa ne postoji ili da je user/pass pogresan a moze da bude i nesto sasvim deseto... Tebi ce uvek ispisati istu poruku...
 
Nije loše ni da povezivanje na ftp ubaciš u odvojen thread, čisto da program ne bi delovao šlogiran pri konektovanju.

Btw mislim da Connect ima neki boolean parametar, zaboravio sam tačno šta je, moguće active/passive konekcija, probaj i jedno i drugo (Connect(true) i Connect(false))
 
Poslednja izmena:
A sta pokaze uopste? "Neispravni podaci" ili pokaze neki drugi exception ili prvo exception pa "neispravni podaci"?
Prvo slucaj - ocigledno neispravni podaci 🙂
Drugi slucaj - ne bi smeo da se desi ako se ne pokaze i "neispravni podaci" posle toga (sto rekose gore, verovanto si u IDE-u pa on prikaze i exception message)
Treci slucaj - sigurno si u Delphi IDE-u.
 
Probao sam iz IDE-a, bez IDE-a radi. Ovo radim za maturski tako da mi nije potrebna neke preterana efikasnost, samo da sve funkcije rade
 
Iz IDE-a je normalno da vidis prvo exception pa onda tvoju poruku ali tu poruku ti IDE prikazuje (da javi da se desio exception, jer bi inace bio maskiran), nece se pojavljivati van njega.
 
Nazad
Vrh Dno