Вопрос № 123806: Здравствуйте!
1) Есть TStringGrid, у него выставлены опции [goColMoving,goRowSelect]. Также у этого компонента обрабатывается событие OnDrawCell для выделения текущей строки другим цветом.
Проблема при перестановке какого-то столбца на первое...Вопрос № 123826: Здравствуйте эксперты!
Мне тут задание дали на курсовой: написать что-то типа визуальной среды разработки(вроде Дельфи, только много проще есссно), но чтобы было подобие палитры компонентов и возможность их класть на форму, настроивать свойс...Вопрос № 123841: Здравствуйте, уважаемые.
Как при активизации формы с имитировать подвод мыши к меню(субменю) расположенного на ней TMainMenu, т.е. "засинить" не вызывая действия по этому меню(субменю). Просмотрел статьи Delphi World 6 - ничего путного ...Вопрос № 123888: Здравствуйте эксперты!
Помогите пожалуйста составить программу для следующего задания:
Из круга радиуса r вырезан прямоугольник, большая сторона которого равна a. Найти максимальный радиус круга, который можно вырезать из полученног...
Вопрос № 123.806
Здравствуйте!
1) Есть TStringGrid, у него выставлены опции [goColMoving,goRowSelect]. Также у этого компонента обрабатывается событие OnDrawCell для выделения текущей строки другим цветом.
Проблема при перестановке какого-то столбца на первое место, в этом случае теряется у некоторых столбцов в строке выделение цветом.
Перепробовал в событии OnColumnMoved разные методы:
Repaint, Refresh, Invalidate... строка не перерисовывается.
Выход нашел такой - переход на новую добавленную строку, а потом обратно на нужную (с удалением добавленной строки).
Может кто лучше способ предложит?
Ниже прикладываю код.
2) И второй вопрос. Как повторно вызвать событие перехода на строку StringGrid.Row.
StringGrid.Row := StringGrid.Row; // не срабатывает
Только опять же переход на другую строку, а потом обратно срабатывает, но это не всегда удобно.
Заранее спасибо.
Приложение:
Отправлен: 19.02.2008, 06:42
Вопрос задал: GuV2001 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Selya
Здравствуйте, GuV2001!
1. Сделал всё как в вашем примере. Всё прекрасно работает. Может быть у вас у StringGrid'а FixedCols=1? Мой StringGrid в приложении.
2. Не понял вопроса. Если вы вешаете какой-либо код на событие (например на OnSelectCell), то чтобы вызвать этот код программно просто вызовите метод, активизирующий это событие (в нашем случае:
Ответ отправил: Selya (статус: 8-ой класс)
Ответ отправлен: 19.02.2008, 09:54 Оценка за ответ: 3 Комментарий оценки: 1) Сейчас работает, когда вручную делаешь переход на новую добавленную строку и обратно (я привел код, как я решил свою проблему). А уберите обработку события StringGrid1ColumnMoved и увидите, что перерисовка пропадет. Вот и вопрос возник, может можно как-то по другому сделать перерисовку.
2) Да вот вызывать обработчик через StringGrid1DrawCel(...) не всегда удобно.
А хотел я вот что сказать: например StringGrid сейчас находится на 10 строке,. т.е. StringGrid1.Row=10. Хотелось бы вызвать еще раз все события, происходящие при смене строки, т.е. как бы я только что перешел на 10 строку. StringGrid.Row := StringGrid.Row; Может объясняю непонятно, уж сорри :)))
Вопрос № 123.826
Здравствуйте эксперты!
Мне тут задание дали на курсовой: написать что-то типа визуальной среды разработки(вроде Дельфи, только много проще есссно), но чтобы было подобие палитры компонентов и возможность их класть на форму, настроивать свойства и т.д.
Вот не знаю с чего начать, может кто-то делал нечто подобное, или знает где-что почитать. Подскажите плиз.
Заранее спасибо.
Отвечает: Евсюков Виталий Евгеньевич
Здравствуйте, Муратов Радик Анатольевич!
В простейшем случае эта программа будет суть графический редактор. Просто создаете в real-time необходимые компоненты, заводите для них XML-ки, в которых перечисляете свойства и делаете настройку по умолчанию, а затем в ValueListEditor грузим эти свойства, когда onClick на контрол, onMouseUp/Down - передвигаем/перемещаем (если курсор был на одной из границ) и т.д.
--------- I Aear can ve na Mar
Ответ отправил: Евсюков Виталий Евгеньевич (статус: 3-ий класс)
Ответ отправлен: 19.02.2008, 18:34 Оценка за ответ: 5
Вот программа EditForm v1.0, которую я когда-то делал. Возможно она Вам поможет. Вам остается, только создать инспектор объекта, ну и возможно, переделать палитру компонентов.
Ответ отправил: Louken (статус: Студент)
Ответ отправлен: 21.02.2008, 14:11 Оценка за ответ: 5 Комментарий оценки: Большое спасибо за помощь !!!
Вопрос № 123.841
Здравствуйте, уважаемые.
Как при активизации формы с имитировать подвод мыши к меню(субменю) расположенного на ней TMainMenu, т.е. "засинить" не вызывая действия по этому меню(субменю). Просмотрел статьи Delphi World 6 - ничего путного там не нашел. Есть там одна статья Компоненты и Классы->Меню->Выделение меню, но функция по ней имитирует нажатие на меню(субменю), вызывая действие.
Отвечает: Selya
Здравствуйте, Кравцов Юрий Владимирович !
Попробуйте симулировать нажатие клавиши Alt на клавиатуре, там же в Delphi World статья "Симулируем нажатие клавиш на клавиатуре 4". (или см.прил.)
Как известно, при нажатии Alt фокус переходит в меню.
Приложение:
Ответ отправил: Selya (статус: 8-ой класс)
Ответ отправлен: 19.02.2008, 12:51 Оценка за ответ: 4 Комментарий оценки: По Alt это понятно, но хотелось бы по имени
окна, меню и подменю вставать на определенное подменю.
Вопрос № 123.888
Здравствуйте эксперты!
Помогите пожалуйста составить программу для следующего задания:
Из круга радиуса r вырезан прямоугольник, большая сторона которого равна a. Найти максимальный радиус круга, который можно вырезать из полученного прямоугольника? Числа r и a вводятся пользователем.
Заранее спосибо!
Отправлен: 19.02.2008, 17:11
Вопрос задал: Slim1210 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Дегтярев Антон Александрович
Здравствуйте, Slim1210!
ответ вам уже дали.
Вот визуальный вариант. Выглядит интересно.