|
|
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Профессионалы рекомендуют отделять бизнес-логику приложения от визуальных элементов и форм, т. е. не делать так, чтобы сама форма и была этой логикой. Но если я как раз всю логику "нарисую" внутри формы, а потом вместо Код: pascal 1. напишу Код: pascal 1. (заодно выкинув все визуальные свойства) то разве это не будет как раз созданием отдельного невизуального класса реализующего логику ? (да ещё и созданного вполне себе удобными визуальными средствами IDE в Design time) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 07:40:53 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Новичок ООП.., А Вы попробуйте - может что и получится :) И посмотрите на DataModule ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 07:54:01 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
авторПрофессионалы рекомендуют Они имеют ввиду, чтобы "под кнопками" больше одной строки кода не бывало. Такой подход позволяет, кроме прочих удобств и порядка в голове, легко сменить интерфейс и сделать несколько интерфейсов. А как ты логику с помощью "визуальных средств IDE" собрался делать, я не знаю. Всё, что для этого может понадобиться - редактор кода ну и средства отладки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 08:59:31 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Новичок ООП.., Это называется MVC (Model View Controller). Среда в Делфи изначально устроена так, что не следует этому принципу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 10:02:42 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Valery_B, Можно было бы и возразить, но вообще, да. Чтобы реализовать MVC паттерн, нужно больше времени на проектирование. Делфи навязывает сделай это проще и не парься, сейчас. Зато парься потом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 10:10:38 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Новичок ООП.. Профессионалы рекомендуют отделять бизнес-логику приложения от визуальных элементов и форм, т. е. не делать так, чтобы сама форма и была этой логикой. Но если я как раз всю логику "нарисую" внутри формы, а потом вместо Продумай сущности, с которыми будет работать твое приложение, опиши их в отдельных модулях, и обращайся к ним из форм. Это вкратце. И не мудри с type TMySuperForm = class(TObject). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 10:14:56 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
hottabych31Делфи навязывает сделай это проще и не парься, сейчас. Зато парься потомЭкая чушь. Ничего не навязывается. Делфи дает выбор: сделать по-правильному, но медленно, или сделать быстро но не совсем правильно. Во многих случаях второй вариант единственно возможный (по ряду причин). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 10:22:25 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 10:26:49 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Компоненты? У меня лично вот че вышло: наследованый класс от класса главной формы в отдельный юнит, но с сохранением оригинальной. В наследованности просто базовая логика, базовые действия. В оригинальной остается лишь управление базовыми действиями. Глупость вышла, _наверно_. У меня глобал переменная MyApp: TMyApp (что есть главная форма) и обращаюсь к ней, чтобы "поуправлять", хотя управляльщик-то мой наследник! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 10:41:30 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Новичок ООП..Здравствуйте! Профессионалы рекомендуют отделять бизнес-логику приложения от визуальных элементов и форм, т. е. не делать так, чтобы сама форма и была этой логикой. Фаулера почитай, он довольно толково пишет про этот аспект. Новичок ООП..Но если я как раз всю логику "нарисую" внутри формы, а потом вместо Код: pascal 1. напишу Код: pascal 1. (заодно выкинув все визуальные свойства) то разве это не будет как раз созданием отдельного невизуального класса реализующего логику ? Это будет непонятно что и зачем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 10:53:12 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Кар-Кар, Зачем ты выкладываешь сюда такой "чудо-код" и тем более в картинках ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 10:58:35 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Не вдаваясь в подробности, настораживает фраза Кар-Карнаследованый класс от класса главной формы в отдельный юнит, но с сохранением оригинальной. Зачем? Наследование- жесткая связь. Наоборот, принцип MVC в максимальном отделении бизнес-логики логики от интерфейса. Ps. Это действительно кар-кар) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 11:01:44 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Я у cheatengine мельком пока только просматривал исходники, больше не видел толком большого софта с сырцами и как там все реализовывают. Вы-то как все пишите? Я не знаю, я первый раз программу пытаюсь делать... Так-то все рабочие лошадки написаны уже, надо визуализировать теперь, предоставить контроль человеческому существу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2017, 11:16:49 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Новичок ООП..то разве это не будет как раз созданием отдельного невизуального класса реализующего логику ? Не надо путать паттерн ООП и приемы разработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2017, 18:03:07 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
hottabych31Не вдаваясь в подробности, настораживает фраза Кар-Карнаследованый класс от класса главной формы в отдельный юнит, но с сохранением оригинальной. Зачем? Наследование- жесткая связь. Наоборот, принцип MVC в максимальном отделении бизнес-логики логики от интерфейса. Ps. Это действительно кар-кар)Заменил TMain на TInterfacedObject. Ниче не изменилось, хотя если посмотреть, то как бы нужно распилить класс на 3 или даже 4(!), если следовать теоретическому ооп. Только дублирование-агрегирование будет в моем случае. Мульти-режимный вариант замутил, чтобы один exe, программа в программе и формочки лепить легко =) Так че у меня вышло, Класс 3 в 1 (менеджер режимов, частично контроллер(Open/Save диалоги, хранение пути к проекту) и собственно экспорт апи для режимов, вообще он взял на себя все банальные New/Open/Save/Undo/Redo). Типа апи: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611. 612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. 636. 637. 638. 639. 640. 641. 642. 643. 644. 645. 646. 647. 648. 649. 650. 651. 652. 653. 654. 655. 656. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. Победа. Победа? Я победил? Вариант, "эээ.. а, похерсайдет" меня устроит) Крик, статьи статьи статьи, понаписали, теоретики, а реальной практики нет, кода нет. Без понятия че делать, когда теперь придется прикручивать листы, списки, инфу, реакции, сообщения, циклические сообщения, двусторонние.... Все мантайнить надо и натыкаться на проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 05:24:43 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
ну, cудя по замаху, в конце и должна получиться копия VCL ))) ознакомьтесь например с такой реализацией отделения интерфейса от логики ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2017, 09:20:20 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Ссылку вообще не видел, пока постить не начал(( NoScript стоит. А 3 дня назад ютуб перестал работать, тырить с компа че-то начали видимо, а у меня SYSTEM-DENIED на доступ к истории, посещенным линкам и прочее, вот и блокируют мне)) <паранойа> krapotkin, спасибо. Не уверен подходит ли мне, ну, чтобы кодить, а то вообще не знаком с DB и Unit-тестами. Насчет разделения кажется есть теория, почему так пишут. Есть данные, загрузили на форму, все. Первый инстинкт: ну раз загрузили, вот они все данные на форме, то давай онклик, ончейндж и т.п. Тем более если форма знает как данные показывать, то ясень пень она знает как их сохранять, редактировать и вообще родственные души. Потом просто считаем с контролов и готово, а разделять это типа для run-time чисто. У меня есть ~2000 файлов разных форматов, друг на друга ссылаются в разных ключах и секциях, зависимость у них колоссальная т.е. даже рефакторинг возможен, и класс возвращающий интерфейс для работы с каким-либо файлом: Код: pascal 1. 2. 3. 4. Там и TInIReader, и TStream и всякое, только вот они никаких сообщений не посылают. Редактируй свободно. Единственный вариант, явно логгировать, что изменил и слать классу, чтобы в случае чего он там пофиксил или вдруг рефракторинг. Потом обратно пришлет это сообщение, да ещё может с увеличеным array of notification, якобы там ты значение, говоришь, изменил, так вот его пришлось ещё в 200 файлах подправить и пару новых добавить. Давай обновляй UI. Для низкоуровневого редактирования, но оставаясь в гуще событий. И сделал бы просто notify_file_updated, только прога от перерисовок загнулась бы... если только форму не считать подобием кэша. If FValue <> Value then. Буду думать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2017, 19:16:36 |
|
||
|
формошлёпство? а если заменить class(TForm) на class(TObject) ?
|
|||
|---|---|---|---|
|
#18+
Вспомнил Прилинкованный UInt64, хэндл, от 1 до 18446744073709551616. Меняется что-то (секция, ключ, нода) и становится новый хэндл для параметра или группы параметров, AtomicInc(FHandle). Сиди только в потоке и фильтруй "все ли на месте/что-то новенькое", отправляй на монитор. Дольше, но не проблемы класса, зато свободно редактировать можно ни о чем не парясь, кому надо начнет фильтровать. отличный конец недели ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2017, 22:15:57 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39513766&tid=2041869]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
202ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 565ms |

| 0 / 0 |
