Dá se vytvořit formulář tak že zkopíruju soubor pas a dfm? Já to tak udělal, zeditoval a teď jsem dostal hlášku Warning duplicate resources. Chtěl jsem si ušetřit práci ...
Aktuální verze programu 2.33.
#1 oxidián
musíš kompletně přejmenovat, od jména unity přes jméno formuláře a form.metod (tu první část s třídou formu)
pokud nebudeš upravovat metody a fungování není třeba kopírovat stačí vytvořit novou instanci původního
problém u toho tvýho programu je to jak je postavenej z hlediska proměných.
kterej form jsi kopíroval kouknu se.
#3 oxidián
jednoduchý je tam jen chyba v názvu formuláře, otevři si BOOK.pas přejdi na design a změň název formuláře z btn... na fBook/formBook apod (jen BOOK bejt nemůže nesmí se to jmenovat stejně jako unita), tím se ti změní všechno i v kodu, pak jen uložíš a naimportuješ do projektu.
#7 oxidián
nevidím modul BOOK v projektu, musíš si ho tam přidat. fungovalo by to tak kdyby byl book součástí BLP knihovny,Kompilace se na něj sice podívá, použije referenční adresy, ale nezahrne to do programu tzn že se ti tam nevytvoří ten BOOK objekt.
#9 oxidián
no já si nepamatuju jak to bylo v D7, já ted používám v práci D2010 a doma 10.1 Berlin.
Primárně jde o to, že se ti bez toho přidání do projektu nevytvoří ten globální objekt BookDialog.
Jinak všechny ty formuláře se ti vytvoří při startu aplikace aniž bys je v aplikaci třeba jedinkrát použil. ikdyž při dnešních velikostech RAM na tom už nezáleží, v případě potřeby se s nimidá pracovat dynamicky.
to že ten modul Book není v projektu by šlo obejít přidáním řádků do main formu
nahoře si vytvořit definici objektu ve
Var
booksDialog : TbooksDialog
a pak v té za begin té funkce vložit řádek
if booksDialog=nil then booksDialog := TbooksDialog.Create(self);
to je dynamické generování formuláře, dokud není aktivován je v paměti umístěná jen prázdná reference, a až po create se vytvoří celej objekt formuláře.
na konci před opuštěním funkce ho zase můžeš uvolnit
booksDialog.free;
Odzkoušeno a funkční, jen když ho neuvolníš zůstane skrytý na pozadí s předvyplněnými posledními údaji.
Pak ještě je možnost mít ten Book.pas v projektu a dynamicky:
1) Project - Options - Forms tem jsou 2 listy formuláře vytvářené automaticky při startu a available tak ten book přehodit do Available.
2) v modulu book zrušit to globální přiřazení objektu
Var
booksDialog : TbooksDialog
3) ty 3 kroky předchozím příspěvku v Main formu
Mimochodem uprav si v Antiwin i ten ukazatel cmd na PansiChar, musím opravovat v každý nový stažený verzi.
No já to teď do detailu moc neřeším, časem se k těmhle dynamickým věcem postupně dostanu.
Nahraju aktuální verzi.
Ještě mě napadlo, že bych mohl zavést výuku pomocí obrázků nebo audiozáznamu - dobré třeba pro malé děti co neumí číst nebo i pro dospělé co zase neznají správnou výslovnost.
Místo toho aby v souboru bylo na jednom řádku slovíčko, by tam mohlo být o jeden sloupec oddělený tabulátorem víc; program by pak sám detekoval jestli jde o obrázek nebo audio soubor nebo obojí a podle toho by přehrál zvuk nebo zobrazil obrázek.
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku