Autor Téma: Delphi XE6 - je omezení počtu formulářů v projektu?  (Přečteno 643 krát)

Offline KarelHorky

  • Plnoletý
  • ***
  • Příspěvků: 229
  • Karma: 9
    • Verze Delphi: XE6, Delphi 10.2 Tokyo
Zdravím všechny!
Narazil jsem na problém s přidáním formuláře do projektu (dpr) v Delphi XE6. Před přidáním formuláře šel projekt bez chyb zkompilovat a spustit. Pak jsem přidal jeden úplně prázdný form a při kompilaci se objeví chyby E2029, E2026, E2066, viz. obrázek. Formulář odeberu z projektu a zase jde bez chyb zkompilovat. Zkusil jsem přidat i úplně jiný formulář a zase stejné chyby kompilace.
Mám takovou teorii, že řádek v projektu, který obsahuje všechny formuláře a unity (začíná uses nahoře a končí středníkem po posledním formuláři), je příliš dlouhý. Při načtení se část na konci odřízne a pak tam chybí středník atd.
Setkal jste se s tím někdo? Co s tím?
Projekt je rozsáhlý, uses končí na řádku 413, je tam 197 formulářů, 4 frame a zbytek jsou unity.
K.
Win10 Prof 64b, Firebird 2.5

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5617
  • Karma: 42
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #1 kdy: 27-01-2021, 13:13:19 »
Aby si mohol skontrolovať svoju teóriu: Skopíruj si to do Wordu a pozri sa na počet znakov. Posúdiť -> Počet slov. Hranica pre string je 65 xxx znakov. xxx - nepamätám si hodnotu.
Zaujímavá je prvá chyba. Ďalšie už nie.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2828
  • Karma: 105
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #2 kdy: 27-01-2021, 13:40:51 »
Projekt je rozsáhlý, uses končí na řádku 413, je tam 197 formulářů, 4 frame a zbytek jsou unity.
Mam tu projekt kde uses v dpr konci na radku 690.

Spise bych vzal CTRL+A, zkopiroval do schranky, smazal z editoru, vlozil do notepadu, vybrat vse, zkopirovat a vlozit, zpet.
Nebo proste dpr otevri v notepadu a podivej se zda mas spravne konce radku, tj. zda uses konci taky na radku 413, resp. udelej malou zmenu a v tom notepadu to uloz.
Embarcadero MVP - Czech republic

Offline pepak

  • Padawan
  • ******
  • Příspěvků: 1539
  • Karma: 37
    • Pepak.net
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #3 kdy: 27-01-2021, 13:44:37 »
Každopádně 197 není žádný velký počet formulářů. Mám v projektu víc než 900 formulářů a poradí si s tím i staré Delphi 5. V modernějších Delphi mám projekty s 800+ formuláři a fungují bez problémů.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1038
  • Karma: 29
    • Verze Delphi: XE8, Seattle
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #4 kdy: 27-01-2021, 14:09:05 »
V některých případech dochází k poškození DPR souboru (např. shoda jmen dvou formulářů).
Někdy je nutné projekt v IDE zavřít a formulář vložit ručně přes extrení editor/notepad (mám v projektu asi 800 formulářů a funguje to)

Offline KarelHorky

  • Plnoletý
  • ***
  • Příspěvků: 229
  • Karma: 9
    • Verze Delphi: XE6, Delphi 10.2 Tokyo
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #5 kdy: 27-01-2021, 14:15:51 »
Takže 200 formů není moc. To je dobrá informace.
Ale problém trvá. Zavřel jsem projekt v Delphi. Otevřel jsem dpr v PSPadu, drobně změnil, uložil. Pak otevřel projekt v Delphi, ale kompilace končí chybou. Zase zavřel v Delphi, otevřel v Notepadu, změnil, uložil. Kompilace v Delphi zase chyba.
Když zapoznámkuju řádky, kde je chyba, tak se chyba objeví až na následujících řádcích. Třeba až na Application.Initialize; A to už zapoznámkovat nejde.
K.
Win10 Prof 64b, Firebird 2.5

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 5617
  • Karma: 42
    • Verze Delphi: W10 + Delphi 10.4 professional
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #6 kdy: 27-01-2021, 14:34:38 »
Tak vymaž všetky súbory, ktoré sa môžu, kde je dpr. Najprv si ich zálohuj. Okrem *.dpr, *.dproj a *.res všetky.
Už mi to pomohlo. Bol to problém práve s dpr.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1038
  • Karma: 29
    • Verze Delphi: XE8, Seattle
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #7 kdy: 27-01-2021, 15:28:27 »
Je možná potřeba nahlédnout do seznamu formulářů v souboru dproj a vymazat ho. Tam občas bývaly problémy.

Offline KarelHorky

  • Plnoletý
  • ***
  • Příspěvků: 229
  • Karma: 9
    • Verze Delphi: XE6, Delphi 10.2 Tokyo
