|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#31
|
|||
|
|||
когда напишешь так
Код:
property uchastok: tuchastok_array // и здесь read fuchastok write fuchastok; То есть нужно либо оставить только свойство для чтения(при этом модифицировать элементы массива будет возможно), либо сделать более сложные телодвижения типа таких Код:
tbalka=class private fuchastok: array of tuchastok; fshema:tcanvas; function GetUchastok(index:Integer):tuchastok; procedure SetUchastok(index:Integer; value :tuchastok); procedure setshema(value:tcanvas); public property uchastok [index:integer]: tuchastok read GetUchastok write SetUchastok; property shema:tcanvas write setshema; end; вот так Код:
var uchastok:tuchastok; uchastok:=balka.uchastok[i]; uchastok.fdlina:=10; balka.uchastok[i]:=uchastok; а вто так Код:
balka.uchastok[i].fdlina:=10; То есть лучше оставить только свойство для чтения, повторяюсь, при этом модифицировать элементы массива будет возможно: Код:
balka.uchastok[i].fdlina:=10; Индексированное свойство нужно делать, когда элементы являются ссылочными типами, например классами. |
#32
|
|||
|
|||
В догонку - не усмотрел, что tuchastok у вас класс. Тогда мой комментарий на тему невозможность вот этого кода
Код:
balka.uchastok[i].fdlina:=10; Код:
write fuchastok; |
#33
|
|||
|
|||
Ужас, после работы несколько месяцев, вернулся к изучению delphi многое подзабыл, сейчас буду вспоминать, может книжку акую посоветуете по классам рименимо к данной теме)
|
#34
|
|||
|
|||
Цитата:
не очень удобно тогда получается а разве в предыдущем модуле он не определен? или можно как то его определить не создавая новый тип данных? я же присваиваю значение из другого модуля Код:
procedure TForm1.Button1Click(Sender: TObject); begin with balka do begin uchastok[0].dlina:=0.6; uchastok[0].ploshad:=2*30; uchastok[1].dlina:=0.4; uchastok[1].ploshad:=30; uchastok[2].dlina:=0.5; uchastok[2].ploshad:=30; end; balka.setshema(form1.canvas); end; какое-то масло масленное получается Код:
tuchastok1=tuchastok; tbalka=class private fuchastok:array of tuchastok1; fshema:tcanvas; public property uchastok:array of tuchastok1 read fuchastok write fuchastok; procedure setshema(value:tcanvas); property shema:tcanvas write setshema; end; Последний раз редактировалось Pavel_Aleksandrovich, 21.01.2013 в 20:28. |
#35
|
||||
|
||||
Цитата:
http://www.softportal.com/software-4...odvinutih.html Как на меня, отличный учебник, даже кажись примеры есть. Первая глава. Насчет графики - здесь школьный курс геометрии в помощь. |
#36
|
|||
|
|||
Цитата:
разобраться можно во всем главное найти грамотно изложенную информацию, например мне нужно знать 1) правила создания классов (не просто как написано у культина или фленова объект класс инкапсуляция, полиморфизм, наследование, и пример какого то легкого класса который по сути ни чего не может а прям по полочкам разложенное чтоб я мог самостоятельно его создать, используя другие модули классы и тп и тд) 2) правила работы с этими классами, в этом модуле в другом и тп Последний раз редактировалось Pavel_Aleksandrovich, 21.01.2013 в 20:38. |
#37
|
||||
|
||||
Я лично во всем разобрался, разбирая VCL - шные модуля Делфи. Там многому можно научиться, главное знать, что искать . А так, с нуля врядли что-то получится.
Нужно самому пробовать что-либо создать, но более простое. Тогда поймешь и правила создания (че за правила?), и правила работы (приемы). Берешь книгу, где рассматривается пример, и делаешь этот пример сам, иногда "подглядывая" в книгу. Репетитора же нанимать не хочешь? |
#38
|
|||
|
|||
Цитата:
Так на примерах и учу по Культину (основы программирование в Delphi7), в плане ООП там достаточно мало инфы вот, алгоритм создания нужного мне класса выше написан там ошибки, вот и ищу такую литературу чтобы при написании не делать таких ошибок, репетитор классная штука, но здесь нужен такой человек который умеет учить был опыт работы с репетитором не очень удачный, а уметь учить и знать это разные вещи инфу необходимо выдавать доступно) |