XPEHOMETP
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Такая проблема. Я все время программировал на Фортране консольные проги для обработки данных. И вот приперло - надо сделать гуёвую прогу (в смысле с GUI) для интерактивной обработки данных. Как пишут в справке для компиляторов Фортрана, обычный путь - смешанное программирование: вычисления на Фортране, GUI - на С++, Visual Basic, Delphi. В общем, попробовал я так сделать. C/C++ почему-то у меня вызывает сильнейшую аллергию, Visual Basic - нет, но когда я попытался его осваивать, то понял, что программировать я на этом не буду. Пересел сначала на PowerBasic, но возникли сложности. Вот захотелось мне определенный элемент ActiveX прикрутить для построения графиков, но у PowerBasic с ActiveX большие проблемы. То есть у прог для визуального программирования на PowerBasic таких проблем практически нету, но эти проги не бесплатны и лечилова к ним нет. А поскольку этот самый ActiveX (DynaPlot3) меня просто потряс своими возможностями (точнее, тем, насколько они совпадают с моими потребностями), подумал я о переходе на Delphi. Фаронова купил. Но вот заковыка: у меня на PowerBasic уже прописана начальная часть проги. И отлажена. А там разные окошки для сбора предварительной инфы, стандартные диалоги открытия обрабатываемых файлов и т.п. С этими диалогами я долго возился, сделал так, что можно использовать два варианта: загружать список обрабатываемых файлов (как у меня было в консольных прогах) или выбирать сами обрабатываемые файлы (много штук) в окне стандартного диалога. Ну и мне не охота это все пускать псу под хвост. PowerBasic позволяет запихать все это в DLL и потом вызвать в виде подпрограммы из какой-нибудь проги, то есть теоретически это можно пустить в дело. А практически - такая проблема: нужно получить названия файлов (прочитать из списка или получить названия из диалога - не важно). И это я хочу кинуть в DLL, используя уже написанное на PowerBasic. Оформлено это дело у меня как строковый массив, что логично. Размерность этого массива я узнаю только в ходе выполнения подпрограммы. И получается, что я не могу описать этот массив в основной программе, которая вызывает DLL. Во всяком случае, у Фаронова я массивов, которые позволяют с собой работать при неизвестной размерности, не обнаружил. Ну, можно сделать так, как поступает стандартный диалог открытия файлов: прописать все значения в одну строку подряд с какими-нибудь разделителями, и такой вариант прокатит на ура. А нельзя ли все же перекинуть имена файлов через массивы (записи, ...)? То есть я понимаю, что можно навертеть все это дело заново, и стандартный диалог открытия файлов сидит на одной из страничек с компонентами Delphi, но вот жалко потраченного времени. |