| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Создание своего класса в Delphi 7 |
| Автор: Sosisko 13.11.2007, 13:09 | ||
| Прошу помощи в создании своего класса ) нужно создать свой класс фигуры для шахматной доски сама шахматная доска уже создана нужно создать свой класс имеющий некоторые свойства) у меня вот так:
1) прошу помочь куда и как написать правильно конструктор с деструктором 2) Как вообще правильно написать процедуру с функцией 3) Как правильно написать read write 4) и вообще что я сделал не так и почему не работает ) СПАСИБО. |
| Автор: OdesitVadim 13.11.2007, 14:19 | ||||
| Приватный конструктор? это интересно. и как вы думаете его вызывать? мало того, имя Fcreate не совсем подходит, хотя никто не запрещал.
этот код лучше написать так
почему такие имена? так принято. Но сделать поле в виде 64 панелек - супер! |
| Автор: WaReZMEN 13.11.2007, 14:37 | ||||
Констуркто и деструктор пишется в Public
дисктруктор
|
| Автор: OdesitVadim 13.11.2007, 14:52 | ||
дЕструктор пишеться немного не так
|
| Автор: Sosisko 13.11.2007, 14:55 | ||||
OdesitVadim,
ну мне учитель сказал в приват его )
видимо ты очень хорошо разбираешься ) да именно так написано массивом спасибо. Добавлено через 5 минут и 3 секунды вот сама доска |
| Автор: Sosisko 13.11.2007, 15:02 |
| part 2 |
| Автор: OdesitVadim 13.11.2007, 15:10 |
| В делфи конструктор в приват не суётся. Это применяют иногда в С++, когда нужно сделать класс, который не должен создаваться "обычным методом", а только через специальный. А в делфи приватный консруктор... Если других нет, то его и нельзя вызвать - тоесть нельзя создать экземляр класса. вопрос, что делать с таким классом, если у него нет классовых методов? Спроси преподавателя об этом. Добавлено через 2 минуты и 25 секунд Я бы сделал просто PintBox или панельку, на которой бы нарисовал поле. и всё. а фигурам вместо координамы в виде панельки передавал бы нормальные координаты (x,y) Хотя каждый сочиняет проблемы на свою голову сам. |
| Автор: Sosisko 13.11.2007, 15:13 | ||||
OdesitVadim,
хорошо покажи как бы ты сделал етот класс в этой доске, если несложно =) Добавлено через 1 минуту и 46 секунд
дак вот именно что я несоображаю как мне проще будет) поэтому и прошу помочь) |
| Автор: Sosisko 13.11.2007, 20:28 | ||
всё это выглядит теперь вот так:
Подскажи почему ошибка там где красное? |
| Автор: ama_kid 13.11.2007, 21:32 | ||||
|
| Автор: Sosisko 13.11.2007, 22:55 |
| ama_kid, end - это заглушка =) неправильно? |
| Автор: skyboy 13.11.2007, 23:25 |
Sosisko, end без предшевствующего ему
Видимо, преподаватель ожидал, что ученик создаст http://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B1%D1%80%D0%B8%D1%87%D0%BD%D1%8B%D0%B9_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4 для штамповки фигур. |
| Автор: WaReZMEN 14.11.2007, 01:12 | ||||
| OdesitVadim, на сколько я помню override пишется если класс наследуется от другоГо... Здесь я просто сразу не заметил... Sosisko, 1. А нахрена наследовать от TObject? 2.
если не используешь protected или private или public то их пИсать не обязательно. Слушай а нахрена все панельками???? Есть просто канвас в конце концов....
|
| Автор: Alexeis 14.11.2007, 10:39 |
Можно это и не писать. Любой класс по умолчанию будет наследником TObject. Канвас и панелька это совершенно разные классы, которые не заменяют друг друга. |
| Автор: Sosisko 14.11.2007, 19:30 | ||
| вот полный код теперь всё работает просто нужно было поставить заглушки теперь нужно создать конструкторы для каждого подкласса (фигурки) или один конструктор для самого класса Figure как будет проще? и как правильно синтаксически написать? спасибо.
|
| Автор: Vetos 14.11.2007, 19:48 | ||||
| Я делал очень просто, брал свой класс, допустим TRobot=class(TObject); И при создании формы или где нибудь еще, при объявленной переменной Robot делал так
Попробуй, вместо "...", там само напишет вродебы)) Может там ничего ставить и ненадо) Просто немогу понять это выражение
|
| Автор: Sosisko 18.11.2007, 15:45 |
| подскажите пожалуйста как загрузить картинку и указать для неё координаты? |
| Автор: Alexeis 18.11.2007, 16:00 | ||
|