Keresés

Aktív témák

  • lao ce

    aktív tag

    ha esetleg Alan erre jar, kis update:

    szepen alakulgatnak a dolgok. lassan elkeszul a program, a tree jol beilleszkedett a helyere, es lassan en is megertem hogy mirol is van szo :)
    a legjobb erzes, hogy futas kozben, az adatbazis tablat megvaltoztatom, egy refresh, es maris editalhato az uj mezo szorostul-borostul.
    meg sok aprosag van hatra, de azert mar erezni az oroszlankormoket...

  • lao ce

    aktív tag

    itt a meghivasok sorrendje (nehany kerdojellel) a processmessages nelkul:

    1-InitNode (root)
    2-InitChildren
    3-InitNode (gyerekre, feltoltes, aztan detailrecordset.next)

    4-GetText, column=-1 (???)
    5-GetText, col=0, root
    6-GetText, col=0, root (masodik hivas...miert vajon???)
    7-GetText col=1, root (jobb oldal, ami ugye ures)
    8-GetText col=1, root (masodik?)

    9-InitNode, gyerek oldal. itt felkapja a 2. recordot, es tovabblep a harmadikra!
    10,11- GetText col0, gyerek
    12, 13- GetText col1, gyerek

    14 InitNode, gyerek oldal
    15,16- GetText col0, gyerek
    17,18- GetText col1, gyerek

    19- GetText. most szepen jon az elso record. Column 0, gyerek
    20- GetText a szokasos ismetles Col0, gyerek
    21,22- GetText Col1, gyerek

    23 InitNode, root
    es innen ugyanaz.

    ....
    bammeg... a teremto vezeti a kezemet. most, hogy nem volt processmessages, kikapcsoltam (a default true) a treeoptionban a toAutoScrollOnExpand -ot.
    most jol jelenik meg minden.
    ...
    utananeztem a helpben, senki nem emliti ezzel kapcs. a toAutoScrollOnExpand-ot.
    ...
    hat ez erdekes volt. :(

  • lao ce

    aktív tag

    válasz Alan #92 üzenetére

    igen, a DOA, azaz :)
    en is berzenkedtem az oracletol. 99-ben kellett kezdeni irni egy rendszert oracle-lel, hatterben delphi, juzernek asp weboldalak. (azota is gyakolatilag ezt irom, de a delphis resz annyira mukodik hogy tk 2001 ota nem delphizek csak kis hibajavitasok meg hasonlok)
    betettem az oraclebe a tablakat, indexeket primary keyeket, ami muszaj volt. aztan kezdtem egyre nagyobb es nagyobb adagokat tomni az oracle-re, hogy lassak mar valami hmm... hatast -mondjuk sebesseg csokkenesben-, meg persze, hogy tanuljak. mostmar tobb mint 30e sor van az oracleben, es azt kell mondjam, hogy mindenfele hiszteria nelkul futkosnak ezek a sorok. persze ettol nem szeretem, de keves fogast talalnek rajta egy vitaban.

    Virtual Tree
    letoltottem a legujabb verziojat a treenek (a site nem mukodott idaig), es felszenvedtem. most eppen a wordwrappal molyolok, azt hiszem multiline lesz belole es hard coded enterek (tapasztalatod van ezzel kapcsolatban? allitolag nem mukodik win9X-en). latni meg nincs mit, en csak valami core-t akarok irni a kollegamnak. de aztan majd a csicsara ujra hozzam kerulnek a dolgok.
    a mai napra van betervezve az, hogy megcsinalom az editalhatosagot a jobb oldalra (meg nem kell az adatbazis mentes), es ha van ido akkor megcsinalom hogy a global.pas-omba bepakolom ami oda tartozik. holnap delelott jon a kollegam, szoval addig el illene keszulni. kesobb lehet meg finomitani a kodon.

    ProcessMessages
    - en nem ijedek meg, csak akkor most mi a rosseb van itt. egyedul nekem a vilagon szarakodik ez? a google group-okhoz engedelyt kertem, hogy nezhessem oket, majd talan a human resources csapata kegyes lesz hozzam es megadja. ennyit a cegrol ahol dolgozok :) )

  • lao ce

    aktív tag

    válasz Alan #90 üzenetére

    speciel az oraclehez egy komponenst hasznalok (direct access vagy mi a neve -allround a ceg neve), nagyon jol muzsikal. oszinten soha semmilyen bajom nem volt vele -bar nem is hasznalom tul melyen.

    ''jön a váratlan, debugolhatatlan, időzítéstől/egérpozíciótól stb. függő, hajkitépető access violation''
    hat, ezzel megnyugtattal, mondhatom. most epitsek ra vagy ne. sajnos nekem kell dontenem. de ha befurdunk vele... akkor en csobbanok a legnagyobbat :)

  • lao ce

    aktív tag

    válasz Alan #88 üzenetére

    nos, tapasztalat is van, jo hir is - meg rossz is. :)

    tapasztalat: nem szabad bekapcsolni az autosort-ot.
    neha az egesz meghulyul nalam megmondom oszinten. az initnode-initchildren-gettext hivasi sorrend felborul es osszevissza sorrendben irja ki a dolgokat a treebe. szombaton ugy sikerult vegre eletet lehelnem bele hogy uj projectet csinaltam aztan event-rol event-re atkopiztam a dolgokat. de ez lehet hogy visszavezetheto az autosortra vagy mas parameterekre.

    a jo hir, hogy sokkalta kozelebb jarok a hasznalathoz, gyakorlatilag megjelennek azok amiket akarok az adatbazisbol, oda kerulnek ahova kell. van mar hatterszinezes (adatbazis dictionary tablaban lehet letarolni a kivant szineket a nodeokhoz), incremental search meg hasonlok... jojo, mas meg nincs :) a legjobb hir, hogy VEGRE olyasmibe kezdtem bele amit mar ezer eve akartam es vegre ujra lelkesedek valamiert.

    viszont van egy par bosszusag is. az egyik hhh... eleg rohejes. de iszonyu bosszanto. a children nodoknal, az elso elem (sor) lekerul az utolso sornak. ugy ertem, hogy ami az elso childrennek kellene lennie, az lesz az utolso egy root nodeon belul. a tobbi children rendesen van rendezve ugy, ahogy a lekerdezes mondja. erdekes modon, mikor oracle-lel kotom ossze, akkor jo, ha az access tablakat kerdezem akkor nem jo. arra gyanakszom, hogy a gettext meghivasa megint nem az igazi, de sajna itt az uj project sem segitett. megprobaltam ado helyett sima tablakat hasznalni, az eredmeny ugyanez.

    (ahhh tenyleg: szerinted ado-t hasznalni jo otlet accesshez, lokalis adatbazis, 1 usernyi felhasznalo egy idoben, lehet hogy oregecske gepecske, win95 es attol felfele???)

    nomost, en queryzek, nem tablazok. tehat, egy master es egy detail query-m van, a detail felepitve es elinditva az initnode-ban:
    if ParentNode = nil then
    ...// root node
    ...root column feltoltes
    ...detail query epites, where DetailID = MasterID ; order by position_column(<-!)
    ...open query
    ...master query.next
    ...ivsHasChildren
    else
    ...//children column
    ...children column feltoltes
    ...detail query.next
    end

    elment ra 4 oram, de meglett a megoldas -bar tisztara osztonosen, en nem tudom hogy bizhatok-e ebben. a detailquery.next sor elé beszurtam egy application.processmessages-t. hirtelen tenyleg a jo sorrendbe kerulnek a children node-ok es az elso nem lesz az utolso.

    szeretnem hallani a velemenyed, hogy lattal-e mar ilyesmit, es hogy mit gondolsz errol a processmessages-rol.

  • lao ce

    aktív tag

    válasz Alan #84 üzenetére

    atirtam az enyemet a te logikadat kovetve, es valami megmoccant! a kezemmel kovettem a te agyadat, szoval most probalom megerteni az agyammal, hogy mit irattal a kezemmel :)
    koszonom megegyszer, es meg lesz egy follow-up ha megy a dolog.

  • lao ce

    aktív tag

    válasz lao ce #85 üzenetére

    persze, ha beteszem egy dbgridbe a MasterSource (datasourceot) akkor ott vannak az adatok szepen. meg kiserletezek vele.

  • lao ce

    aktív tag

    válasz Alan #84 üzenetére

    hat, nalam... ize... egy nagy ures tree az eredmeny.

  • lao ce

    aktív tag

    válasz lao ce #82 üzenetére

    megprobalom nagyjabol leirni mi van a programban.

    az initnode-ban:
    if ParentNode = nil then
    begin
    ...mastertabla feltoltese recordsetbol
    ...InitialStates := InitialStates + [ivsHasChildren, ivsExpanded];
    ...MasterDataSet.next;
    end;

    InitChildren:
    MyMasterRec := PMyMasterRec( VST.GetNodeData(Node));
    recordset selectje (ID alapjan)
    ChildCount := DetailDataSet.RecordCount;
    if DetailDataSet.RecordCount > 0 then
    begin
    ...while not(DetailDataSet.Eof) do
    ...begin
    ......feltoltese a Detail record tomb mezoinek feltoltese [i]
    ......inc(i);
    ...end;
    end;

    a feltoltesnel ki is irom egy memoba, es ugy nez ki, hogy minden adat szepen a helyen van, szoval szerintem a kovetkezokben lesz az ami nem mukodik (mar hogyha nem az egesz ugy ahogy van hasznalhatatlan)

    GetText:
    if TextType = ttNormal then
    begin
    ...case Column of
    ...0:
    ......if Node.Parent = Sender.RootNode then
    ......begin
    .........MyMastRec := Sender.GetNodeData(Node);
    .........Text := MyMastRec.NameCol;
    ......end
    ......else
    ......begin
    .........MyMastRec := Sender.GetNodeData(Node);
    .........Text := MyMastRec.MyDetRec[Node.Index].FirstColumnToWrite;
    ......end;
    stb
    nomost, ez mar nem akar mukodni. a Node.Parent = Sender.RootNode reszen megkapom a kivan ertekeket, de a detail recordnal ures minden.

  • lao ce

    aktív tag

    válasz Alan #80 üzenetére

    remelem kellemes dolgok zsufolodtak ossze a hetvegedre.
    fogok rajta dolgozni, aztan majd kozvetitek hogy mi lett az eredmenye.

  • lao ce

    aktív tag

    válasz lao ce #74 üzenetére

    no, kozben rajottem, hogy ilyet egyszeruen nem lehet csinalni, marhogy:
    van record es egy dinamikus tombben hasznalom.
    szoval most elmegyek aludni.

  • lao ce

    aktív tag

    válasz Alan #73 üzenetére

    ''OK, de először próbáld ki úgy, hogy mindegyiknél beállítod, mintha lenne, aztán ha mégsincs (OnInitChildren), akkor lenyitáskor törlöd a kis pluszjelet''
    roger that :)
    NumOfBeerkezettAruk: integer; // sor torolve

  • lao ce

    aktív tag

    válasz Alan #73 üzenetére

    kozben megneztem miota irtal:
    tenyleg nincs vegtelen ciklus. azt hiszem mikor elsore probaltam, akkor meg kevertem kicsit a gettext es initchildot, itt nyitottam, ott zartam a datasetet, azert lehetett zurzavar.

  • lao ce

    aktív tag

    válasz Alan #73 üzenetére

    ''Érdemes amúgy elolvasgatni a súgóját (Virtual Tree.chm), van pár jó példa benne.''
    hat, ezaz, hogy 'par' jo pelda az egy oldalnyi (igaz, gorgetni kell :) ). A little code repository... nojo, a getting started is, de megvallom oszinten mikor elkezd a figura filozofalgatni a streamekrol meg indirekten ismert osztalyokrol, akkor en elveszitem a fonalat.

    ''a többit meg elintézed a fenti OnInitNode eseménykezelőben. ''
    (megj: sajna nyitva kell tartani az osszes - vagy akarhany- nodeot)
    no, ezaz. az adatstruktura. meg a 'tobbi' amit el kell intezni. pont ez a kulcs.
    tudom, hogy marha nehez valaszolni ugy, hogy nem teszek fel ertelmes kerdest. szoval van ez a ket tabla. kell hozza egy struktura.
    te azt javasolod (vagy esetleg ezt 'kell' tennem (ez a megoldas es az elvaras a tree reszerol?)), hogy egyetlen record struktura legyen? ahh, latom ez nem is tree problema.
    (pelda: aruhazak -< beerkezett aruk)

    PAruhazak = ^TAruhazak;
    TAruhazak = packed record
    ...AruhazID: integer;
    ...AruhazNev: string;
    ...NumOfBeerkezettAruk: integer;
    ...BeerkezettAruk array of strings; // <- ?????
    end;
    szoval lehet betenni egy dinamikus array-t?
    vagy inkabb a BeerkezettAruk legyen egy record (mivel hogy kulonbozo tipusu mezok vannak) es arra legyen egy dinamikus tomb?

    szoval 2 recordos struktura (?):

    PBeerkezettAruk = ^TBeerkezettAruk;
    TBeerkezettAruk = packed record
    ...BeerkezettAruID:integer;
    ...BeerkezettAruNeve: string;
    ...BeerkezettAruErteke:integer;
    end;
    type DinArrBeerkezettAruk = array of TBeerkezettAruk;

    PAruhazak = ^TAruhazak;
    TAruhazak = packed record
    ...AruhazID: integer;
    ...AruhazNev: string;
    ...NumOfBeerkezettAruk: integer;
    ...BeerkezettAruk array of DinArrBeerkezettAruk; // <- ?????
    end;

    most kellene kerdeznem valamit? :(
    ok. ertelmes ez igy? tulbonyolitott?

  • lao ce

    aktív tag

    válasz Alan #70 üzenetére

    valami ilyesmit csinaltam, leegyszerusitve:
    InitNode:
    if ParentNode = nil then
    begin
    ...DataSet_sub.SQL.Clear;
    ...DataSet_sub.SQL.Add(' select .-. where MYID=' +DataSet_root.'MYID');
    ...DataSet_sub.Open;
    ...if DataSet_sub.RecordCount > 0 then
    ...begin
    ......InitialStates := InitialStates + [ivsHasChildren, ivsExpanded];
    ...end
    ...end;
    ...globalChildCount := DataSet_sub.RecordCount;
    ...DataSet_sub.Close;
    end;
    azert itt, mert valamiert vegtelen ciklusba kerult, ha az InitChildren-ben queryt futtattam (lehet hogy en voltam bena, de az olasz srac is panaszkodott erre).
    a masik, hogy nem biztos hogy van children minden root node-hoz ugye. szoval akkor nem allithatom be az InitialStates -t maskent, csak ha tudom mar elore, hogy lesz-e gyereke.
    ezert gondoltam, hogy mar a root select (a rootnodehoz) kellene tartalmazza hogy melyik rekordnak hany gyereke van (count+group by), es itt, az InitNodeban egy selecttel rovidebb lenne a kod.

    most olvaslak tovabb...

  • lao ce

    aktív tag

    válasz Alan #68 üzenetére

    igen, hahhh, ez az igazi mazli!!!! :)

    nnno... (kezdorzsoles)

    nyugodtan korrektald ha hulyeseget irok, bar azt hiszem ilyesmit irtal a 'virtualis komponens reszben':
    en ugy ertelmezem magamban a mukodeset, hogy ez a joszag azert gyors es rugalmas mert nem tárol le semmit, hanem 'csak' megjelenit, es kulonbozo flagek es status valtozok altal koveti nyomon hogy mi a fene is tortent azelott. szoval a sebesseg nem a treetol fugg, hanem attol hogy milyen gyorsan tudja etetni adatokkal a korulotte levo program.

    megneztem a demokat. ha emlekszel ra, van egy advanced, amiben van egy property editor nevezetu oldal. osszesen ket rootnode, azok alatt az elso oszlopban a property neve, a jobb oldalon meg az ertek, amit lehet editalni (datetime, edit, combo stb). azt hiszem meg ha nem is emlekszel ra, elkepzelheto. ebben van az incremental search is egyebkent. a kodot nezve, szepen felepitik az objetumokat (joooo, recordok), be van varrva a ket root node es a jobb oldalhoz a combo ertekek, tombokben vannak tarolva a sorok amiket a node-ok ala tesznek.

    nomost, nekem ez kellene pontosan, dehat persze adatbazist olvasva. gyonyoruen letarolni a hagyomanyos dolgokat, mellebiggyeszteni azt, hogy ez edit/combo(+lookup table)/date/time, aztan editalhato/mentheto szepen minden. nagy otlet, gondolom ez mar mindenkinek eszebe jutott. csakhogy, sajnos semmifele helpet nem talaltam ezzel kapcsolatban a helyeken amiket ajanlanak helpre (newsgroup meg a ket forum). egyedul egy olasz srac kerdezett valamit ezzel kapcsolatban (ugyanazt akarta csinalja mint en), erre valaki ugy megorult a foldijenek hogy olaszul valaszolt neki. basszuskulcs :)

    amit tettem
    nekem a rootnodeok adatbazis selectbol jonnek. attol fuggoen, hogy mi az aktualis 'ID', subselectek vannak megjeleniteni a childreneket. beleeroltettem a GetText eventbe (csakhogy lassam) ezeket a subselecteket. khm. kb olyan sebessegu volt mint mikor a matrixban neo hajol el a golyobisok elol.

    vannak sejteseim a valaszokra, de kellene iranymutatas, mert meg sok es nagy homalyok vannak a fejemben:
    K1) szoval -ahogy sejtem- nekem eloszor fel kell epitenem azt, ami mar egyszer az adatbazisban van (struktura), aztan letarolni a kliens gep memoriajaban -tombokben es recordokban- az ertekeket amik az adatbazisban vannak, hogy ki tudjam szolgalni a tree-t?
    K2) ha el tudod kepzelni a szituaciot, hogy mit probalok csinalni:
    - egy... o... egy record/tomb (vagy maradjon a select?) paros legyen es szekvencialisan rakjam be a ket tabla hm... szorzatat? esetleg 'csaljak', es hagyjam uresen azokat a cellakat amik ugye nem lesznek kirajzolva a childoknal mert a rootnodehoz tartoznak az informaciok? vagy ezeket hasznalja a tree csak nem mutatja? (InitNode: if ParentNode <> nil then 'csinald a childreneket')
    - vagy legyen egy record a rootnodehoz es egy tomb a childhoz (mint a demoban), es... es a child-tomb (mar bocsanat a szoert) egyik dimenzioja legyen a rootnode id-ja es search -keresgeljek benne attol fuggoen hol jar a rootnode kirajzolasa, vagy a root node recordjaba kellene bepasszintani hogy a child-tombnek hany eleme (kell a InitChildren eventhez!) lesz es akkor a child-tombbol lehet olvasni siman a pozicio alapjan?
    K3) hasznaljam az InitChild eventet, vagy AddChild / InsertNode funkciokat (ezeket ki se probaltam meg)?
    K4) kicsit nem fulik a fogam ahhoz, hogy letaroljam ami mar egyszer le van tarolva szepen az adatbazisba. ugy ertem ezert tartom az adatbazist. szoval nyitott vagyok barmilyen otletre, ha ez a tombozes bena dolog.

    meg egy megjegyzes:
    a konkret feladatban nincs szo hatalmas adatmennyisegekrol (parszaz/parezer rekord), de szeretnem ugy csinalni, mintha szamitana, mert az a tervem hogy ezt a komponenst hasznalnam mas dolgokra is.

  • lao ce

    aktív tag

    valaki dolgozik esetleg (az egyebkent kivalo) VirtualTree nevezetu komponenssel? esetleg valamelyik tovabbfejlesztett/atdolgozott valtozataval?
    adatbazissal valo osszekotessel kapcsolatban jol jonne egy kis gondolatcsere, mert sokmindent lehet mondani a VirtualTree-re, de hogy egyszeru, azt nem :)
    mindossze egy par napja kezdtem tapogatodzni ez ugyben, mondjuk ugy, hogy mersekelt sikerrel. van par homalyos pont, es van par dolog ami mar vilagos. inkabb iranyelvek erdekelnek, nem konkret kodreszletek. hetfoig kell professionalnak lennem benne :)

  • lao ce

    aktív tag

    válasz Alan #51 üzenetére

    mostmar egeszen eles ez a kep memoriakezelesrol.
    lehet hogy azert, mert nincs alternativa mellette, de eleg jol hangzik ez az egesz, bolondbiztosnak es nagyon atgondoltnak.
    csak az erdekesseg kedveert ossze kellene vetni mas oprendszerek megoldasaval, mert az az igazsag hogy szidom magamban en is a windowst, de mikor a kozelebe kerulok melyebben, azert valahogy mindig tiszteletremelotnak hat amit csinal. es ilyenkor ezek a mindennapi vitak hogy mit nem tud meg igy ugy biztonsagos vagy nem, eleg felszinesekke valnak.

    a nagybitmappel kapcsolatban...
    az az igazsag, hogy almodozasom arrol szol, hogy szeretnek irni (haha) egy hmm... emulaciot. o... eletter + novenyek, plusz allatok. nehany dolgot osszeolvastam az utobbi par evben az allatok viselkedeserol meg ilyesmi es azt kell mondjam, hogy egy programozo szemevel ezek rettentoen algoritmizalhatoak. megdobbentoen mukodokepes am ugyanakkor egyszeru (tenyleg) az egesz. persze bizonyos melysegben mar nem, de oda nem is kell menni, mert a modellezesnel ugyi nem a reszletesseg a lenyeg.

  • lao ce

    aktív tag

    válasz Alan #49 üzenetére

    ''Első lépésben megnézi, hogy van-e még a kívánt méretben szabad hely a progrma (folyamat) címterében, ha van, akkor bejegyez egy foglalást egy táblázatba (virtual address descriptor table), de semmi mást nem csinál, nulla fizikai memóriát ad és laptáblákat sem készít az új memóriaterülethez (ezt hívják allokációs fázisnak). Csak vár. Arra, hogy a program ténylegesen hozzá is férjen az adott területhez. ''

    es

    ''memóriát akkor rendel hozzá, ha ténylegesen használatba is veszi a program a kért területet ''

    biztos bena kerdes, de mit jelent pontosabban az, hogy a program tenylegesen hozzafer (hasznalatba veszi) az adott teruletet a gyakorlatban? mondjuk ha betoltok egy bazi nagy kepet (loadfromfile :) - a delphi ugyi megnyitja a fajlt streamkent, beolvassa aztan a streamet felszabaditja), akkor az mar hasznalatba vetel? akkor az en nagy bitmapem bent van vagy nincs bent? ha atszinezem egy pixelet pirosrol zoldre az mar hasznalata az egesz kepnek vagy ez is 4k-s blokkonkent ertendo es csak azt a kis reszt vettem hasznalatba? (nem kell a peldahoz ragaszkodni ha valaszolsz)
    bizonyos almodozasaimban (programozasos - tudod, a 'ha lenne idom meg penzem' kezdetuek) szo van arrol hogy hatalmas true/high color kepet hasznalnek bizonyos nem kepi informaciok letarolasahoz.

  • lao ce

    aktív tag

    válasz Alan #46 üzenetére


    eloszor is nagyszeru iras, nagyon koszonom. vilagos es ertheto. minden elismeresem.
    :)
    - a foglalasnal a program egyertelmuen megmondja, mennyit akar maganak. ez nem tarolodik el valahol? hiszen ez az amit 'lefoglal', meg akkor is ha nem kapja meg.
    - a woking set-et lehet latni a task managerben (a kozepso oldalon a processeknel)?
    - working set ujra: ''Ennek a méretét a rendszer maga szabályozza'' ez azt jelenti hogy novelheti es csokkentheti is, mivel szabalyozni probalja a page faultok masodpercenkenti szamat, ugye?

    az a helyzet, hogy kihuztam egy csomo kerdest, mert mire leirtam, rajottem hogy benne van az iromanydban a valasz.

  • lao ce

    aktív tag

    válasz Alan #46 üzenetére

    no, most olvastam el eloszor.
    mindjart megyek haza melobol, elolvasom otthon ujra.
    aztan reggel.

  • lao ce

    aktív tag

    válasz Alan #44 üzenetére

    koszonet hogy visszaneztel :)

    memproof letoltve.

    dehogy haragszok, orulok hogy legalabb van aki erti az ilyesmit, es raadasul erre kolbaszol. termeszetesen erdekel (esetleg mast is), viszont ha tenyleg hosszu, akkor nincs szivem ilyesmire kerni teged. ha ugy erzed egyszer, hogy tul borongos a delutan, es az ujjaid faznak... nos, akkor esetleg... de nem surgos, mert az eddigi segitseggel amit kaptam toled mar tul tudom magam tenni ezen a feltetelezett probleman.

    nem tudom egyebkent milyen delphit hasznalsz, en most tettem fel a hatost: teljesen kihagytak a win32 api helpet belole, vagy csak az en standard verziomnak nem resze? az otosomben benne volt - igaz csak 95/98/nt, de azert jobb volt mint a semmi.

  • lao ce

    aktív tag

    válasz Alan #41 üzenetére

    koszonet a hm-ert, kiprobaltam, nem is tudtam rola, azt hiszem eletemben nem inditottam el a delphit parameterrel. kicsit fura nezni az ot es het jegyu szam valtozasat -ugy ertem vizualisan kicsit nehez kovetni, de majd megszokom.

    Alan, nem tudsz nekem ajanlani valami helyet ahol ilyen van, vagy kodreszletet amivel ki lehetne irni mekkora memoriat is fogyaszt a programom? en valahogy azt hittem (arrol almodoztam) hogy van valahol egy api. de sehogyse hogy a szemem ele keruljon, szoval attol tartok ilyen nincs. neked van valami modszered / olvasmanyod / segedprogramod arra az esetre hogyha memory leakek utan nyomozol? (leszamitva a hm-et)

    a bitmap olvasas utan megnovekszik a t/m altal mutatott memoria, aranyosan a beolvasott bitmappel, szoval novekedni azt tud. csak csokkenni nem. aztan mar higgadtabban atgondoltam, es rajottem hogy valami remlik errol -csak mikor errol olvastam akkor epp nem erdekelt-, hogy a windows a memoriat tenylegesen csak kesobb, ha szukseg van ra vagy valami, akkor szabaditja fel.
    szoval, megprobaltam varni de semmi, mas alkalmazasok hasznalatanal valtozott az en prgom memoria foglalasa, de nem egeszen ertettem mikor es miert. vegul ugy nez ki, ha a minimalizalom a programomat es utana restore, akkor mindig es egyertelmuen megvaltozik (lecsokken) a taskmanagerben mutatott memoria hasznalat. vagyis nem a memoria hasznalat, hanem a memoria hasznalatra utalo szamok. :)

  • lao ce

    aktív tag


    kezdem azt hinni, hogy valamit alapvetoen nem ertek. ennyi ev utan.

    1) elinditom a task managert, raallok a kis programomra
    2) van egy gombom megnyomni, erre betoltodik egy bitmap a memoriaba filebol. (loadfromfile)
    3) megno a memoria fogyasztas
    4) eleresztem (probaltam .free-vel es freeandnil-lel is)
    5) nezem a taskmanager... a nagy fenet eresztodik el, ott terpeszkedik a diszno

    D5 es D6 kiprobalva. elgepeles ki van zarva.

    ja, a legerdekesebb ez a resz:
    finally
    FreeAndNil(WorkBitmap);
    //WorkBitmap.Free;
    Application.ProcessMessages;
    end;

    ha beteszem ezt a sort application.ProcessMessages, akkor a memoria megnovekszik! no, ezt mar vegkepp nem ertem.

    esetleg valaki elmagyarazna nekem hogy hogyan is lehet kitakaritani a memoriabol valamit? en azt hittem hogy evek ota rendesen csinalom... aztan tessek.

Aktív témák

Hirdetés