Umíme to s Delphi, 2. díl: Ahoj, světe!

Diskuze čtenářů k článku

Tytyk  |  20. 04. 2001 19:57

Středník na konci příkazu je "velmi důležitý" v jazyce C, protože tam slouží jako ukončovač příkazů, nikoliv však v Pascalu, kde slouží pouze jako oddělovač, takže pokud na něj zapomenete, nic se neděje, nemá v příkladu smysl.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Radek  |  20. 04. 2001 19:57

V tomhle konkrétním případem tam být nemusí - jeden příkaz před ENDem. Ale v okamžiku, kdy editujete zdroják a přesouváte řádky a bloky kódu, takové ulehčení jen komplikuje překlad a nakonec tam ty "ušetřené" středníky musíte dopsat. To je lepší, právě z uvedeného důvodu, psát ty středníky všude, kde to kompilátor snese.
Delphi nemaj chybu.

Souhlasím  |  Nesouhlasím  |  Odpovědět
OldSoldier  |  20. 04. 2001 19:57

Dělal jsi někdy v pascalu? Asi si trochu pleteš pojmy s dojmy. Středník zde skutečně oddělovač je !!!

Souhlasím  |  Nesouhlasím  |  Odpovědět
Tytyk  |  20. 04. 2001 19:57

Přečtěte si prosím můj příspěvek ještě jednou. Z Vaší reakce je vidět, že si pravděpodobně pletete více věcí...

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jirik  |  20. 04. 2001 19:57

Pan autor je zrejme programatorske prase.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Michal  |  20. 04. 2001 19:57

Jinak vetsinou hajim dobrou snahu redaktoru, ale tohle je opravdu moc.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Chita  |  20. 04. 2001 19:57

aneb zive uci delphi.
kdo se to opravdu uci, at tam radeji misto application.terminate napise form1.close;, pokud to je form1

Souhlasím  |  Nesouhlasím  |  Odpovědět
bird  |  20. 04. 2001 19:57

Moje řeč, ještě že na to nešli rovnou s ExitWindowsEx(EWX_FORCE + EWX_SHUTDOWN{POWEROFF}, 0)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Alex  |  20. 04. 2001 19:57

Když už, tak stačí Close.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jaroslav Bartos  |  20. 04. 2001 19:57

No, tak form1.close je z objektoveho pohledu naptosto spatne (zavirate konkretni instanci, kdyz si udelate jeste jedno okno od teto tridy tak byste z nej zavirat jine...), takze bud close; nebo self.close;. Ale co se spravnosti kodu tyka, je spravne pro ukonceni aplikace application.Terminate; nebo snad jeste Application.MainForm.Close;(ale to spise v nekterych spec. pripadech). Jinak doufam, ze autor clanku priste nauci menit nazvy komponent treba misto Button1 na btnClose a pod.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Václav Kadlec  |  20. 04. 2001 19:57

Ve složitější aplikaci, kde je větší množství komponent, je opravdu dobré pojmenovávat je jinak než implicitním očíslováním. V případě jediného tlačítka a nápisu však není označení Button1, Label1 nikterak matoucí. Ukázkový příklad neukazuje nic jiného, než co je nutné k demonstraci práce v Delphi (např. formulář má standardní velikost, přestože je zbytečně velký; jmenuje se Form1, přestože to není zrovna nejvhodnější název aplikace, apod.) Zmínku o "vhodnějším" pojmenování komponent jsem plánoval do kapitoly, která bude o správě většího projektu, ale máte zřejmě pravdu, že jsem ji měl napsat již nyní.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Václav Kadlec  |  20. 04. 2001 19:57

Application.terminate vyvolá funkci API PostQuitMessage, sloužící ke korektnímu ukončení aplikace. Funkce terminate je také volána automaticky, uzavře-li se hlavní formulář. V našem případě by form1.close (i samotné close) mělo úplně stejný efekt, ale obecně je pro ukončení ceké aplikace skutečně vhodnější volat přímo funkci terminate (byť přirovnání ke kanónu na vrabce je celkem příhodné )

Souhlasím  |  Nesouhlasím  |  Odpovědět
Pascalista  |  20. 04. 2001 19:57

Ja uz jsem nejake aplikace v Delphi (za poslednich cca 5 let) napsal a obecne jsem vzdycky za vhodnejsi povazoval {Self.}Close. Application.Terminate povazuji za zoufalstvi

Na programovani se mi libi znovuvyuzitelnost kodu. To tady zrejme neplati, protoze kdyz da nekdo na stisknuti tlacitka pro zavreni okna Application.Terminate a pozdeji to okno nebude chtit pouzit jako hlavni, co zjisti? Ze se mu program chova divne, bude muset najit Application.Terminate, rekne si "no to byla blbost " a pak tam da "Close"

Souhlasím  |  Nesouhlasím  |  Odpovědět
Václav Kadlec  |  20. 04. 2001 19:57

Váš názor Vám v žádném případě neberu, nicméně sám si stojím za tím, že použiji-li k ukončení aplikace funkci primárně určenou k ukončení aplikace, neučiním nic tak odsouzeníhodného.

K Vašemu argumentu ohledně znovuvyužitelnosti pouze dodávám, že (opět dle mých zkušeností) není změna hlavního okna v průběhu vývoje aplikace přiliš častou, naopak občas se stává (ač to není nejčistší řešení), že se ukončuje celá aplikace z jiného okna než hlavního; pak byste z jednoho okna volal metodu Close jiného okna.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor