Member
Статус: Не в сети Регистрация: 11.11.2004 Откуда: Челябинск
Wizard_kuz Нельзя полагаться на их одинаковость.
Берешь какой-нибудь TCustomPanel, переопределяешь события, метод Paint (по желанию) и получаешь свой контрол.
Я вот такое сморганил:
#77
_________________ пишу я программу... и вдруг на клавиатуру выползает bug, буквально
Member
Статус: Не в сети Регистрация: 11.11.2004 Откуда: Челябинск
All Выше я приводил картинку, менюшки расположены на потомке TCustomPanel, который закрашивается через GradientFill из msimg32 в переопределенном методе Paint()
Проблема в том, что при изменении вертикального размера эта панель мерцает от перерисовки. Тот же самый код, примененный в методе OnPaint формы такого эффекта не вызывает. Установка панели DoubleBuffered=true делает мерцание ещё более заметным.
_________________ пишу я программу... и вдруг на клавиатуру выползает bug, буквально
#include "RPanel.h" #pragma package(smart_init) #include "GradFill.h" //--------------------------------------------------------------------------- // ValidCtrCheck is used to assure that the components created do not have // any pure virtual functions. //
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Rius Основная ошибка твоя это то, что ты рисуеш без использования буфера в памяти doublebuffer тебе тут нафиг не нужен.
Создаеш отдельный TBitmap, рисуеш все в нем, а потом уже рисует этот битмап в санвас компонента. И никакого мигания не будет.
Также у компеонента надо обработать сообщение WM_ERASEBKGND и в нем Message.Result := 1; (это паскаль, на си будет также только синтаксис другой). К сожалению у меня нету под рукой Builder'а (стоит только Delphi) так что пока могу помочь только советами.
-Games ---ARCANUM. Of Steamworrs & Magick Obscura.2CD. ---СОЛДАТ УДАЧИ. ---UNREAL TOURNAMENT FINAL WORLDS.
И т.п.
Т.о. то, как должен выглядеть TreeView думаю понятно (тип от подтипа отличаются числом минусов). Так вот проблема в том, как правильно и удобно сделать структуру этого файла. Понятно, что можно написать прогу которая тупо преобразует записи в файле в иерархическую структуру TreeView но хотелось бы что-нибудь поинтереснее, т.к. с этим списком надо быстро работать: сортировка, поиск и т.п. Например, есть такая идея использовать обьекты, типа вот так:
только как реализовать - ??????
Обратите внимание, что например в типе Games подтипов нет и надо сразу выводить список игр. Но самое главное, что программа это не знает, сколько там у кого подтипов и есть ли они вообще.
Были мысли использовать массивы – но массивы надо как-то задавать. В общем галяк….
Помогите плиз, поделитесь идеями и если можно то набросками по организации структуры для файла.
Member
Статус: Не в сети Регистрация: 11.11.2004 Откуда: Челябинск
Halfback Попробуй в XML запихать (хотя это наверно из пушки по воробьям). Примеры здесь приводил.
У нодов xml можно получить список дочерних нодов, их количество, т.е. ответ на
Цитата:
самое главное, что программа это не знает, сколько там у кого подтипов и есть ли они вообще.
_________________ пишу я программу... и вдруг на клавиатуру выползает bug, буквально
Member
Статус: Не в сети Регистрация: 14.08.2003 Откуда: Питер
Rius С удовольствием посмотрел бы, но
1. Я пишу в Делфи а не на Билдере
2. Демо файл в архиве скомпилин в Run-Time'е и естественно не запустился. Устанавливать Билдер нет никакого желания.
Да и XML я как то не знаком. Вообще никак. Тем более визуально TreeView мне очень даже подходит.
Member
Статус: Не в сети Регистрация: 14.08.2003 Откуда: Питер
Ray Adams Формат файла - обычный текстовик.
Примерное содержание txt файла я приводил выше.
Задача такая:
1. Записать содержимое файла в некоторую структуру (в какую??? - вот в чём вопрос!!!). В обьект или можт по массивам раскидать? ХЗ.
2. Потом работать с этой структурой. т.е. вывести ее на TreeView, организовать поиск в структуре и всякие там сортировки. (Ну это я уж сам как нибудь сделаю).
Т.е. вопрос в том, какую структуру выбрать для моего случая, чтобы работать с ней было бы удобно.
В TreeView это должно выглядеть примерно так:
#77 #77 #77 #77
Думаю из этих скринов понятно что я задумал за программу.
Напрямую из файла в TreeView я сделать могу, но хотелось некоего посредника (т.е. повторюсь, ту самую структуру).
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Текс, ну для начала могу посоветовать использовать базу данных.
Вот тебе скриншот из моей программы CD Collection там как раз собирается вся инфа из CD и отображение идет в виде дерева каталогов слвеа , и соответственно в првой части показываются файлы+каталоги.
#77
Для этого тебе придется разработать систему дерева. Вариантов много, как лучше применить , или точнее какой вариант лучше использовать это тебе решать.
Но текстовыми файлами ты просто замучаешся это я тебе гарантирую. Да искорость не будет выше чем с базой. В моей проге используется ADO компоненты и база .mdb от Access. Никакие лишнии .dll не требуется, все есть в составе Windows.
Для пример сейчас в моей проге записано вот сколько и чего. Статистика также собирается самой прогой.
CD - 71 штук
Папок - 17 673
Файлов - 207 714
общий обьем информации - 89 904,53 Mb.
______
Так что если думаеш о серьезной проги, лучше юзай базу данных.
Member
Статус: Не в сети Регистрация: 04.01.2004 Откуда: Владивосток
вот значит так. есть вопросец. у кого есть идеи как можно исследовать определенные функции, ну скажем надо найти точки пересечения.
как все происходит. немного упрощу. вводиться функция, скажем y=2x*x + 4 и прямая y=x+4.
эти графики пересекутся.
А вот как мне найти это точку(её координаты) пересечения? Тупо циклом перебирать x, подставлять его в одну функцию, а потом подставлять в другую и сравнивать y?? Имхо это слишком натяжно, долго.(т.е работать это все долго будет...а если графика 4 или более??)
Еще можно создать массив(двумерный) и хранить в нем все точки определенной функции. А потом сравнивать массивы. Но здесь тоже не особо быстро получается. Есть ли более быстрые способы(или более правильные), если нет, то какой из этих лучше заюзать.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения