Citat:
Molim?? Obrazloži to "Uvijek".
Prelistaj svoje odgovore/komentare u poslednjem periodu, ili još bolje zamoli nekog svog
*prijatelja* da protumači tvoju komunikaciju sa *ljudima*.
Apsolutno ne želiš ni da saslušaš a kamo li prihvatiš nečiji savet. Nedavno si imao direktne
odgovore i savete od 4 čoveka (verovatno najjača ovde kadra) čije se znanje ne može osporiti.
Svima si 'dokazao' da nisu u pravu, i da ćeš ipak nastaviti po svome. OK, tvoje pravo.
Obrni/okreni, saberi/oduzmi tebe tuđe mišljenje/viđenje uopšte ne zanima.
Ali ono što je meni 'bolo' oči je to što si njihove savete i komentare doživeo kao *oštar* napad
na tebe, tj. tvoju inteligenciju. Niko od njih se više nije upuštao u dalju diskusiju.
Imaš li nekoga da ti protumači *zašto*?
U komunikaciji sa ljudima porebna je poprilična doza tolerancije, čak i kada neko nije u pravu.
Citat:
ne znam za tebe, no ja ne skačem čim netko kaže "hop", a pogotovo kad je riječ o programiranju.
Profesionalci koji se kreću po Borlandovim forumima nisu *neko*, zapravo daleko su od *neko*.
S obzirom da sam tamo svakodnevno nekoliko godina unazad, vremenom dođeš do zaključka ko je od
njih autoritet i čije mišljenje ili savet možeš/trebaš prihvatiti jer je koristan. Jer je
princip ispravan.
Pogotovo kad je savet besplatan i bezbolan.
Citat:
Nisam ja jučer počeo programirati u BCB-u, i nisam nikad se susreo sa problemima o kojima je
ovdje riječ.
To što *ti* nisi imao probleme ne znači da je *tvoj* princip dobar, a tvoj nastup je bio kao da
bolje poznaješ problematiku od ljudi koji su dokumentovali probleme na koje su nailazili.
Citat:
To mi je i više nego dovoljan dokaz da nema razloga panici, a kamoli da "nešto izbjegavam kao kugu".
Moje reči: "
Savet je Borlandovih stručnjaka da ..."
Reči Chris-a Uzdavinis-a: "In C++ code, I
beg and plead people to not use ..."
Tvoje reči: "a kamoli da "nešto izbjegavam
kao kugu"
To je tvoj način komunikacije.
Citat:
Isto tako, ako je to već toliki problem, zašto se pri pisanju tijela tih funkcija ne stavi nekakvo
upozorenje tipa onog koje se dobije pri pisanju dll-ova?
Dakle, po tebi to mora biti ključni dokaz da ljudi koji ono napisaše nisu u pravu...
Citat:
Očito ti ovaj put nisi dobro pročitao o čemu je riječ. Ja sam tamo pričao o sasvim drugim stvarima
vezanim uz miješanje biblioteka. To nema nikakve veze sa ovim.
Citat:
IZ JEDNE RANIJE DISKUSIJE:
Prije svega, C++ nije C. Isto tako, koliko citam ovaj forum ti samo znas spomenuti standard kad
nemas pojma kud bi se okrenuo. Nije sve u njemu, već i u principima programiranja.
Ako si već krenuo da na jedan način rješavaš stvar onda se toga i drži. Takvo kupusarenje po
programskom kodu možeš samo kod svoje kuće raditi, a na nečemu ozbiljnom ni slučajno.
Stoga, već od samih početaka treba se učiti nekim pravilima. Šta ti vrijedi standard kad
ti kod ne liči ni našto, a pogotovo kad se netko normalan sjedne pred to da bi to pokušao eventualno
održavati ili ispraviti neke greške?
Crveno je tvoj odnos prema ljudima i način komunikacije.
Plavo su tvoji stavovi o principima programiranja i kakao se treba učiti nekim pravilima. Pretpostavljam
da zato izbegavaš upotrebu konstruktora u C++.
Citat:
Koje su to stvari? Daj mi konkretne slučajeve gdje ja vidim da će se desiti greška. Dokaži tvrdnje.
Ti baš hoćeš da ti se sve servira na tacni. Nisam ja ničija tehnička podrška.
Citat:
"Kompleksan" je relativan pojam. Ukoliko ne definiraš točno iznimke onda ne znam na što točno misliš.
Nekome je kompleksno napraviti dva prozora i prijenos podataka među njima. Jel to znači da će se i tad
desiti greška?
U našem slučaju, komplekso je kad počneš da praviš ili barem razmišljaš u pravcu Reusabilnog koda što je i
osnovna ideja OOP-a. Za to je potrebno nasleđivanje, izvedene klase i precizni interfejsi. Problemi upravo
nastaju tada.
Citat:
Netočno. Zna se što je inicijalizacija.
Ja koji celo vreme govorim o konstruktoru kao jedinom ispravnom mestu kad je u pitanju konstruisanje objekta
sad kao ne kapiram šta je to.
Vrlo vešto si izbegao onaj dodatak koji si izrekao "prije samog pojavljivanja prozora", a ja sam naravno govorio
o tome. Čak sam ti rekao da je potrebno još dodatnog koda i da svaki od tih događaja ima *značajne* prednosti
i nedostatke.
A kad sam pomenuo konstruisanje rekao sam da se OnCreate nikako ne može posmatrati kao *zamena* za konstruktor.
Citat:
Tada na bilo koji od događaja Activate, Show i Paint će se te vrijednost prepisati onima početnima.
Sad ti meni pričaš ono što sam ja već rekao, a rekao sam da je za određene događaje potreban dodatni kod:
Code:
void __fastcall TForm1::FormActivate(TObject *Sender)
{
static bool HasPassedOnceOnActivate = false;
if ( !HasPassedOnceOnActivate )
{
HasPassedOnceOnActivate = true;
// SAMO JEDNOM SE IZVRŠAVA
}
// VIŠE PUTA SE IZVRŠAVA
}
Citat:
Stoga, koristiti te događaje za inicijalizaciju je greška.
Ti govoriš o inicijaliciji a ja o konstruisanju.
Citat:
Po defaultu prva forma se zove Form1. Nije točno specifirano da li će se koordinate mijenjati
unutar ili VAN te klase. Stoga, Form1->Top nije krivo ni unutar ni van te klase.
Odbijaš da shvatiš o čemu sam *sve* govorio, a to je: koristiti pointer Form1 u oblasti konstruisanja
tog objekta je opasno. Ti u minijaturi radiš sledeće:
Code:
class TKlasa
{
int a;
public:
TKlasa();
};
TKlasa *Objekat;
TKlasa::TKlasa()
{
Objekat->a = 10; // <--- AV
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TKlasa *Objekat = new TKlasa();
delete Objekat;
}
Na primerima Hello World ovo ti se neće događati, ali 1000% hoće čim kod konstruktora postane
obimniji. Ovo je jedna od najčešćih grešaka koju početnici rade u C++, s obzorom na mesto gde
BCB IDE po defaultu pravi globalni pointer na formu. U početki radi, a u jednom trenutku imaju AV.
Citat:
Isto tako, korištenje this pointera je sasvim nepotrebno kad se mijenjaju članovi unutar svoje klase.
Sad ti meni objašnjavaš ono na što sam ja tebi ukazao. Ni ja u praksi naravno ne koristim this, ali kad
kažeš
this-> time se obavezuješ da se da se radi o članu te klase a ne o nekog globalnoj varijalbli.
Ni
const se ne koristi dok praviš programe za sebe, ali neko iz nekog razloga može insistirati...
Citat:
Kako će on nazvati svoju formu, to je njegov izbor. Nitko u životu općenito nije ništa OBVEZAN. Jedino se
mora plaćati porez i umrijeti, a ja što sam napisao je striktno vezano za defualtni slučaj gdje se forma zove Form1.
Sad si počeo da pričaš proizvoljno.
Ako sam ja korisnik te klase, ona valjda imam pravo izbora za ime pointera, a ne da moram da mu dajem naziv
Form1, jer je po tebi bilo bolje da ostane Form1.
Citat:
Pa stvarno... ako si se ti uhvatio samo za to što sam ja imenovao instancu kao Form1 onda ne znam
šta da ti kažem...
Se je počelo rečenicama:
"
Savet je Borlandovih stručnjaka da ..."
"Dalje,
čuvaj se iskaza u kojima VEĆ koristiš pointer na TU forumu kada je objekat TE forme u fazi konstruisanja."
... a onda je proradio tvoj standardni vid razmene mišljenja.