Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 326
от 05.05.2004, 22:30

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1516
Отправлено ответов: 3491
Активность: 230.2 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Ray Adams
Статус: Доверительный
Общий рейтинг: 111.25
[Подробней >>]
Pawel
Статус: Профессиональный
Общий рейтинг: 158.04
[Подробней >>]
sir henry
Статус: Профессиональный
Общий рейтинг: 160.73
[Подробней >>]
 
Boriss
Статус: Профессиональный
Общий рейтинг: 161.09
URL: Программирование на Паскале
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1505. Уважаемые эксперты подскажите как присвоить переменной Tstrings массив A:array[1..1000] of char; Я ... (ответов: 4)
Вопрос № 1506. Уважаемые эксперты подскажите как добавить в контекстное меню по правой кнопке в проводнике,строку... (ответов: 2)
Вопрос № 1507. Добрый День! Дайте, пожалуйсто, рекомендации по переводу исходников с delphi на с++Builder (вручную,... (ответов: 3)
Вопрос № 1508. Добрый День! Подскажите, пожалуйста, почему в CppBuilder не работает следующий код: {const int SysCo... (ответов: 3)

Вопросов: 4, ответов: 12


 Вопрос № 1505

Уважаемые эксперты
подскажите как присвоить переменной Tstrings массив A:array[1..1000] of char;
Я бы судовольствием использовал A:array of char; ,но в силу каких то препядствие он
у меня не инициалтзируется.
Приложение
|
|
|
V


Приложение:


Вопрос отправлен: 01.05.2004, 12:42
Отправитель: MichoN

[Следующий вопрос >>] [Список вопросов]

Отвечает Ray Adams

п—пґяЂп°пІяЃя‚пІяѓп№я‚пµ, 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

Уважаемые эксперты подскажите
как добавить в контекстное меню по правой кнопке в проводнике,строку



Вопрос отправлен: 01.05.2004, 16:42
Отправитель: MichoN

[Следующий вопрос >>] [Список вопросов]

Отвечает Pawel

Доброе время суток, 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, просто если не сложно ответьте на вопрос)
Заранее, благодарен...



Вопрос отправлен: 01.05.2004, 19:05
Отправитель: Polink

[Следующий вопрос >>] [Список вопросов]

Отвечает Pawel

Здравствуйте, 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



Вопрос отправлен: 02.05.2004, 21:18
Отправитель: Марина

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Доброе время суток, Марина !
'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.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (23)
C / C++ (15)
Perl (3)
Builder / Delphi (20)
Pascal (18)
Basic / VBA (4)
Java / JavaScript (5)
PHP (12)
Криптография (8)
WinAPI (10)
Радиоэлектроника (6)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (48)
"Железо" (26)
Поиск информации (14)
Администратору
Windows NT/2000/XP (25)
Linux / Unix (8)
Юристу
Гражданское право (10)
Семейное право (7)
Трудовое право (9)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное