| | |
| Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
Autor | Správa |
---|
Registrovaný: 23.01.07 Prihlásený: 14.04.11 Príspevky: 239 Témy: 26 |
Zdravím. Mám jeden problémik neviem ako mám spočítať záznamy poľa. Konkrétne je to:
Kód: rearr: array[1..300] of TRichEdit;
|
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
ehm, ja mám jednú otázku. Nechcem rýpať, ale prečo to omg robíš cez pole, keď sú na to vhodnejšie metody?
|
|
Registrovaný: 23.01.07 Prihlásený: 14.04.11 Príspevky: 239 Témy: 26 | Napísal autor témy martin90: 21.12.2007 19:04 | |
|
Zrobil som to cez pole, funguje to tak nevidim dovod preco by to nemohlo byt cez pole a tie metody co myslis nepoznam
|
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
prečo nie?
> zložitá práca (mazanie objektu zo stredu znamená posunúť všetky nasledujúce o jedno)
> zbytočne deklaruješ veľké množstvo pamäte na 300 objektov ktoré možno vôbec nevyužiješ
> relatívne dlhe pristupove časy pri sekvenčnom prehladávani
> ...
ak si ale tvrdohlavý a nechceš si nechať poradiť, budiš. Ale aspoň to sprav cez dynamické pole aby si nedeklaroval zbytočne viac pamäte ako potrebuješ. Tam si aj lahko môžeš zistiť počet prvkov.. Inak nemám chuť ti pomáhať, s takýmito zverstvami nechcem mať nič spoločné
...a keby sa každý držal pravidla že "funguje to, tak prečo to meniť", tak by sme ešte rátali na prstoch. Veď vyrátať sa dá aj tak, tak načo vymýšlať niečo dokonalejšie ako je pc, že?
|
|
Registrovaný: 23.01.07 Prihlásený: 14.04.11 Príspevky: 239 Témy: 26 | Napísal autor témy martin90: 21.12.2007 22:24 | |
|
jj na dynamicke pole to prerobim len som chcel ze ci to funguje a ak mi nechces pomoct tak nemusis sice by som bol rad ale nutit ta nemozem
|
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
pri statickom je to zložité, musiší ho najprv preddefinovať:
Kód: for i:=1 to 300 do rearr[i]:=NULL potom si zistíš počet jedine prechádzaním takto: Kód: for i:=1 to 300 do if rearr[i]<>NULL then inc(pocet)
pri dynamickom jednoducho stačí high(rearr) a je to (jedna z výhod, stále je tam ale problém s mazaním)
|
|
Registrovaný: 23.01.07 Prihlásený: 14.04.11 Príspevky: 239 Témy: 26 | Napísal autor témy martin90: 22.12.2007 8:15 | |
|
ahaaa diky. a ake su to tie ine metody? pytal som sa kamosa a povedal ze to mam urobit cez pole. Mozem povedat ze je to tazke ale zatal som to zmakol az na jednu vec - ukladanie posunutych tabsheetov
|
|
Registrovaný: 17.11.06 Prihlásený: 31.12.07 Príspevky: 677 Témy: 9 |
tak ten tvoj kamoš teda nie je tiež nič moc Použi TList
|
|
Registrovaný: 23.01.07 Prihlásený: 14.04.11 Príspevky: 239 Témy: 26 | Napísal autor témy martin90: 22.12.2007 10:52 | |
|
to bol den po opici ked mi to poradil. Furt je ozraty
Ok tak skusim este sa posrat s polom a ked to vzdam pojdem na ten TList.
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | Napísal chrono: 22.12.2007 18:34 | |
|
Asi by bolo najlepšie, keby si si prečítal niečo o triedení/hľadaní/pridávaní/vymazávaní prvkov. Napr. pole je dobré, ak sa obsah nemení. Zoznam (List) je zase pomalší pri hľadaní (ale môžeš to vyriešiť napr. pomocou hash)... Je to celkom zaujímavá oblasť a je dobré ak o možných problémoch vieš.
Inak ak máš v tom poli iba nejaké statické odkazy, tak ti stačí ešte jedna premenná, v ktorej budeš mať počet.
|
|
Registrovaný: 23.01.07 Prihlásený: 14.04.11 Príspevky: 239 Témy: 26 | Napísal autor témy martin90: 22.12.2007 21:34 | |
|
je to takto REARR je pole TRichEdit :
Kód: rearr: array[1..300] of TRichEdit a program je textovy editor s tabsheetmi. Pri tvorbe tabsheetu treba aj richedit Kód: procedure NewFile..blabla.; var tab: TTabSheet; pcount: integer; ... begin ... pcount:= pagecontrol1.PageCount; ... tab:= TTabsheet.Create(self); tab.Pagecontrol1:= pagecontrol1; tab.Name:= 'NewTab'+ inttostr(pcount); ... rearr[pcount]:= TRichEdit.Create(self); rearr[pcount].Parent:= tab; rearr[pcount].name:= tab.Name + 'redit'; ... end;
aha pole je pri veciach ked sa obsach nemeni a mne sa meni pri istych udalostiach. Aaach secko je v treba to prerobit
|
|
| Stránka: 1 z 1
| [ Príspevkov: 11 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|