Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как преобразовать строку с именем класса в тип этого класса? / 25 сообщений из 40, страница 1 из 2
11.09.2019, 22:37
    #39860599
Linux_64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Доброй вечер! Мой вопрос касается модуля TypInfo.pas из Delphi 7.
У меня имеется список ListBox, в котором находятся имена типов методов (событий) в виде обычных строк: TNotifyEvent, TMouseEvent, TDrawItemEvent и так далее. При выборе пункта в списке, этот тип должен передаваться в качестве параметра PTypeInfo в другую процедуру, но он имеет тип string. Как это преобразовать?
Пробовал так:
Var
P: PTypeInfo;
begin
P:= ListBox4.Items[ListBox4.ItemIndex]; - // не работает
или
P:= ListBox4.Items.Objects[ListBox4.ItemIndex]; - // не работает

Но если указать тип напрямую - P:= PTypeInfo(TypeInfo(TKeyEvent)); - // работает
Возможно следует в список строк добавлять не просто строки, а объекты, типа AddObject ?
...
Рейтинг: 0 / 0
11.09.2019, 22:46
    #39860602
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64,

зачем тебе типы методов? Это ведь лишь сигнатуры.
Код: pascal
1.
  TNotifyEvent = procedure(Sender: TObject) of object;



Может, тебе именно сами методы нужны?
...
Рейтинг: 0 / 0
11.09.2019, 22:52
    #39860605
Linux_64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Типы методов я и так получаю, но в виде строки. А мне нужно передать этот параметр дальше
Например:
GetMethodRTTI(P: PTypeInfo, TS: TStrings);
И как быть с первым параметром?
...
Рейтинг: 0 / 0
11.09.2019, 23:17
    #39860614
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64P:= ListBox4.Items[ListBox4.ItemIndex]; - // не работает
Не удивительно. Судя по этой строчке, Вы пытаетесь написать "Мастера и Маргариту" прежде чем одолели букварь.

Linux_64Возможно следует в список строк добавлять не просто строки, а объекты, типа AddObject ?
Вы пытаетесь сделать самую страшную вещь, которую можно делать в такой ситуации: Вы гадаете. Шаманите. Бросьте эту привычку раз и навсегда, иначе программиста из Вас никогда не получится. Программист должен разбираться. Понимать, что он делает и для чего. Какой результат он получит от своих действий, а если не получил его - в чём ошибся, почему результат именно таков, какой есть.

Вам следует взять хорошую книгу по программированию на Delphi и внимательно изучить её, начиная с более простых примеров. Та тема, непонимание которой Вы сейчас демонстрируете - типы данных и работа с ними. Цель присваивания - переменная P - имеет тип PTypeInfo. То есть "указатель на TTypeInfo". Поэтому справа должно стоять либо выражение типа PTypeInfo, либо выражение, автоматически к нему приводимое. Что у Вас стоит справа? Строка? Так чего же Вы ждёте? Берите книгу и читайте с начала и до тех пор, пока не сможете сформулировать правильный для этой ситуации вопрос.

И ещё один добрый совет. Если то, что Вы пишете, предназначено в реальную работу - честно скажите заказчику, что Вы не готовы и проектировать это решение должен более опытный программист. Потому что с вероятностью 95% окажется, что никакого TNotifyEvent там вообще и не нужно.
...
Рейтинг: 0 / 0
12.09.2019, 00:55
    #39860641
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64У меня имеется список ListBox, в котором находятся имена типов методов (событий) в виде обычных строк: TNotifyEvent, TMouseEvent, TDrawItemEvent и так далее.
Как они попадают в этот список ?
Опишите задачу целиком, а не а не тупик в середине, с которого выхода нет.
...
Рейтинг: 0 / 0
12.09.2019, 00:59
    #39860642
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Вазможно это вам поможет
...
Рейтинг: 0 / 0
12.09.2019, 16:09
    #39861060
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
softwarer,

зачем умничаешь, код давай
...
Рейтинг: 0 / 0
12.09.2019, 23:33
    #39861215
Linux_64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Что, значит бросьте эту привычку?
Я спросил у вас совета, но вы начинаете умничать, хорошо, допустим у вас мозгов больше чем у меня, но неужели вам, мозговитым чувакам, так сложно мне подсказать решение?
Очень скоро, я , - тупой дурак, предоставлю вам свою разработку, которую создавал более года, я приоткрою шторы: это персональная среда разработки, основана на Delphi 7 , и вот когда она выйдет, а она уже готова на а 80%, вот тогда я над тобой посмеюсь...
...
Рейтинг: 0 / 0
12.09.2019, 23:48
    #39861220
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64,

эта персональная среда будет в Linux 64-битном работать?
...
Рейтинг: 0 / 0
13.09.2019, 00:10
    #39861225
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64Что, значит бросьте эту привычку?
То и значит. Если хотите когда-нибудь стать программистом, а не амбициозным нулём-энтузиастом - переставайте шаманить и начинайте копать, изучать и разбираться.

Linux_64Я спросил у вас совета,
И я дал Вам совет. Ровно такой же, какой дал бы, например, своему сыну, если бы он пришёл с тем же вопросом.

Linux_64хорошо, допустим у вас мозгов больше чем у меня, но неужели вам, мозговитым чувакам, так сложно мне подсказать решение?
Представь себе, что ты пришёл на прыгодром и говоришь: чуваки, я сшил парашют, только он у меня не раскрывается, помогите. Тебе отвечают: дурилка, проектировать парашюты нужно уметь, шить тем более, убьёшься же нахрен. И тут ты обижаешься: сложно, что ли, подсказать решение?

