Autor Téma: Uz mi to IDE zase pije krev :-(  (Přečteno 388 krát)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2475
  • Karma: 131
    • Verze Delphi: D2007, XE3, DX10
Uz mi to IDE zase pije krev :-(
« kdy: 26-02-2019, 06:53:10 »
V .dpr vytvarim instanci data modulu:
Kód: Delphi [Vybrat]
  1. Application.CreateForm(TXxxxxxxMachineModel, MachineModel);
A kdykoli pridam dalsi unit, tak mi to ten shit zmeni do neprelozitelne formy
Kód: Delphi [Vybrat]
  1. Application.CreateForm(TMachineModel, MachineModel);

>:( Nenapada nekoho, co by se s tim dalo udelat?

Online Delfin

  • Padawan
  • ******
  • Příspěvků: 1712
  • Karma: 66
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Uz mi to IDE zase pije krev :-(
« Odpověď #1 kdy: 26-02-2019, 08:33:59 »
>:( Nenapada nekoho, co by se s tim dalo udelat?

Jiste. Prestan pridavat unity ;D

Ale ted vazne. Pokud chces IDE zachovat moznost vkladat CreateForm s kazdym (pres UI) pridanym modulem, asi budes s timto problemem bojovat, protoze IDE zda se chce mit nad *.dpr plnou moc. Snad nejaky wizard by mohl teto zvracenosti zabranit. Obejit tento problem by sel za pomoci inicializacni (main) procedury v separatnim modulu, nicmene tim prijde IDE o schopnost vkladat CreateForm pro pridane moduly. Nebo vytvorit inicializacni proceduru jen pro datove moduly, cimz se IDE zachova schopnost pridavani zmineneho volani, coz ovsem nezabrani pridavat i datove moduly a pomerne snadno v *.dpr zpusobit zmatek.

Jinak k tomu chovani IDE; to si zkratka vezme nazev promenne instance predane volani CreateForm a prvni parametr typu tridy z nej po pridani prefixu T sestavi (opakovane, napr. i po zminovanem pridani noveho modulu; snad aby tim dokazali nasrat co nejsirsi skupinu uzivatelu).
« Poslední změna: 26-02-2019, 09:01:08 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2475
  • Karma: 131
    • Verze Delphi: D2007, XE3, DX10
Re:Uz mi to IDE zase pije krev :-(
« Odpověď #2 kdy: 26-02-2019, 09:11:28 »
Jiste. Prestan pridavat unity ;D
Tak jsem to delal doposud. A kdyz jsme meli hutny projekt plny podmineneho prekladu, tak jsme tu uses klauzuli pred Delphi museli schovat do includu :-(

Ale ted podminene pouziti modulu nemam a v IDE zacal uz skoro fungovat automaticky reformat zdrojoveho kodu, tak jsem si rek, ze ho zkusim pouzivat.
No asi se vratim k osvedcene praxi a zase budu uses klauzuli editovat rucne.

Citace
Jinak k tomu chovani IDE; to si zkratka vezme nazev promenne instance predane volani CreateForm a prvni parametr typu tridy z nej po pridani prefixu T sestavi (opakovane, napr. i po zminovanem pridani noveho modulu; snad aby tim dokazali nasrat co nejsirsi skupinu uzivatelu).
No prestoze se kdysi Borland holetbal, ze se jedna o two-way nastroj, tak jim nikdy nebyl a specialne ten .DPR vzdycky kulhal za zbytekem IDE :-( Oni to delaji jako na urovni wizarda, ktery neni provazany s prekladacem - to je podobne, jako to reformatovani - to je taky v podstate plugin do editoru, ktery nic nevi o prekladaci a tabulce symbolu a kdyz unifikuje treba symboly a jako prvni je v unit pouzito TRUE, tak vsude nasazi TRUE, prestoze v systemu je to definovano jako True etc...

No zkratka reseni, aby se nereklo.


Offline JaroB

  • Guru
  • *****
  • Příspěvků: 922
  • Karma: 26
    • Verze Delphi: XE8, Seattle
Re:Uz mi to IDE zase pije krev :-(
« Odpověď #3 kdy: 26-02-2019, 09:23:03 »
Pokud přidávám unitu s formem, nedělám ji v projektu, ale mimo něj a umažu globální proměnnou s formem. Teprve pak přidám do dpr - nevytvoří se mi CreateFrm().

Jinak obecně dpr léta letoucí nesnáší ruční editaci
« Poslední změna: 26-02-2019, 09:46:30 od JaroB »

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2249
  • Karma: 100
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Uz mi to IDE zase pije krev :-(
« Odpověď #4 kdy: 26-02-2019, 09:41:37 »
V .dpr vytvarim instanci data modulu:
Kód: Delphi [Vybrat]
  1. Application.CreateForm(TXxxxxxxMachineModel, MachineModel);
A kdykoli pridam dalsi unit, tak mi to ten shit zmeni do neprelozitelne formy
Kód: Delphi [Vybrat]
  1. Application.CreateForm(TMachineModel, MachineModel);

>:( Nenapada nekoho, co by se s tim dalo udelat?


Mi pomohlo toto:
Kód: Delphi [Vybrat]
  1.   Application.Initialize;
  2.   mojeprocedura;
  3.  Application.Run;
  4.  
kde mojeprocedura je vytvareni formularu pri startu.
Embarcadero MVP - Czech republic

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2475
  • Karma: 131
    • Verze Delphi: D2007, XE3, DX10
Re:Uz mi to IDE zase pije krev :-(
« Odpověď #5 kdy: 26-02-2019, 11:00:19 »
Kód: Delphi [Vybrat]
  1.   Application.Initialize;
  2.   mojeprocedura;
  3.  Application.Run;
kde mojeprocedura je vytvareni formularu pri startu.
Kdyz jsem v project options zrusil automaticke vytvareni vsech formu a mojeprocedura dal do extra unit mimo .dpr, tak se zda, ze to funguje.