Spletni dnevnik
ccpcreations.com v2
LANGUAGE


SEKCIJE
Vse
Android Development
J2ME aplikacije
Kdo sem
Moje skladbe
Moji programi
Nasveti za Javo
Projekti
Triki in namigi
Varnostna politika - Privacy Policy
Zanimivosti


ISKANJE


BLOGI
bohak.si
zelenik.net


POVEZAVE
Mozilla Firefox
Android


ČLANKI PRED LETOM DNI
Datum: 09. oktober 2010
Video Live Wallpaper 0.83b for Android


OCENE OGLEDANIH FILMOV
Avatar 5
Star Trek 4.5
(500) Days of Summer 4.5
Moon 4
2012 3


ZADNJI ODGOVORI
From: Matic
Re: Kako do izbrisanih dat
From: Filip
Re: Video Live Wallpaper 0
From: okokkji

From: hideo
Re: WiimoteController 0.3
From: Katarina



ZA SMETIŠČARJE!
area.nowsaj@netscape.com
move.thanicl@mail.com
clock-record@mail.com
sun-verytyx@juno.com
notice.wentkyr@netscape.com


Blog zamrznjen -- Blog Frozen

Ta spletni dnevnik je zamrznjen. To pomeni, da ne bo več prejemal novih prispevkov in komentarjev. Kmalu bo tudi arhiviran in s tem prestavljen na trajnejše mesto. Temu sporočilu sledi običajna vsebina spletnega dnevnika.

Hvala za razumevanje.
This blog has been frozen. This means it will no longer accept new posts and comments. It will soon be archived and moved to a more permanent location. Below this message you can find the blog's usual contents.

Thank you for your understanding.
Naloga 5: Dogodkovni model

Standardni zahtevnik: prosim, da, v kolikor želite to besedilo objaviti kje drugje, to storite tako, da linkate povezavo do te strani, ne pa da kopirate besedilo na drugo stran. S pisanjem teh nasvetov si (brez pričakovanja plačila) trgam dragocen čas. Tudi: za kakršne koli napake ne odgovarjam (vse je možno, saj je to besedilo pisano na roko). Če opazite kakšno napako, me popravite. Rade volje bom popravil, priznal svojo zmoto in se vam zahvalil smiley


NAJ TI NAVETI NE BODO (EDINA?) OSNOVA ZA OPRAVLJANJE IZPITA! ZA MOREBITNI NEOPRAVLJEN IZPIT NE ODGOVARJAM!



Kazalo
Dogodkovni model:



Dogodkovni model

Če želimo v AWT prožiti in se odzivati na dogodke, ki jih grafični gradniki povzročajo, vključimo skupino knjižnic
java.awt.event.*;

Glavni razredi in vmesniki, ki jih uporabljamo, so:



Če želimo, da je naš program obveščen o tem, kdaj uporabnik npr. klikne na gumb, moramo v Javi storiti kopico stvari. Velja, da se zadevo da implementirati na tisoč in en različen način. Najprej je treba ustvariti okno z grafičnimi gradniki. Pa recimo, da smo ustvarili razred Okno, v katerem ustvarimo okno in na njem dva gumba: gumb1 in gumb2.
Najprej moramo ustvariti poslušalca, ki bo imel to funkcijo, da bo "poslušal", kdaj bo uporabnik kliknil na gumb. Tega poslušalca bomo nato registrirali na dogodke obeh gumbov, tako da bo vedno dobil podrobne podatke o vsakem dogodku določenega tipa, na katerega smo ga registrirali.



Poslušalec

Poslušalec je razred, ki implementira nek Listen-er. V našem primeru bomo implementirali vmesnik ActionListener, ker pač želimo, da bojo primerki tega razreda obveščeni o "dejanjih" gumbov, na katere so registrirani (pri gumbih je dejanje klik). Razred lahko v glavnem implementiramo na tri različne načine:


Našega Poslušalca moremo zaradi vmesnika ActionListener dopolniti z implementacijo metode
public void actionPerformed(ActionEvent e) {...}
V tej metodi nato povemo, kaj želimo, da se zgodi ob kliku na gumb, na katerega bo Poslušalec registriran. ActionEvent e nam pove med drugim tudi, kateri gradnik od registriranih je sprožil ta dogodek. En sam primerek našega Poslušalca se lahko namreč registrira na več različnih gumbov in metoda
e.getSource()
nam vrne referenco na gumb, ki smo ga pravkar kliknili. Če naš Poslušalec počne na primer naslednje:
if(e.getSource()==gumb1) System.out.println("Prvi" );
se bo izpisalo sporočilo "Prvi", vendar le v primeru, če je pritisnjen gumb bil gumb1.

V splošnem si je torej treba zapomniti:


Povezava do primera programa je na dnu tega dokumenta.



Dogodki

Beseda Dogodek v tem poglavju pomeni vsak tak razred, katerega ime se konča z *Event, na primer ActionEvent, WindowEvent itd., medtem ko ima beseda dogodek običajen knjižni pomen.

Vsak razred za poslušalca ima svojega istoimenskega "kolega", razrede, ki se končajo z *Event, pravimo pa jim Dogodki. Namen Dogodkov je, da dajo poslušalcu informacijo o tem, kakšen dogodek se je pripetil. Vsi Dogodki v AWT do izpeljani iz razreda java.util.EventObject, kar pomeni, da imajo vsi metodo
getSource()
Ta metoda vrne objekt, na katerem je bil dogodek izvršen. Če smo na primer kliknili na gumb, na katerega dogodke je registriran ActionListener, se bo pri tem tvoril objekt tipa ActionEvent, s pomočjo katerega bomo lahko preko metode getSource() dobili referenco do gumba, na katerega smo kliknili.

Ostale metode se od Dogodka do Dogodka razlikujejo, saj se vsak tip Dogodka uporablja v drugačni situaciji. Podrobnosti so v enem od naslednjih poglavij.



Adapterji

Vmesniki Poslušalcev, ki imajo več kot eno metodo, imajo v Javi posebne razrede, imenovane Adapterje. Adapterji so prazne implementacije teh Poslušalcev in so samo za lažje programiranje. Vmesnik WindowListener ima na primer kar 7 metod (za dogodke, kot so pridobitev žarišča, izklop okna, minimiranje okna ipd). Ko ustvarjamo Poslušalca, ki implementira ta vmesnik, moremo vse te metode implementirati, četudi nas ne zanimajo.

Namesto tega pa lahko uporabimo kar Adapter. Zavedati se je treba, da je Adapter že razred, ki implementira ustrezen vmesnik za poslušalca. WindowAdapter je torej razred, ki implementira WindowListener-ja, le da so te implementacije prazne (ne delajo ničesar). Adapterji so sicer abstraktni, a to le zato, da jih ne moremo nastaviti kot poslušalce. To bi bilo namreč nesmiselno, ker implementacije znotraj Adapterjev tako ali tako ne počno ničesar. Uporabljajo pa se tako, da ustvarimo nov razred, ki podeduje od ustreznega Adapterja, v njem pa nato implementiramo metode, ki bi jih sicer pri vmesniku, vendar nam ni treba implementirati vseh, le tiste, ki nas zanimajo. Paziti je treba le na tiskarske hrošče, saj nas Java prevajalnik ne bo opozoril, da nismo implementirali metode, če se bomo zmotili pri nazivu le-te.

Ena prvih težav, na katero naletimo, če programiramo z AWT-jem je, da je gumb za zaprtje okna neaktiven in se ga ne da na lep način zapreti. Za vsako okno (objekt Frame) registriramo poslušalca WindowListener, ki ima med drugimi tudi metodo
void windowClosing(WindowEvent e)

Ta metoda se požene, ko kliknemo gumb za zaprtje okna. Lahko naredimo nov razred, ki implementira vmesnik WindowListener, in implementiramo vseh 7 metod, ki jih ta vmesnik zahteva, lahko pa naredimo enostaven anonimni notranji razred, ki podeduje od WindowAdapter-ja, in ga registriramo na okenske dogodke našega okna:
mojeOkno.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

Okno se bo sedaj ob kliku gumba za zaprtje dejansko zaprlo in program se bo končal.



Referenca

Sledi tabelirana referenca, ki vam bo v pomoč pri programiranju z dogodki v AWT-ju.

Ime Poslušalca ActionListener
Metode Poslušalca void actionPerformed(ActionEvent e)
se zažene, ko se sproži dejanje
Uporaba poslušalca (List)seznam.addActionListener(ActionListener l)
actionPermormed se pokliče, ko uporabnik dvoklikne na seznam ali ko pritisne Enter, ko ima seznam fokus
(TextField)besedilnaSkatlica.addActionListener(ActionListener l)
actionPerformed se pokliče, ko uporabnik stisne Enter medtem, ko piše
(Button)gumb.addActionListener(ActionListener l)
actionPerformed se pokliče, ko uporabnik pritisne gumb
(MenuItem)izbiraMenija.addActionListener(ActionListener l)
actionPerformed se pokliče, ko uporabnik izbere nekaj v meniju
Ima Adapter? NE, ker vmesnik zahteva le implementacijo ene metode
Ime Dogodka ActionEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta, nad katerim je bil izvršen dogodek
e.getActionCommand()
Vrne String, ki predstavlja zapis, povezan z izbranim predmetom (npr. besedilo v gumbu)

Nazaj na začetek referenc

Ime Poslušalca AdjustmentListener
Metode Poslušalca void adjustmentValueChanged(AdjustmentEvent e)
se zažene, ko se spremeni nek spremenljiv objekt
Uporaba poslušalca (Scrollbar)drsnik.addAdjustmentListener(AdjustmentListener l)
adjustmentValueChanged se pokliče, ko uporabnik premakne drsnik
(ScrollPaneAdjustable)drsnikSP.addAdjustmentListener(AdjustmentListener l)
Pozor! Ti drsniki se uporabljajo z razredom ScrollPane!
adjustmentValueChanged se pokliče, ko uporabnik premakne drsnik
Ima Adapter? NE, ker vmesnik zahteva le implementacijo ene metode
Ime Dogodka AdjustmentEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta, nad katerim je bil izvršen dogodek
e.getValue()
Vrne Integer, in sicer trenutno vrednost/pozicijo drsnika

Nazaj na začetek referenc

Ime Poslušalca ComponentListener
Metode Poslušalca void componentHidden(ComponentEvent e)
se zažene, ko postane komponenta nevidna
void componentMoved(ComponentEvent e)
se zažene, ko se komponenta premakne
void componentResized(ComponentEvent e)
se zažene, ko se komponenti spremeni velikost
void componentShown(ComponentEvent e)
se zažene, ko postane komponenta vidna
Uporaba poslušalca (Component)komponenta.addComponentListener(ComponentListener l)
ComponentListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? DA, imenuje se ComponentAdapter
Ime Dogodka ComponentEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek
e.getComponent()
Vrne referenco do komponente (tipa Component), nad katero je bil izvršen dogodek

Nazaj na začetek referenc

Ime Poslušalca ContainerListener
Metode Poslušalca void componentAdded(ContainerEvent e)
se zažene, ko je bila dodana nova komponenta na vmesnik
void componentRemoved(ContainerEvent e)
se zažene, ko je bila komponenta odvzeta iz vmesnika
Uporaba poslušalca (Container)vsebnik.addContainerListener(ContainerListener l)
ContainerListener se lahko registrira na kateremkoli vsebniku AWT-ja (panel, frame, dialog, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? DA, imenuje se ContainerAdapter
Ime Dogodka ContainerEvent
Nekatere metode e.getSource()
Vrne referenco do objekta, nad katerim je bil izvršen dogodek
e.getChild()
Vrne referenco do komponente, ki je bila dodana/odvzeta iz vsebnika
e.getContainer()
Vrne referendo do vsebnika, kateremu je bilo kaj dodano/odvzeto

Nazaj na začetek referenc

Ime Poslušalca FocusListener
Metode Poslušalca void focusGained(FocusEvent e)
se zažene, ko komponenta pridobi fokus (ko ima kurzor oz. je označena)
void focusLost(FocusEvent e)
se zažene, ko komponenta izgubi fokus
Uporaba poslušalca (Component)komponenta.addFocusListener(FocusListener l)
FocusListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? DA, imenuje se FocusAdapter
Ime Dogodka FocusEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek
e.getOppositeComponent()
Vrne referenco do komponente (tipa Component), kateri se je zgodilo ravno obratno kot tej. Če je ta komponenta dobila fokus, vrne referenco od komponente, ki je fokus zaradi tega izgubila in obratno

Nazaj na začetek referenc

Ime Poslušalca ItemListener
Metode Poslušalca void itemStateChanged(ItemEvent e)
se zažene, ko se spremeni stanje predmeta
Uporaba poslušalca (CheckboxMenuItem)seznamIzbirMenija.addItemListener(ItemListener l)
itemStateChanged se pokliče, ko uporabnik izbere eno od izbir v seznamu menija
(Choice)spustniSeznam.addItemListener(ItemListener l)
itemStateChanged se pokliče, ko uporabnik izbere eno od izbir spustnega seznama
(Checkbox)izbira.addItemListener(ItemListener l)
itemStateChanged se pokliče, ko uporabnik nastavi/odvzame "kljukico" izbirnemu elementu
(List)seznam.addItemListener(ItemListener l)
itemStateChanged se pokliče, ko uporabnik izbere eno od izbir seznama
Ima Adapter? NE, ker vmesnik zahteva le implementacijo ene metode
Ime Dogodka ItemEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta, nad katerim je bil izvršen dogodek
e.getItem()
Vrne referenco do objekta, ki je bil izbran
e.getStateChange()
Vrne Integer, ki nakazuje, če je komponenta izbrana ali ne

Nazaj na začetek referenc

Ime Poslušalca KeyListener
Metode Poslušalca void keyPressed(KeyEvent e)
se zažene, ko je uporabnik pritisnil tipko (ni je še spustil) na tipkovnici
void keyReleased(KeyEvent e)
se zažene, ko je uporabnik spustil tipko (do sedaj jo je držal) na tipkovnici
void keyTyped(KeyEvent e)
se zažene, ko je uporabnik pritisnil in spustil kakšno tipko, ki v ugodnih pogojih izpiše znak (črko, številko, presledek, a ne npr. Ctrl, Shift...)
Uporaba poslušalca (Component)komponenta.addKeyListener(KeyListener l)
KeyListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Seveda je smiselno, da ga registrirate na komponentah, ki so zmožni prevzeti fokus za tipkovnico. Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? DA, imenuje se KeyAdapter
Ime Dogodka KeyEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek
e.getKeyChar()
Vrne znak tipa char, ki predstavlja znak, povezan s pritisnjeno tipko
e.getKeyCode()
Vrne kodo znaka pritisnjene tipke (int)
e.getKeyLocation()
Vrne kodo pozicije pritisnjene tipke (int)
KeyEvent.getKeyModifiersText(int kodaZnaka)
statična metoda, ki vzame kodo znaka in jo pretvori v zapis, ki predstavlja, katere dodatne tipke so tvorile pritisnjeno kombinacijo (npr. "Shift" ali "Ctrl+Shift")
KeyEvent.getKeyText(int keyCode)
statična metoda, ki vzame kodo znaka in jo pretvori v zapis, ki predstavlja, katera tipka je bila pritisnjena (npt. "F1" ali "HOME" ali "A")
e.isActionKey()
Vrne TRUE, če je pritisnjen gumb akcijski (npr. F1, Home ipd.), FALSE, če ni

Nazaj na začetek referenc

Ime Poslušalca MouseListener
Metode Poslušalca void mouseClicked(MouseEvent e)
se zažene, ko uporabnik klikne na miškino tipko (nad komponento)
void mouseEntered(MouseEvent e)
se zažene, ko miškin kazalec pride v območje komponente
void mouseExited(MouseEvent e)
se zažene, ko miškin kazalec zapusti območje komponente
mousePressed(MouseEvent e)
se zažene, ko uporabnik pritisne (a ne spusti) miškino tipko (nad komponento)
mouseReleased(MouseEvent e)
se zažene, ko uporabnik spusti miškino tipko (nad komponento)
Uporaba poslušalca (Component)komponenta.addMouseListener(MouseListener l)
MouseListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? DA, imenuje se MouseAdapter
Ime Dogodka MouseEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek
e.getButton()
Vrne številko tipa int, ki predstavlja, katera tipka/kombinacija tipk je bila pritisnjena/kliknjena na miški. Za več informacij glejte Java API
e.getX()
Vrne vodoravno oddaljenost (v pixlih) miškinega kazalca od levega roba objekta
e.getY()
Vrne navpično oddaljenost (v pixlih) miškinega kazalca od zgornjega roba objekta
e.getPoint()
Vrne objekt tipa Point, ki vsebuje zgornji dve informaciji

Nazaj na začetek referenc

Ime Poslušalca MouseMotionListener
Metode Poslušalca void mouseMoved(MouseEvent e)
se zažene, ko uporabnik premakne miško preko komponente (nad katero se proži dogodek). Proži se mnogo takih dogodkov
void mouseDragged(MouseEvent e)
se zažene, ko uporabnik "prime" komponento, in jo potegne (Drag&Drop). V določenih primerih, ko je Drag&Drop na sistemski ravni, se ta metoda ne zažene
Uporaba poslušalca (Component)komponenta.addMouseMotionListener(MouseMotionListener l)
MousesMotionListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? DA, imenuje se MouseMotionAdapter
Ime Dogodka MouseEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek
e.getButton()
Vrne številko tipa int, ki predstavlja, katera tipka/kombinacija tipk je bila pritisnjena/kliknjena na miški. Za več informacij glejte Java API
e.getX()
Vrne vodoravno oddaljenost (v pixlih) miškinega kazalca od levega roba objekta
e.getY()
Vrne navpično oddaljenost (v pixlih) miškinega kazalca od zgornjega roba objekta
e.getPoint()
Vrne objekt tipa Point, ki vsebuje zgornji dve informaciji

Nazaj na začetek referenc

Ime Poslušalca MouseWheelListener
Metode Poslušalca void mouseWheelMoved(MouseWheelEvent e)
se zažene, ko uporabnik zavrti miškino kolo za brskanje (kolico)
Uporaba poslušalca (Component)komponenta.addMouseWheelListener(MouseWheelListener l)
MousesWheelListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? NE, ker vmesnik zahteva le implementacijo ene metode
Ime Dogodka MouseWheelEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta, nad katerim je bil izvršen dogodek
e.getScrollAmount()
Vrne število tipa int, ki predstavlja število enot, za katere se je obrnila kolica
e.getWheelRotation()
Vrne število tipa int, ki predstavlja število "klikov" kolice pri zasuku

Nazaj na začetek referenc

Ime Poslušalca TextListener
Metode Poslušalca void textValueChanged(TextEvent e)
se zažene, ko se komponenti spremeni besedilo
Uporaba poslušalca (TextComponent)tekstovnaKomponenta.addTextListener(TextListener l)
TextListener se lahko registrira na katerikoli tekstovni komponenti AWT-ja (TextArea, TextField). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? NE, ker vmesnik zahteva le implementacijo ene metode
Ime Dogodka TextEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta, nad katerim je bil izvršen dogodek

Nazaj na začetek referenc

Ime Poslušalca WindowFocusListener
Metode Poslušalca void windowGainedFocus(WindowEvent e)
se zažene takrat, ko pride okno ali katerakoli njegova komponenta v ospredje (ko dobi fokus)
windowLostFocus(WindowEvent e)
se zažene takrat, ko okno ali katerakoli njegova komponenta izgubi fokus
Uporaba poslušalca (Window)okno.addWindowFocusListener(WindowFocusListener l)
WindowFocusListener se lahko registrira na kateremkoli oknu AWT-ja (Frame, Dialog, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? DA, imenuje se WindowAdapter (ta adapter ni le za WindowFocusListener)
Ime Dogodka WindowEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta, nad katerim je bil izvršen dogodek
e.getOppositeWindow()
Vrne referenco do okna, ki je izgubilo fokus, ker ga je trenutno pridobilo, oz. ki je pridobilo fokus, ko ga je trenutno izgubilo

Nazaj na začetek referenc

Ime Poslušalca WindowListener
Metode Poslušalca void windowActivated(WindowEvent e)
se zažene, ko postane okno trenutno okno (okno v ospredju)
void windowClosed(WindowEvent e)
se zažene, ko se je okno že zaprlo zaradi ukaza za zaprtje
void windowClosing(WindowEvent e)
se zažene med procesom zapiranja okna (ko jo zapre uporabnik)
void windowDeactivated(WindowEvent e)
se zažene, ko okno izgubi status trenutnega okna (okna v ospredju)
void windowDeiconified(WindowEvent e)
se zažene, ko se okno obnovi iz minimiranega stanja
void windowIconified(WindowEvent e)
se zažene, ko se okno minimira iz normalnega stanja
windowOpened(WindowEvent e)
se zažene, ko se okno prvič prikaže
Uporaba poslušalca (Window)okno.addWindowListener(WindowListener l)
WindowListener se lahko registrira na kateremkoli oknu AWT-ja (Frame, Dialog, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? DA, imenuje se WindowAdapter (ta adapter ni le za WindowListener)
Ime Dogodka WindowEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta, nad katerim je bil izvršen dogodek
e.getOppositeWindow()
Vrne referenco do okna, ki je bilo vmešano v ta dogodek

Nazaj na začetek referenc

Ime Poslušalca WindowStateListener
Metode Poslušalca void windowStateChanged(WindowEvent e)
se zažene, ko se oknu spremeni stanje
Uporaba poslušalca (Window)okno.addWindowStateListener(WindowStateListener l)
WindowStateListener se lahko registrira na kateremkoli oknu AWT-ja (Frame, Dialog, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca.
Ima Adapter? DA, čeprav vmesnik zahteva le implementacijo ene metode. Imenuje se WindowAdapter (ta adapter ni le za WindowStateListener)
Ime Dogodka WindowEvent e
Nekatere metode e.getSource()
Vrne referenco do objekta, nad katerim je bil izvršen dogodek
e.getOppositeWindow()
Vrne referenco do drugega okna, ki je bilo vmešano v ta dogodek

Nazaj na začetek referenc




Osnovni Primer odzivanja na dogodke v AWT: Poslusaj1.java


Nasveti za Javo - 12. maj 2007 @ 17:29 - Ogledov: 3868 - Komentarjev: 2
Komentarji
Re: Naloga 5: Dogodkovni model napisal Mr|ce

Nočem biti nesramen, mi pa gre pošteno že v nos to, da vsakič ko "Pomagaš" omenjaš, da si s tem trgaš dragocen čas. A ti mogoče kdo roko zvija, da delaš to? Resno se zamisli, ali boš torej na tak način pomagal in ne omenjal svojega hudo dragega časa ali pa nehaj pomagati. Ker s tem (vsaj meni) daješ vedeti, da ti je to bolj muka kot veselje. Tak da se nehaj trpinčit ali pa nehaj to pisat. smiley Pač nasvet in mnenje. Brez zamere.

14. maj 2007 @ 07:29
Re: Naloga 5: Dogodkovni model napisal Piki

Vzeto na znanje smiley
To besedilo zgoraj drugače kopiram vedno (saj se vidi, da je bolj ali manj enako).

Pa je ta pomoč drugače sploh kaj uporabna?

14. maj 2007 @ 11:27
Komentirajte ta vnos (registracija ni potrebna)
Tega vnosa žal ni dovoljeno komentirati.