Linux_64Очень скоро, я , - тупой дурак, предоставлю вам свою разработку, которую создавал более года, я приоткрою шторы: это персональная среда разработки, основана на Delphi 7 , и вот когда она выйдет, а она уже готова на а 80%, вот тогда я над тобой посмеюсь...
Ох, что-то вас в этом году густо повалило... . Представляй, представляй. А лучше посмотри форум - такие каждый год приходят, весной и осенью. И до сих пор ещё ни один не вернулся с готовым решением.
...
Рейтинг: 0 / 0
13.09.2019, 00:34
    #39861228
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64персональная среда разработки, основана на Delphi 7
Утираю слезы умиления!

Нас ждет разбработки на базе основы 17-летней давности!
...
Рейтинг: 0 / 0
13.09.2019, 03:38
    #39861237
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64это персональная среда разработки, основана на Delphi 7 , и вот когда она выйдет, а она уже готова на а 80%, вот тогда я над тобой посмеюсь...Слабак.
Если б хотя бы на Delphi 3, а желательно - и ниже...
...
Рейтинг: 0 / 0
13.09.2019, 06:30
    #39861243
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
rgreatУтираю слезы умиления!

слава попова и бабушкина не дает автору покая
...
Рейтинг: 0 / 0
13.09.2019, 07:32
    #39861250
Linux_64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Что в ДНР больше заняться нечем, чем критиковать?
На тройке?, это ещё на чем?, на единичке? Или может в обычном блокноте?
Вопрос решен. Тема закрыта.
...
Рейтинг: 0 / 0
13.09.2019, 08:00
    #39861257
Linux_64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Лишний раз себе доказываю, что если не пить пиво и не гулять по девочкам, то мозг начинает работать...
...
Рейтинг: 0 / 0
13.09.2019, 08:29
    #39861264
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64,

Может быть, может быть. Но разве это жизнь?))
...
Рейтинг: 0 / 0
13.09.2019, 09:33
    #39861299
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
>Linux_64
А ваша "среда" поддерживает сторонние компоненты и их редакторы ?
...
Рейтинг: 0 / 0
13.09.2019, 10:26
    #39861348
Linux_64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Нет. Только стандартные редакторы свойств:
Редактор строк (TStrings), редактор иконок и изображений (TPicture, TBitmap, TIcon), редактор панелей для StatusBar. Установка сторонних компонентов предусмотрена, но если у него есть спец-свойство, невозможно написать редактор свойств для данного типа, хотя сам редактор может поставляться вместе с компонентом. Мне пока не до сторонних компонентов, это в будущем.
...
Рейтинг: 0 / 0
13.09.2019, 10:41
    #39861361
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64 Установка сторонних компонентов предусмотрена, но если у него есть спец-свойство
Делать какое то спец-свойство для вашего ПО никто не будет. А с помощью компонентов с трёх вкладок много не напишешь.
Как происходить формирование конечного EXE файла ?
...
Рейтинг: 0 / 0
13.09.2019, 10:51
    #39861370
Linux_64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Компоненты в будущем я добавлю, это не проблема, так же как и количество вкладок в палитре. В среде используется «родной» компилятор из седьмой версии. Но это уже другая тема. Ещё месяца три-четыре и я закончу проект v. 1.0 полностью.
Мой вопрос решён. Тема закрыта.
...
Рейтинг: 0 / 0
13.09.2019, 10:54
    #39861373
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Не совсем понятно. Если программа делает малую часть того что делает Delphi, используя компилятор Delphi. То зачем она нужна ?
...
Рейтинг: 0 / 0
13.09.2019, 11:17
    #39861388
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
DimaBrНе совсем понятно. Если программа делает малую часть того что делает Delphi, используя компилятор Delphi. То зачем она нужна ?
О, это такое специфическое развлечение. Нужно исключительно для самоутверждения. В том топике, на который я давал ссылку, я как раз писал о тех людях, которые пишут слабое подобие Delphi на Delphi.
...
Рейтинг: 0 / 0
13.09.2019, 11:33
    #39861401
Linux_64
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Никак не угомонятся..:))
А кто вам сказал, что меня устраивает родная среда?, а эту я делаю исключительно для себя, безо всяких там записей в системный реестр, размером дистрибьютива в гигабайт и прочей дублирующей и бестолковой бурды. В дальнейшем я полностью откажусь от родной среды и буду пользоваться своей и программы будут не многим хуже, чем у оригинала.
...
Рейтинг: 0 / 0
13.09.2019, 11:40
    #39861405
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
Linux_64,

рекомендую посмотреть между делом на эти проекты:

https://www.lazarus-ide.org/
https://plugins.jetbrains.com/plugin/7340-i-pascal
...
Рейтинг: 0 / 0
13.09.2019, 15:16
    #39861605
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как преобразовать строку с именем класса в тип этого класса?
YuRockLinux_64это персональная среда разработки, основана на Delphi 7 , и вот когда она выйдет, а она уже готова на а 80%, вот тогда я над тобой посмеюсь...Слабак.
Если б хотя бы на Delphi 3, а желательно - и ниже...
Какие Дельфи 7 или 3? Судя по нику у него х64 линух.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как преобразовать строку с именем класса в тип этого класса? / 25 сообщений из 40, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]