Уважаемые эксперты подскажите как присвоить переменной Tstrings массив A:array[1..1000] of char; Я бы судовольствием использовал A:array of char; ,но в силу каких то препядствие он у меня не инициалтзируется. Приложение | | | V
п—пґяЂп°пІяЃя‚пІяѓп№я‚пµ, MichoN! my_var:TStrings; my_array:array[0..1000] of char; ------ my_var.Text:=StrPas(my_array); Ответ отправлен: 01.05.2004, 21:48 Отправитель: Ray Adams Отвечает Pawel
Здравствуйте, MichoN! Через цикл s:string; For i:=0 to 1000 do s[i]:=a[i] Ответ отправлен: 03.05.2004, 20:22 Отправитель: Pawel Отвечает sir henry
Здравствуйте, MichoN! 1. Такой массив (динамический) прекрасно создается и инициализируется. Инициализировать его можно, например, с помощью цикла. 2. TStrings - это объект, хранящий набор строк (и объектов :). Специально для хранения строк у него есть свойство Strings[]. Поэтому присваивание будет выглядеть следующим образом: TSrings.Strings[index]:=a[index]; Или так: TStrings.Add(a[index]); Чтобы заполнить TStrings.Strings быстро, набор строк можно загружать из файла: TStrings.LoadFromFile(FileName); Добавить непосредственно весь массив в TString одной командой не получится из-за разнотипности объектов. А вот из второго TStrings - всегда пожалуйста: TStrings1.AddStrings(TStrings2); Ответ отправлен: 02.05.2004, 10:17 Отправитель: sir henry Отвечает Boriss
Доброе время суток, MichoN! 1) Инициализация вопреки "каких то препядствие" - по-видимому, перед использованием Вы не определили длину массива SetLehgth 2) Массив символов - это опчти готовая строка типа PChar. Почти от того, что в конце должен стоять символ с кодом 0 (#0). Если Вы инициализиуете массив большей длины, чем нужно, то там он, возможно, будет, но лучше не рисковать и добавлять самому. Для этого определить длину на 1 символ больше, чем нужно и A[Length(A)]:=#0; А затем, используя фунции для работы со строками, завершающимися нулем (см. справку, например, по StrCopy), делаешь, что хош Ответ отправлен: 04.05.2004, 10:38 Отправитель: Boriss
Вопрос № 1506
Уважаемые эксперты подскажите как добавить в контекстное меню по правой кнопке в проводнике,строку
Доброе время суток, MichoN! Какое конкретно контекстное меню? Их много... Если вообщем: через реестр. Ответ отправлен: 03.05.2004, 20:25 Отправитель: Pawel Отвечает Boriss
Здравствуйте, MichoN! А для поиска в реестре советую прочитать интересную статью "Пространство имён оболочки Windows": http://www.delphimaster.ru/articles/shell.html Ответ отправлен: 04.05.2004, 11:06 Отправитель: Boriss
Вопрос № 1507
Добрый День! Дайте, пожалуйсто, рекомендации по переводу исходников с delphi на с++Builder (вручную, только не спрашивайте зачем)... какие различия в вызове WinAPI и т.д. (различия в синтаксисе языков С и Pascal можете не объяснять, наверное:) ). Вообще как использовать примеры на Delphi для изучения CppBuilder? (и не надо говорить, что есть много примеров на Builder, просто если не сложно ответьте на вопрос) Заранее, благодарен...
Здравствуйте, Polink! Нет там особых проблем, если знаешь синтаксис Pascal и С. Сам переводил исходник с Builder на Delphi(без знания С). Есть некоторое расхождение при обращении к классам. Ответ отправлен: 03.05.2004, 20:31 Отправитель: Pawel Отвечает Boriss
Доброе время суток, Polink! Хм! (не могу не заметить) Переводите, и все тут, раз все знаете ... :)) Честно говоря, я не понял, что Вы не знаете? Что отвечать? У меня, например, никаких особых проблем не возникало при переводе ни туда, ни обратно ... Спросите лучше, что-нибудь конкретное. А так базарить в общем и целом, и делать при этом умный вид, извините, неохота
Ответ отправлен: 04.05.2004, 11:12 Отправитель: Boriss Отвечает sir henry
Здравствуйте, Polink! Если не надо объяснять различие в синтаксисе, то и объяснять наверное нечего :)). Есть ведь исходники Дельфи и заголовки Билдера. И там и там функции называются одинаково. Надо заглянуть и туда и туда :). Главное различие (без синтаксиса) - как представлены строки. В дельфях - или просто string или PChar. В Билдере будет LPCSTR - указатель на строку. И еще указатели на структуру. В Дельфях, обычно, они не как указатели, а как обычная запись (Record). В Билдере именно указатель. Ответ отправлен: 02.05.2004, 10:40 Отправитель: sir henry
Вопрос № 1508
Добрый День! Подскажите, пожалуйста, почему в CppBuilder не работает следующий код: {const int SysColor[14]={COLOR_ACTIVEBORDER,COLOR_ACTIVECAPTION, COLOR_APPWORKSPACE,COLOR_BACKGROUND,COLOR_BTNFACE,COLOR_CAPTIONTEXT, COLOR_CAPTIONTEXT,COLOR_INACTIVEBORDER,COLOR_INFOTEXT,COLOR_MENU, COLOR_MENUTEXT,COLOR_WINDOW,COLOR_WINDOWFRAME,COLOR_WINDOWTEXT}; const TColor ColorArray[11]={clAqua,clBlue,clYellow,clFuchsia,clGreen, clNavy,clRed,clSilver,clWhite,clSkyBlue}; SetSysColors(1,SysColor[random(13)], ColorArray[random(10)]);} Сообщения: [C++ Warning] Unit1.cpp(21): W8057 Parameter 'Sender' is never used [C++ Error] Unit1.cpp(32): E2034 Cannot convert 'const int' to 'const int *' [C++ Error] Unit1.cpp(32): E2342 Type mismatch in parameter 'lpaElements' (wanted 'const int *', got 'int') [C++ Error] Unit1.cpp(32): E2034 Cannot
convert 'const TColor' to 'const unsigned long *' [C++ Error] Unit1.cpp(32): E2342 Type mismatch in parameter 'lpaRgbValues' (wanted 'const unsigned long *', got 'TColor') [C++ Warning] Unit1.cpp(33): W8004 'ColorArray' is assigned a value that is never used [C++ Warning] Unit1.cpp(33): W8004 'SysColor' is assigned a value that is never used [C++ Warning] Unit1.cpp(33): W8057 Parameter 'Sender' is never used
Доброе время суток, Марина ! 'const int' to 'const int *' - первое= просто постоянная целого типа, второе = указатель на таковую И все другие аналогично Объясните, что хотите, напишем - как надо это делать Ответ отправлен: 04.05.2004, 12:37 Отправитель: Boriss Отвечает Pawel
Здравствуйте, Марина ! Типы данных у вас не соответствуют! Ответ отправлен: 03.05.2004, 20:38 Отправитель: Pawel Отвечает sir henry
Доброе время суток, Марина ! Дык вед все понятно из сообщений об ошибках :)). Вот смысловой перевод, если у Вас туговато (как и у меня, впрочем :) с ненашими языками: [C++ Error] Unit1.cpp(32): E2034 Не могу конвертировать типы констант "просто int" в "указатель на int". [C++ Error] Unit1.cpp(32): E2342 То же самое, но уже в параметрах функции. С++ ждет один тип, а Вы ему подсовываете совершенно другой. Вот его и вырвало - невкусно :)). [C++ Error] Unit1.cpp(32): E2034 Опять беда с типами. TColor - это не указатель на беззнаковое целое. [C++ Error] Unit1.cpp(32): E2342 То же в функции. -------------- На Warning (Предупреждения) можно наплеывать. По крайней мере, пока Вы не начали оптимизировать программу.
Ответ отправлен: 03.05.2004, 12:47 Отправитель: sir henry
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.