Problém je vyřešený, i když je to nepochopitelné.
Vytvořil jsem úplně nový texťák dpr, do něj přes schránku zkopíroval obsah starého. Kompilace stále chyba. Zkoušel jsem zapoznámkovat všechno, až na to nejnutnější (Application.*). A až když jsem zapoznámkoval ty konstanty a direktivu kompilátoru SetPEFlags, najednou to zkompilovat šlo. Postupně jsem odpoznámkovával a nakonec byla nějaká chyba v té direktivě. Když jsem direktivu "narovnal" na jeden řádek, kompilace prošla bez chyb. A to jsem se nejdřív díval v PSPadu, jestli tam nemám nějaké netisknutelné znaky. Teď jsem se díval ještě v Hexa na zálohu a je tam jen CRLF.
Díky všem za rady!
K.
« Poslední změna: 27-01-2021, 15:53:25 od KarelHorky »
Win10 Prof 64b, Firebird 2.5

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 390
  • Karma: 9
    • Verze Delphi: XE2
Vytvořil jsem úplně nový texťák dpr, do něj přes schránku zkopíroval obsah starého.

Použítím pouze schránky nemuselo dojít k odstranění "závadných" znaků
IMHO spolehlivější by bylo  vložit do poznámkového bloku  a pak CTRL+A a CTLR-C

Offline KarelHorky

  • Plnoletý
  • ***
  • Příspěvků: 229
  • Karma: 9
    • Verze Delphi: XE6, Delphi 10.2 Tokyo
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #10 kdy: 28-01-2021, 08:48:22 »
Díval jsem se v Hexa editoru na dpr, který jsem si před čachry zazálohoval, a nejsou tam žádné podivné znaky. Jen CRLF. Proto mi přijde nepochopitelné, proč projekt se 196 formy jde zkompilovat a po přidání libovolného dalšího formu už nejde. A po odebrání nového formu zase jde zkompilovat bez chyb. A pak stačí direktivu zalomenou na 2 řádky narovnat do 1 řádku a už jde kompilace i s přidaným formem.
Ale už to považuji za uzavřené.
K.
Win10 Prof 64b, Firebird 2.5

Offline František

  • Guru
  • *****
  • Příspěvků: 630
  • Karma: 6
    • Verze Delphi: primárne v XE5, občas 10.2.3 comunity
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #11 kdy: 28-01-2021, 10:57:06 »
nemá na to vplyv uloženie v ANSI vs. UTF-8?

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3140
  • Karma: 137
    • Verze Delphi: D2007, XE3, DX10
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #12 kdy: 28-01-2021, 11:40:52 »
pak stačí direktivu zalomenou na 2 řádky narovnat do 1 řádku a už jde kompilace i s přidaným formem.
Ja bych videl problem v tom zalomeni direktivy na vice radku - to by me nikdy nenapadlo udelat a buh vi, jak to presne ma prekladac nadefinovane - BNF se mi nikde nepodarilo najit.

Offline JaroB

  • Guru
  • *****
  • Příspěvků: 1038
  • Karma: 29
    • Verze Delphi: XE8, Seattle
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #13 kdy: 28-01-2021, 14:26:40 »
Vyzkoušel jsem něco podobného v Seattle a tam prošlo rozdělení na víc řádků.
použil jsem direktivy
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
{$SetPEOptFlags IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE}

ale i tak je DPR citlivý na chyby při psaní.
Pokud píšu kód rovnou do DPR a udělám syntaktickou chybu, nebo mi něco nepodstatného ve výrazu chybí, dojde k chybě a DPR se poškodí (chybí první sloupec, slejou se řádky, zmatou středníky nebo vypadne uses). Nestává se to vždycky. Myslím si, že to nejčastěji nastává po chybě uvolňování paměti, kdy i podle správce prostředků IDE dosáhne na pomyslný paměťový strop a vypadnou určité funkce, např. nejde v textu přepsat vybraný text textem ze schránky, nebo nelze myší správně vybrat sloupec (aspoň mně se tak stává).
V tomto případě je nejlepší uložit rozdělanou práci a restartovat IDE.
U Delphi 2007 navíc manipulace s uses v případě ručního editování či dopisování ještě neexistujících unit nebo unit, které obsahují (nějakou) chybu, zaneřádí DPROJ xml soubor výpisem zkracujících se názvů souborů. DPROJ se musí opravit ručně, z IDE to nejde.

Offline KarelHorky

  • Plnoletý
  • ***
  • Příspěvků: 229
  • Karma: 9
    • Verze Delphi: XE6, Delphi 10.2 Tokyo
Re:Delphi XE6 - je omezení počtu formulářů v projektu?
« Odpověď #14 kdy: 28-01-2021, 15:06:02 »
Vyzkoušel jsem něco podobného v Seattle a tam prošlo rozdělení na víc řádků.
použil jsem direktivy
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP or IMAGE_FILE_NET_RUN_FROM_SWAP}
Direktivu mám stejnou.
Mám ještě několik projektů, kde to je zalomené a nedělá to problém. Ani v postiženém projektu to do včera nedělalo problém. Je to tam minimálně několik let. A po odstranění přidaného formu to taky nedělalo problém. Proto je mi to nepochopitelné.
K.
Win10 Prof 64b, Firebird 2.5