Voisitko (tai voisiko joku muu) kertoa (selvemmän) esimerkin olion upottamisesta.
Olion upottaminen
12
370
Vastaukset
- Delphikoodari..
En tiedä onko "olion upottaminen" oikea termi, itse vain ajatuksissa olen sitä käyttänyt, kun sitä niin paljon käytän näissä Delphin omissa komponenteissa :D
Esimerkiksi TStringList luokassa on tämmöinen ominaisuus, tätä StringListiä käyttää myös monet komponentit, kuten TComboBox.
Eli sen sijaan että esim. ComboBoxiin lisätään vain merkkijonoja, osoitetaan ItemIndexillä ja tehdään sen perusteella joku toiminto. Voidaan itemiin upottaa oma olio ja tehdä sillä sitten niitä toimintoja.
|var
| sl: TStringList;
| o, o2: TLuokka;
|begin
| sl := TStringList.Create();
| o := TLuokka.Create();
|
| sl.AddObject( o, TObject( o ) );
|
| o2 := TLuokka( sl.Objects[0] );
| o2.Terve();
|end;
|- :::::::::::
Miten määritelty tuo TLuokka on määritelty?
- luokka..
::::::::::: kirjoitti:
Miten määritelty tuo TLuokka on määritelty?
Ihan miten haluat luokan määritellä...
|type
| TLuokka = class
| private
| FMuuttuja: Integer;
| public
| constructor Create();
| end;
..........
|constructor TLuokka.Create();
|begin
| FMuuttuja := 2008;
|end;
............
Perus olio-ohjelmointia
http://www.delphibasics.co.uk/RTL.asp?Name=Class - Pallo hukassako?
luokka.. kirjoitti:
Ihan miten haluat luokan määritellä...
|type
| TLuokka = class
| private
| FMuuttuja: Integer;
| public
| constructor Create();
| end;
..........
|constructor TLuokka.Create();
|begin
| FMuuttuja := 2008;
|end;
............
Perus olio-ohjelmointia
http://www.delphibasics.co.uk/RTL.asp?Name=ClassMitä (Luokan TLuokka tai) olion o2 metodi terve tekee?
Miten se on määritelty?
procedure TLuokka.terve;
begin
// siis mitä tähän ?
end; - Delphikoodari..
Pallo hukassako? kirjoitti:
Mitä (Luokan TLuokka tai) olion o2 metodi terve tekee?
Miten se on määritelty?
procedure TLuokka.terve;
begin
// siis mitä tähän ?
end;Päättele itse! Kyse oli vain esimerkistä!
ShowMessage( ' No terveppä terve!' ); - Pallo yhä hukassako?
Mitä rivi
o2 := TLuokka( sl.Objects[0] );
tarkoittaa (tekee)? - Delphikoodari..
Pallo yhä hukassako? kirjoitti:
Mitä rivi
o2 := TLuokka( sl.Objects[0] );
tarkoittaa (tekee)?Eli se ottaa TStringListin (sl) Objects kokoelman ensimmäiseen itemiin upotetun olion.
Eli toisin sanoen se on sama kuin se eka o. Jos et ymmärrä pointereiden päälle mitään, niin voi olla hankala tajuta.
Oli vain tarkoitus havainnollistaa sitä "upotusta" - Mika0800
"Esimerkiksi TStringList luokassa on tämmöinen ominaisuus, tätä StringListiä käyttää myös monet komponentit, kuten TComboBox."
Monessa Delphin visuaalisessa komponentissa on yhtenä ominaisuutena TStrings -luokka, mutta monessa toteutus on rajattu siten, että AddObject( ... ) on käytännössä sama kuin Add( ... );
Tällaisiin ominaisuuksiin EI voi "upottaa" objektia.
esim:
{} var
{} OmaOlio : TLuokka;
{ ... }
{}
{} Memo1.Items.AddObject('jokin merkkijono', OmaOlio) ;
{}
{ ... }
lisäksi esimerkissä ollut:
sl.AddObject( o, TObject( o ) );
on väärin.
oikein olisi esim:
sl.AddObject( o.ClassName, o );
tuon o.ClassName tilalle voi laittaa minkä tahansa merkkijonon.
tuossa esimerkissä o.ClassName palauttaisi: 'TLuokka'
Ainakin uudemmat Delhit hyväksyvät tämänkin:
sl := TStringList.Create();
enemmän Delphi -tyylinen tapa:
sl := TStringList.Create; { Tämä kelpaa jopa Delphi 1.0:llekin }
Tuo Delphi 1.0 on ainoa 16 -bittinen Delphi, eivätkä sillä käännetyt ohjelmat toimi windows Vistassa. Sääli sinänsä, nimittäin monen ohjelman asennusohjelma on käännetty 16 -bit ohjelmaksi siksi, että näin saadaan pienempi exe -tiedosto.
Toisaalla palstalla kysellään FTP -toteutuksesta Delphillä.
Ararat Synapse - ääni tälle !
Muita siis:
ICS ( by Francois Piette )
Indy ( by Kudzu )
salakirjoitustakin delphille löytyy:
TPLockBox - alunperin TurboPowerSoftwaren kaupallinen luomus, sittemmintajolla ilmaiseksi SourceForgesta. - Delphikoodari..
Mika0800 kirjoitti:
"Esimerkiksi TStringList luokassa on tämmöinen ominaisuus, tätä StringListiä käyttää myös monet komponentit, kuten TComboBox."
Monessa Delphin visuaalisessa komponentissa on yhtenä ominaisuutena TStrings -luokka, mutta monessa toteutus on rajattu siten, että AddObject( ... ) on käytännössä sama kuin Add( ... );
Tällaisiin ominaisuuksiin EI voi "upottaa" objektia.
esim:
{} var
{} OmaOlio : TLuokka;
{ ... }
{}
{} Memo1.Items.AddObject('jokin merkkijono', OmaOlio) ;
{}
{ ... }
lisäksi esimerkissä ollut:
sl.AddObject( o, TObject( o ) );
on väärin.
oikein olisi esim:
sl.AddObject( o.ClassName, o );
tuon o.ClassName tilalle voi laittaa minkä tahansa merkkijonon.
tuossa esimerkissä o.ClassName palauttaisi: 'TLuokka'
Ainakin uudemmat Delhit hyväksyvät tämänkin:
sl := TStringList.Create();
enemmän Delphi -tyylinen tapa:
sl := TStringList.Create; { Tämä kelpaa jopa Delphi 1.0:llekin }
Tuo Delphi 1.0 on ainoa 16 -bittinen Delphi, eivätkä sillä käännetyt ohjelmat toimi windows Vistassa. Sääli sinänsä, nimittäin monen ohjelman asennusohjelma on käännetty 16 -bit ohjelmaksi siksi, että näin saadaan pienempi exe -tiedosto.
Toisaalla palstalla kysellään FTP -toteutuksesta Delphillä.
Ararat Synapse - ääni tälle !
Muita siis:
ICS ( by Francois Piette )
Indy ( by Kudzu )
salakirjoitustakin delphille löytyy:
TPLockBox - alunperin TurboPowerSoftwaren kaupallinen luomus, sittemmintajolla ilmaiseksi SourceForgesta."sl.AddObject( o, TObject( o ) );"
Vähän muisti pätki, eli tietty eka parametri on otsikko, o.Otsikko();
.....................
"Ainakin uudemmat Delhit hyväksyvät tämänkin:"
sl := TStringList.Create();
"enemmän Delphi -tyylinen tapa:"
"sl := TStringList.Create; { Tämä kelpaa jopa Delphi 1.0:llekin }"
No kyse on vain tyylistä.
Delphi 1.0 on jo wanha kuin taivas, eli tuskin sillä kukaan enään nykyään koodailee. Itse olen vain tottunut käyttämään aina sulkeita (C/C opittu tapa), kertoo minun silmään hyvin, ettei mitään parametreja anneta.
Nykykoneissa on myös tosi paljon muistia ja isot kiintolevyt, ehkä joskus kauan sitten pienet exe-koot oli hyvä olla olemassa.
- Aritzona
Tekisitkö pienen esimerkkiohjelman (siis kokonainen listaus)
jossa olisi tuo olion upottaminen- Delphikoodari..
Huitsi kun jaksais :) Yleensä tänne tulee kirjoiteltua vain kännissä ja koodit voi mennä väärin, kun ei niitä voi tarkistella. Mutta jospa mulla olis maanantaina töissä vähän löysää aikaa, niin voisin jonkun simppelin esimerkin kirjoitta...
- Zimppa..
Tässä tein (Delphi 2006 Pro) pienen objektin upotus esimerkin :)
http://www.knubits.com/upotus.zip
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Sannalla tänään vuorossa The Daily Show
Eli nyt mennään jo satiirin puolelle. Tuohan on vähän kuten Lindströmin ohjelma Suomessa.1378328Tanskassa lain vaatimana Bovaer tappanut nautoja ja sairastuttanut
Samaa myrkkyä myös Suomen lehmiin ollut tuloillaan, miten teidän tilalla? https://www.agriland.ie/farming-news/bovaer-m1047529Täysi ryöpytys Sanna Marinille ulkomailla.
https://www.iltalehti.fi/ulkomaat/a/f699d84f-fa53-4dba-8718-2c395017fc55 Sanna Marinin kirja saa todella tylyn vastaanot925706Ruotsalaisuuden Päivän virallinen liputuspäivä poistettava VÄLITTÖMÄSTI!
Suomen valtion ja suomalaisuuden kannalta ei ole minkäänlaisia perusteita liputtaa virallisesti ruotsalaisuuden päivää,975656Minja Koskelan "istumista" kertovassa uutisessa ei sanottu persuista mitään
eli jälleen kerran äärivasemmistolainen valehtelee, hän kun väittää että juuri persut ovat lähetelleet Koskelalle vähemm1194830Pekka Visuri: "Suomen on aika irrottautua Ukrainan sodasta"
Slava Ukraina-mölinät eivät enää auta. Ukraina on sotansa hävinnyt. Nyt tarvitaan poliittista selvänäköisyyttä, reaalipo1452658Mikaela Nylander: Jos pakkoruotsi poistetaan, niin ruotsin kielen asema romahtaa
(Nylander on vanha RKP:nen) Mutta niin heikossa vedossa muumiruotsi siis on Suomessa, että vain tekohengityksellä se pys612513Ei välimatka meitä erottanut
Vaan välirikko ja väärinymmärrykset. Oikeastaan henkinen välimatka on meidän välillä pieni, näin uskon. Näen koko ajan e81485Maajussi-Villen morsioehdokas Maarit ei halunnut Villeä - Tämä totuus valkeni kuvauksissa!
Ohhoh, tekikö Maarit mielestäsi oikean ratkaisun Villen suhteen? Maajussi-Ville on herättänyt voimakkaita tunteita puol71454Kohta taas mesikämmeneen
Onneksi kaupunki ostaa mesikämmenen, niin päästään taas tekemään rahaa531349