2008-10-16T15:49:51+02:00
2008-10-16T22:58:40+02:00
2022-06-29T09:15:41+02:00
- Szia!
Szerintem 60-70 form simán előfordulhat, jó nagy program leszInkább azon érdemes elgondolkodni, hogy több részre szeded, mert monolitikusan 80MB-os EXE lehet belőle...
Azért nem érdemes autocreate-nimert fölöslegesen foglalja a memóriát - főleg nagyobb listboxok esetén az számottevő lehet. Meg lassítja a programindulást, amikor ugyanúgy létrehozódik, mint ha kézzel csinálod.
Saját gyakorlatomban azokat a formokat szoktam autocreate-tal létrehozatni, ami a program futása során gyakran/rendszeresen kell, az idő nagy részében úgyis be van töltve. Egy "About" képernyőt viszont elég akkor betölteni, ha a "Súgó|Névjegy" menüpontra kattintottak.
Viszont semmiképp NEM javaslom a kézzel kódolt formokat, mert sokkal nagyobb lesz a kód (és hosszabb a megírása), mint ha hagyod a Delphi-nek.
Ami sokat segít a rengeteg form hatékony leprogramozásában, az a tFrame!!! Találj minél több közös ablakrészt, amit aztán sok helyen használhatsz - ezeket írd meg olyan általánosra, amennyire csak bírod. Megéri a befektetés. Jelenleg pl. olyan tListBox leszármazottat készítek, amiben keresni és szűrni lehet egyszerűen billentyűzve a szöveget. Ez egy lista, fölötte egy panelen egy tEdit és néhány gomb. Valamint mögötte egy tStringList, meg persze jó sok kód, sok függvény meg property. De a végeredményt minden helyen használni tudom, ahol tListBox volt eddig (van pl. egy boolean .CanSearch és .CanFilter tulajdonsága, amivel letilthatom a keresést; ettől ugyanolyan lesz, mint a szokvány lista - de bármikor bővíthetem).Mutasd a teljes hozzászólást! - TomXválasza AlterEgo_2 (20:31) részére
- 2008.10.16. 20:48
- permalink
gondolom a jó megoldás az, hogy a legutolsó közös pontig design-time létrehozom a formot és a fennmaradó részt meg runtime kódolom le?!
Igen, hogyha amit lekódolsz, azt az összes form-ra, de legalábbis sokra tudod alkalmazni, és nem kell külön kódot írni mindegyikhez.Mutasd a teljes hozzászólást!- AlterEgo_2válasza TomX (18:28) részére
- 2008.10.16. 20:31
- permalink
Köszönöm a hozzászólásod!
Ajánlom még a Frame használatát is, amivel előre csoportosított, elrendezett, és beállított komponenseket helyezhetsz el a Form-on.Az auto-create -ből kivett, futásidőben létrehozott formok + frame felé indultam el.
Ez esetben biztos van valami logikai kapcsolat a formok felépítése között, és egyszerűbb lekódolni, hogy egy adatbázis, vagy egy konfigurációs fájl alapján építse föl a Form-okat.Van. Pl. a törzsadat (cikkszám,raktár,mozgásnem,...)lekérdező formok méretükben, StaticText komponens text tulajdonságukban és a DBGrid adattartalmában térnek el (ezeket mind külön formnak számoltam), így gondolom a jó megoldás az, hogy a legutolsó közös pontig design-time létrehozom a formot és a fennmaradó részt meg runtime kódolom le?!
Mutasd a teljes hozzászólást!- AlterEgo_2válasza *deleted_08849376 (16:44) részére
- 2008.10.16. 20:17
- permalink
Köszönöm a hozzászólásod!
1. Kérdéseket a tudástárban illik feltenni.Nincs konkrét kódra vonatkozó kérdésem (azzal elboldogulok többé-kevésbé). Csak arra lettem volna kíváncsi , ami a Cantu könyvekben sincs benne, vagyis , hogy egy ilyet hogyan érdemes kivitelezni.
2. Ki kell venni az autocreate-ből és szépen kézzel létrehozni.Erre indultam el én is (+frame), csak valahol ott volt a kisördög, hogy most akkor ez a jó megoldás, vagy a "majdnem mindent kódból"?
Mutasd a teljes hozzászólást!- 70-80 Form
Ez esetben biztos van valami logikai kapcsolat a formok felépítése között, és egyszerűbb lekódolni, hogy egy adatbázis, vagy egy konfigurációs fájl alapján építse föl a Form-okat. Ajánlom még a Frame használatát is, amivel előre csoportosított, elrendezett, és beállított komponenseket helyezhetsz el a Form-on.
Azt is megfonolhatod, hogy inkább tab-okat használj. Bár, nem tudom, miféle alkalmazás lehet ez.Mutasd a teljes hozzászólást! - *deleted_08849376válasza AlterEgo_2 (15:49) részére
- 2008.10.16. 16:44
- permalink
1. Kérdéseket a tudástárban illik feltenni.
2. Ki kell venni az autocreate-ből és szépen kézzel létrehozni.
De ettől a RAD nyújtotta előnyökről hülyeség lemondani, azaz használd a form designert egészséggel. Rá lehet pakolni kézzel is a formra a kontrollokat de igazán semmit nem nyersz vele csak ráköltesz egy rakás időt feleslegesen és write-only lesz a programod.Mutasd a teljes hozzászólást!- AlterEgo_2vitaindítója
- 2008.10.16. 15:49
- permalink
Sziasztok!
Delphiben szeretnék csinálni egy programot ,ami kb 70-80 (később ez lehet akár *2 is) formból állna és éppen ezért szeretném kikérdezni nálam okosabbak/tapasztaltabbak véleményét.
Azt már tudom/olvastam, hogy ilyen nagyságrendnél nem célszerű auto-create formokat használni. Melyik a jó/jobb megoldás: ha auto-create-ből kiszedett formokat és frame-eket használok és azokat mindig csak ott,akkor és addig hozom létre ,amíg szükségesek , vagy ha mindent kódból hozok létre?
Ez utóbbi esetén hogyan célszerű kódolni, milyen megoldások vannak? Hogyan célszerű pl egy olyan formot lekódolni , amelyen egy rakás eltérő osztályból származó komponens van? (pl: DBGrid, Edit, Label, Button, ToolBar,...)
Előre is köszönöm!
AEMutasd a teljes hozzászólást!