Вопрос № 32484: C Новым годом Вас !!!
Желаю всем удачи в Новом году, благополучия, кучу гениальных идей и исполнения всех самых сокровенных желаний....Вопрос № 32489: Здравствуйте!
Есть строка1, из неё нужно получить строку2 состоящую из строки1 без последних двух символов....Вопрос № 32491: Здравствуй!
У мяне Delphi 2005, вот скачал я кампанэнт TKnob, как мнэ сдэлат штоб он паявился в Delphi 2005 и его можна было размещат на форме....Вопрос № 32494: Здравствуйте, уважаемые эксперты.
1.Нужно чтобы по двойному щелчку по ListBox1 в Edit1 появилось содержание строки по которой щёлкнули в ListBox.
2.Может кто встречал компонент в виде кругового прогрессбара? Очень надо.......Вопрос № 32497: Здравствуйте, уважаемые эксперты!
Скажите, пожалуйста, как узнать закончился ли медиа файл (или
остановился ли плеер) если используется FilterGraph из DSPack-a?
Свойств Mode как у MediaPlayer-a там нету.
Спасибо!...Вопрос № 32503: Уважаемые эксперты,у меня возник к Вам небольшой вопрос.Программа отправляет письмо на e-mail,как сделать чтобы копии писем отправить на другие адреса?...Вопрос № 32504: Здравствуйте уважаемые эксперты!
Есть папка в которой лежит программа в этой папке есть ещё папка "Thems" в которой находится куча папок, мне нужно получить в Listbox названия всех этих папок. Как это лучше сделать?...Вопрос № 32506: Как узнать в каком каталоге находится программа?...Вопрос № 32507: 1.Как узнать длину(в минутах) трека загруженого в TMediaPlayer?
2.Как регулировать громкость всей системы??
3.Как узнать когда закончится трек???...
Вопрос № 32.484
C Новым годом Вас !!!
Желаю всем удачи в Новом году, благополучия, кучу гениальных идей и исполнения всех самых сокровенных желаний.
Отправлен: 01.01.2006, 02:06
Вопрос задал: source (статус: 1-ый класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: nimoid
Здравствуйте, source!
Огромное спасибо, Вам того же! Присоединяюсь к поздравлению и всех поздравляю! ;-)
--------- Перед тем как задать вопрос, поищи сначала сам ответ. Яндекс в руки и вперед... )
Ответ отправил: nimoid (статус: 6-ой класс)
Отправлен: 02.01.2006, 20:20
Вопрос № 32.489
Здравствуйте!
Есть строка1, из неё нужно получить строку2 состоящую из строки1 без последних двух символов.
Способ №2: // копируем полностью первую строку во вторую
Str2:= Str1;
// Устанавливаем длину второй строки на 2 меньше
SetLength(Str2, Length(Str1) - 2);
Cпособ №3: // Сразу устанавливаем длину
SetLength(Str2, Length(Str1) - 2);
// Теперь копируем содержимое первой строки
Move(Str1[1], Str2[1], Length(Str2));
Ответ отправил: Denisss (статус: Специалист)
Отправлен: 01.01.2006, 13:19 Оценка за ответ: 5
Отвечает: Diman_A
Ответом на твой вопрос будет команда
delete (a,length(a)-1,2);
------------------------------------------------------------
Процедура Delete
------------------------------------------------------------
Функция: Удаляет из строки подстроку.
Описание: Delete(var s : string; индекс : integer;
счетчик : integer)
Примечания: Параметр s представляет собой выражение
строкового типа. Параметры "индекс" и "счетчик" являются вы-
ражениями целого типа. Функция Delete удаляет символы, коли-
чество которых соответствует параметру "счетчик", начиная с
символа строки s, номер которого задан параметром "индекс".
Если значение параметра "индекс" превышает длину строки, то
символы не удаляются. Если параметр "счетчик" задает больше
символов, чем остается в строке, начиная с символа "индекс",
то удаляется остаток строки.
------------------------------------------------------------
Функция Length
------------------------------------------------------------
Функция: Возвращает динамическую длину строки.
Описание: Length(s : string)
Тип результата: Целый (integer).
Примечания: Параметр s представляет собой выражение
строкового типа. Результатом будет длина s.
Ответ отправил: Diman_A (статус: 2-ой класс)
Отправлен: 01.01.2006, 14:54 Оценка за ответ: 5
Отвечает: sir henry
Здравствуйте, SuperXakep!
Можно сделать так:
stroka2:=Copy(stroka1-Length(stroka1)-2);
Ответ отправил: sir henry (статус: Академик)
Отправлен: 02.01.2006, 09:28 Оценка за ответ: 5
Отвечает: Toxic~Fire
Здравствуйте, SuperXakep!
Вот тебе функция
function stroka2(stroka1:string);
begin
result:=copy(stroka1,1, length(stroka1)-2);
end;
Вот тебе описание функций для работы со строками:
Function Copy(S: String; Index, Count: Integer): String;
Возвращает подстроку строки.
S - выражение типа String. Index и Count - выражения целого типа. Функция возвращает строку, содержащую Count символов, начинающихся с позиции Index.
Если Index больше, чем длина S, функция возвращает пустую строку.
Procedure Delete(var S: String; Index, Count:Integer);
Удаляет подстроку символов длиной Count из строки S, начиная с позиции Index.
S - переменная типа String. Index и Count - выражения целого типа.
Если Index больше, чем длина S, символы не удаляются.
Procedure Insert(Source: String; var S: String; Index: Integer);
Объединяет подстроку в строку, начиная с определенной позиции.
Source - выражение типа String. S - переменная типа String любой длины. Index - выражение целочисленного типа.
Insert вставляет Source в S, начиная с позиции S[Index].
Function Length(S: String): Integer;
Возвращает число символов, фактически используемое в строке S.
Обратите внимание: при использовании строк с нуль-окончанием, число символов не обязательно равно числу байтов.
Function Pos(Substr: String; S: String): Integer;
Ищет подстроку в строке.
Pos ищет Substr внутри S и возвращает целочисленное значение, которое является индексом первого символа Substr внутри S.
Если Substr не найден, Pos возвращает ноль.
Ответ отправил: Toxic~Fire (статус: 2-ой класс)
Отправлен: 02.01.2006, 11:41
Вопрос № 32.491
Здравствуй!
У мяне Delphi 2005, вот скачал я кампанэнт TKnob, как мнэ сдэлат штоб он паявился в Delphi 2005 и его можна было размещат на форме.
Отвечает: Dushin Igor
Здравствуйте, Вагив Абдугалимович Дрочилашвили!
Да в Delphi 2005 изменилась установка компонентов.
Вот сдесь рассказывается как это сделать:
http://alexey-lab.narod.ru/delphi_component.htm
Удачи!!!
--------- Храни меня Господь, в сухом прохладном месте! =)
Ответ отправил: Dushin Igor (статус: 2-ой класс)
Отправлен: 01.01.2006, 14:05 Оценка за ответ: 5 Комментарий оценки: Супэр!!!
Отвечает: sir henry
Здравствуйте, Вагив Абдугалимович Дрочилашвили!
Нужно в меню Component выбрать Install Componet и установить его.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 02.01.2006, 09:25
Вопрос № 32.494
Здравствуйте, уважаемые эксперты.
1.Нужно чтобы по двойному щелчку по ListBox1 в Edit1 появилось содержание строки по которой щёлкнули в ListBox.
2.Может кто встречал компонент в виде кругового прогрессбара? Очень надо....
Отвечает: Ерёмин Андрей
Здравствуйте, SuperXakep!
1) Обрабатываем событие OnClick для ListBox:
procedure TForm1.ListBox1Click(Sender: TObject); begin Edit1.Text:=ListBox1.Items[ListBox1.ItemIndex]; end;
2) Воспользуйтесь TGauge (страница Samples), установив у него Kind = gkPie.
--------- Работа - не волк, а произведение силы на расстояние!
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 01.01.2006, 14:45 Оценка за ответ: 5
Отвечает: Diman_A
Здравствуйте, SuperXakep!
Событие OndblClick:
procedure TForm1.ListBox1DblClick(Sender: TObject);
var
Loop: Integer;
begin
for Loop := 0 to Listbox1.Items.Count - 1 do
if Listbox1.Selected[Loop] then
edit1.text:=(Listbox1.Items.Strings[Loop]);
end;
Ответ отправил: Diman_A (статус: 2-ой класс)
Отправлен: 01.01.2006, 15:46
Отвечает: sir henry
Здравствуйте, SuperXakep!
1. В событии OnDblClick (обработка двойного щелчка) прописать:
Edit1.Text:=ListBox1.Items[ListBox1.ItemIndex];
ItemIndex - это индекс выделенного пункта в ListBox'е. Когда Вы щелкаете по какому-нибудь пункту, он выделяется.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 02.01.2006, 09:21 Оценка за ответ: 5
Отвечает: Toxic~Fire
Здравствуйте, SuperXakep!
1. Обрабатываешь событие OnListBox1DblClick у ListBox`a
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
if ListBox1.ItemIndex <> -1 then //Чтобы не было ошибки, когда ты промахнёшься мимо ячейки
edit1.Text:=ListBox1.Items.Strings[ListBox1.itemindex]; //Вставляем
end;
2. На вкладке Samples: создаёшь Gauge1 и меняешь свойство Kind:=gkHorizontalBar на Kind:=dkPie
Стандартный компонент
Ответ отправил: Toxic~Fire (статус: 2-ой класс)
Отправлен: 02.01.2006, 11:41
Вопрос № 32.497
Здравствуйте, уважаемые эксперты!
Скажите, пожалуйста, как узнать закончился ли медиа файл (или
остановился ли плеер) если используется FilterGraph из DSPack-a?
Свойств Mode как у MediaPlayer-a там нету.
Спасибо!
Отправлен: 01.01.2006, 16:47
Вопрос задал: Vic (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Denisss Здравствуйте, Vic!
По окончанию воспроизведения файла, в FilterGraph происходит событие OnGraphComplete.
Смотрите примеры (папка DSPackDemos).
Удачи в Новом Году!
Ответ отправил: Denisss (статус: Специалист)
Отправлен: 02.01.2006, 01:58
Вопрос № 32.503
Уважаемые эксперты,у меня возник к Вам небольшой вопрос.Программа отправляет письмо на e-mail,как сделать чтобы копии писем отправить на другие адреса?
Приложение:
Отправлен: 01.01.2006, 18:34
Вопрос задал: Vadym (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Архангельский Андрей Германович
Здравствуйте, Vadym!
В письме, там где пишешь поле адреса 'To:', добавляешь еще поле адреса 'Cc:' или 'BCc:'
И все
Отвечает: Schmak
Здравствуйте, Vadym!
Не могу утверждать точно, но должно помочь:
После строк
m.Recipients.Add;
m.Recipients.Items[0].Text:='a@mail.ru';
вставьте строки
m.Recipients.Add;
m.Recipients.Items[1].Text:='b@mail.ru';
m.Recipients.Add;
m.Recipients.Items[2].Text:='c@mail.ru';
...
--------- Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 02.01.2006, 09:14
Вопрос № 32.504
Здравствуйте уважаемые эксперты!
Есть папка в которой лежит программа в этой папке есть ещё папка "Thems" в которой находится куча папок, мне нужно получить в Listbox названия всех этих папок. Как это лучше сделать?
Отвечает: Архангельский Андрей Германович
Здравствуйте, SuperXakep!
1) А ты книжки читать не пробовал?
2) А головой поработать лень?
Ответ отправил: Архангельский Андрей Германович (статус: Студент)
Отправлен: 01.01.2006, 18:43 Оценка за ответ: 1 Комментарий оценки: Почему такой ответ? Запоминать я не могу так как инвалид! Вот и приходиться спрашивать каждую проблему! Когда нашёл RusFaq очень обрадовался, всё просто задаёшь вопрос получаешь ответ, то что мне надо.
--------- Работа - не волк, а произведение силы на расстояние!
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 01.01.2006, 18:49 Оценка за ответ: 5
Отвечает: Minor
Здравствуйте, SuperXakep!
вот попробуйте такую процедурку
Приложение:
Ответ отправил: Minor (статус: 1-ый класс)
Отправлен: 01.01.2006, 19:06
Отвечает: Schmak
Здравствуйте, SuperXakep!
Для представления дерева папок можно использовать компонент TDirectoryListBox со вкладки Win 3.1. Если же Вам обязательно надо вывести список папок в Listbox, то можете использовать приведённый ниже код.
Приложение:
--------- Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 02.01.2006, 09:08
Отвечает: sir henry
Здравствуйте, SuperXakep!
С помощью связки функций FindFirst и FindNext.
var
sr: TSearchRec;
FileAttrs: Integer;
Begin
if FindFirst('Themes*.*', faDirectory, sr) = 0 then
begin
repeat
if (sr.Attr and faDirectory) = faDirectory then
ListBox1.Items.Add(sr.Name);
until FindNext(sr) <> 0;
FindClose(sr);
End;
Ответ отправил: sir henry (статус: Академик)
Отправлен: 02.01.2006, 09:14 Оценка за ответ: 5
Отвечает: Toxic~Fire
Здравствуйте, SuperXakep!
По нажатию кнопки Button1:
procedure TForm1.Button1Click(Sender: TObject);
var
R:TSearchRec;
Path:PChar;
begin
Listbox1.Clear;
path:=pchar(extractfilepath(application.Name)+'Thames'); //Путь к твоей папке
if findfirst(Path+'*.*',fadirectory,r) = 0 then //Поверяем файлы
begin
if r.Attr = fadirectory then //Если У найденного файла атрибут "Папка"
listbox1.Items.Add(r.Name);// То выводим его в ListBox1
while findnext(r) = 0 do
if r.Attr = fadirectory then
listbox1.Items.Add(r.Name);
end;
listbox1.Items.Delete(0); //Только если это не корневой каталог
listbox1.Items.Delete(0); //Только если это не корневой каталог
end;
Ответ отправил: Toxic~Fire (статус: 2-ой класс)
Отправлен: 02.01.2006, 11:40
Отвечает: Лучников Юрий Владимирович
Здравствуйте, SuperXakep!
Написать рекурсивную функцию с использованием TFindFirstTFindNext структур...
Отвечает: Minor
Здравствуйте, Клёмин Сергей!
Смотря в каком случае, попробуйте
Application.ExeName
или
Paramstr(0)
В первом случае работает только при наличии обьекта Application, во втором - без ограничений
Ответ отправил: Minor (статус: 1-ый класс)
Отправлен: 01.01.2006, 20:48 Оценка за ответ: 5
Отвечает: Ерёмин Андрей
Здравствуйте, Клёмин Сергей!
Легко:
ProgramDir:=ExtractFilePath(Application.ExeName);
--------- Работа - не волк, а произведение силы на расстояние!
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 01.01.2006, 21:50
Отвечает: Denisss Здравствуйте, Клёмин Сергей!
1. ExtractFileDir(ParamStr(0));
- возвращает папку, в которой лежит программа (c:, c:windows)
- слэш "" будет ставиться в конце строки только если Ваша программа лежит в корне диска (c:, d:, ...)
2. ExtractFilePath(ParamStr(0));
- тоже возвращает путь. Отличается тем, что в этом случае в конце строки всегда будет стоять слэш "" (c:, c:windows).
Кроме ParamStr(0) можно использовать Application.ExeName, но если Вы посмотрите реализацию этого свойства, то увидите, что в нем также используется ParamStr(0).
Удачи в Новом Году!
Ответ отправил: Denisss (статус: Специалист)
Отправлен: 02.01.2006, 01:46 Оценка за ответ: 5
Отвечает: Diman_A
Здравствуйте, Клёмин Сергей!
ExtractFilePath(Application.ExeName) - результат String
Ответ отправил: Diman_A (статус: 2-ой класс)
Отправлен: 02.01.2006, 07:34 Оценка за ответ: 5
Отвечает: Schmak
Здравствуйте, Клёмин Сергей!
Всё очень просто:
ExtractFilePath(Application.ExeName)
--------- Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Студент)
Отправлен: 02.01.2006, 08:53 Оценка за ответ: 5
Отвечает: sir henry
Здравствуйте, Клёмин Сергей!
С помощью функции ExtractFilePath(Application.ExeName).
Название программы - ExtractFileName(Application.ExeName).
Ответ отправил: sir henry (статус: Академик)
Отправлен: 02.01.2006, 09:06 Оценка за ответ: 5
Ответ отправил: Toxic~Fire (статус: 2-ой класс)
Отправлен: 02.01.2006, 11:39
Отвечает: Лучников Юрий Владимирович
Здравствуйте, Клёмин Сергей!
Вопрос задан неточно - непонятно какой именно программы.
Если вы имеете ввиду путь самой себя, то Application.ExeName
Отвечает: sir henry
Здравствуйте, Клёмин Сергей!
1. С помощью свойства TrackLength[Track]. Это массив длин треков, индексом задается номер трека. Формат, в котором выдается длина трека, задается свойством TimeFormat. Количество траков - в свойстве Tracks.
2. Если речь идет о регулировании типа WAVE, то в модуле mmsystem есть функция waveOutSetVolume(WAVE_MAPPER, AVolume). Здесь AVolume это громкость в обеих каналах. Тип LongInt, старший разряд - правый канал, младший разряд - левый.
3. Элементарно. Вычесть из длины дорожки текущую позицию в треке:
TrackLength[Track]-Position;
Ответ отправил: sir henry (статус: Академик)
Отправлен: 02.01.2006, 09:01 Оценка за ответ: 5