Znanima me če se da z goto stavkom skočiti iz ene procedure v drugo, ter kje in kako ga deklariraš. (skoki znutraj procedure mi delajo brez težav a skoka v drugo proceduro mi ne uspe izvesti).
Hvala.
P.S. Aja obe procedure med katerima bi rad izvedel skok sta na ister foromu.
Delphi In Goto
Ustvaril
pmatvos
, apr 05 2012 13:36
Odgovorov v temi: 8
#5
Objavljeno 17 april 2012 - 07:46
La La La
, vem vse to nam je Pehta (Alenka Pačnik Gabrovec) celo sredno šolo težila, da je uporaba tega strogo prepovedana. Klic procedure ne pride v poštev. Imam en zelo specifičen primer kjer so slabosti goto stavka v bistvo prednosti, tako da bi vseeno prosil če kdo ve kako se da goto uporabljat globalno se pravi skok iz ene procedure v drugo.
#8
Objavljeno 17 april 2012 - 10:26
Gre se za zaščito za aplikacijo, ki jo razvijam. zaščita deluje super. Ko sem jo testiral je nikakor nisem mogel razbiti razen tako da sem z namensko aplikacijo prišel do izvorne kode, no in če prideš do kode je zadeva preveč preprosta za razbrat, zato imam željo z uporabo goto stavkov zadevo konkretno zakomplicirati, jaz se bom znašel todi z 100 skoki ker imam svoj sistem označevanja, ki temelji na delu(Dominic O'Brien-a) nekdo drug pa bo imel delo konkretno oteženo.. Kaj več pa žal nemorem povedat, ker če vse razkrijem zadeva nebo več uporabna. Tako da bi še 1x prosil če kdo ve kako uporabiti goto globalno.
Hvala
Hvala
#9
Objavljeno 17 april 2012 - 11:06
Potem imaš pa "design flaw" že pri izbiri programskega jezika. 
Delphi se da "dekompajlat" oz. se da vse dekompajlat, ampak recimo C in C++ imata nekoliko bolj kompleksne algoritme za kompajlanje programa in ju je zato tudi težje(oz. nemogoče) spraviti nazaj v originalno obliko.
http://delphi.about..../goto_label.htm
Predvsem ta del dobro preberi:
Oz. pozabi na skoke z GOTO iz ene proceduro v drugo.
Sploh bila bi to zelo slaba praksa če bi se to dalo, ker vsaka(skoraj) procedura ima neke parametre, katere z GOTO ne moreš podati.
Ker pa vidim da si trdno prepričan da to hočeš, lahko pa pokličeš proceduro v katero hočeš skočiti, ji podaš neki parameter z katerim poveš kam mora v sami proceduri skočiti in potem tam uporabiš GOTO.
Delphi se da "dekompajlat" oz. se da vse dekompajlat, ampak recimo C in C++ imata nekoliko bolj kompleksne algoritme za kompajlanje programa in ju je zato tudi težje(oz. nemogoče) spraviti nazaj v originalno obliko.
http://delphi.about..../goto_label.htm
Predvsem ta del dobro preberi:
Luckily, even though Goto can be used for bad ideas, there are some restrictions in using Goto:
- You can "Goto" only inside the same scope block.
- You cannot "Goto" out of a function of procedure.
- You cannot jump into or out of a try/finally or try/except block.
Oz. pozabi na skoke z GOTO iz ene proceduro v drugo.
Sploh bila bi to zelo slaba praksa če bi se to dalo, ker vsaka(skoraj) procedura ima neke parametre, katere z GOTO ne moreš podati.
Ker pa vidim da si trdno prepričan da to hočeš, lahko pa pokličeš proceduro v katero hočeš skočiti, ji podaš neki parameter z katerim poveš kam mora v sami proceduri skočiti in potem tam uporabiš GOTO.
Dodaj odgovor
0 član(ov) bere to temo
0 članov, 0 gostov, 0 anonimnih uporabnikov











