Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3

Модерирует : ShIvADeSt

ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
делфи я устанавливал без справок, а дистрибутива нет.

Я бы рекомендовал вам всетаки напрячься и скачать в инете дистрибутив "Delphi 7 Second Edition v7.2" у него размер чуть больше 42 Мб. И справка по VCL там есть. На счет справки по WinAPI не уверен, но кажись тоже присутствует.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 12:19 07-01-2008
LadyOfWood

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ба, ну наконец-то! Большое спасибо. Как раз вынес все это в отдельную процедурку. После BASS_ChannelPlay(chan, FALSE) прописал ее. И через wm_timer активировал, предварительно прописав в процедуре settimer.

Вообще поаккуратнее с SetTimer с маленькими интеравалами, там не все так просто и в данных случаях лучше отправлять таймер в отдельный поток или использовать ожидаемые таймеры. А вообще не верится что в bass нет интерфейса для получения времени проигрывания.

Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 14:47 07-01-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LadyOfWood
Ну там в отдельном потоке сама "проигрывалка". К SetTimer значение 100 приляпал. А Bass я как таковой фичи не нашел, но в примерах длинну потока перемножают/делят. Однако у меня почему-то длинна потока всегда была равна 2 минутам. Сначала думал что может быть надо было обновлять через таймер, однако в тех демках вообще никаких таймеров не было, однако процесс был.
 
Однако интересно вот что. Если попытаться поиграть аудио поток, который "Не играется", то порт остается открытым. Деинициализирую приложение и выполняю помимо стандартных апишных закрывалок BASS_StreamFree(поток) и BASS_Stop. При закрытии программы порт закрывается. А вот если перед вопроизведением такое проделать - нет.
 
И еще... Сейчас в листбокс (ну типа плейлист) добавляю список названий станций методом LB_ADDSTRING. Пользователи захотели чтобы в плейлист грузился список станций из текстового файла. Как такое реализовать (ну или скажите какой поисковый запрос нужно вбить в искалке, сам попытаюсь найти). Спасибо.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 17:24 07-01-2008
uranic2

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужны русские модули для CodeGear Delphi® 2007. Где можно скачать?
Раньше пользовался набором с delphiplus.org, но там последняя версия только для D7

Всего записей: 297 | Зарегистр. 17-08-2004 | Отправлено: 10:28 09-01-2008
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uranic2
Можете еще тут спросить. Но скорее всего их еще не существует в природе

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 15:53 09-01-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые профессионалы, есть ли у вас пример реализации загрузки строк из текстового файла путем чтения их из него? Пользователи пожелали чтобы список станций грузился в листбокс (ну типа плейлист) из файла.
п.с. Уже устал искать. ((

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 16:13 10-01-2008
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Maks150988, так у листбокса есть метод LoadFrom File

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 16:47 10-01-2008
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988

Цитата:
ли у вас пример реализации загрузки строк из текстового файла путем чтения их из него?  

Ну ты и загнул :))
Вариант 1
tmpL : TstringList;
 
tmpL := TStringList.create;
try
  tmpL.LoadFromFile('FileName');
  for I:= 0 to tmpL.count -1 do
  ListBox.Add(tmpL.Strings[i]);
finally
  tmpL.Free;
end
 
Вариант 2
F : TextFile;
AssignFile(F, 'FILENAME');
Rest(F);
While not Eof(F) do  
  ListBox.add(ReadLN(F));
CloseFile(F)
 
Текст писал "на коленке",  так что обрабатывай напильником. А в общем случае, RTFM учебник по языку. Там все это расписанно.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 16:52 10-01-2008
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vserd, а почему бы не сразу
 
ListBox1.Items.LoadFromFile('FileName');

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 17:35 10-01-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserd
Второй вариант пришлось подредактировать.
Jokerjar79
Да я на WinApi без VCL делаю.
 
Сделал так:
 

Код:
procedure LoadServers;
var
  RadioString : String;
  RadioFile : TextFile;
begin
  CurrentPath := ExtractFilePath(ParamStr(0));
  if FileExists(CurrentPath + '\Stations.txt') = TRUE then
  begin
    AssignFile(RadioFile, CurrentPath + '\Stations.txt');
    Reset(RadioFile);
    while not EOF(RadioFile) do
    begin
      ReadLn(RadioFile, RadioString);
      SendMessage(GetDlgItem(hWin, IDC_LISTBOX), LB_ADDSTRING, 0, Integer(@RadioString[1]));
    end;
    CloseFile(RadioFile);
  end
  else
    Messagebox(hWin, 'Файл отсутствует', 'Ошибка', MB_ICONSTOP);
end;

 
Такс... Движемся дальше. Для того чтобы проиграть поток, библиотеке надо указать требуемй URL. Для этого при двойном нажатии на лисбокс раньше я копировал в буфер название станции и запускал процедуру воспроизведения потока. Суть: В этой процедуре производилось чтение буфера. То есть если в буфере была "знакомая" станция, игрался определенный УРЛ. Теперь тут уже все по-другому.((
 
Строка в файле выглядит как Радио=http://radio.ru:8001/1
В лисбокс надо грузануть только название - то есть "Радио" без = и урл.
Юзер тыкает в листбоксе на эту строчку и в файле станций ищется эта строка и там находится тот самый Радио=http://radio.ru:8001/1, откуда вырезается значение Радио= и в буфер копируется линк. Потом идет процедура, где вкачестве урл линка для запуска суется значение из этого буфера. С последним то я разберусь, а вот как с файлом и листбоксом такое. Оболдеть...
Другого способа я не вижу.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 17:57 10-01-2008
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988
У ListBoxItem есть поле data типа Pointer (если я правильно помню Help), в него помещай URL. (PCHAR, GetMem и пр.)
Как выделить часть строки см POS.
 
Еще вариант, храни список в StringList и вытаскивай из него.
tmpL.ValueFromIndex[tmpl.indexofName(Listbox.text)];
tmpL.Values[Listbox.text];
 
P.S. Найди книжку по D. Иначе тебя поставят в игнор. Уж вопросы у тебя такие что в любой книжке описаны и разжеваны. :((
 
Jokerjar79

Цитата:
 почему бы не сразу  
ListBox1.Items.LoadFromFile('FileName');

Во первых основной вопрос был как загрузить из файла.
Во вторых, просто не вспомнил. :))
Обычно нужно сделать предварительную обработку данных (в подавляющем большинстве вместо .add  использую .addobject)

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 18:27 10-01-2008
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
P.S. Найди книжку по D. Иначе тебя поставят в игнор.

Да какую именно? Большинство книг имеют напрвленность как создать окошко, а аспекты интерфейса и прочих оконных приблуд не описывают.
 
Вот допустим мне надо через WM_DRAWITEM перерисовать листбокс, чтобы на нем мирно существовали фоновый рисунок и строки. Поисковики лезут на китайские сайты. На русских одна шняга. Код:
 

Код:
 
var
 hBMP : hBitmap;
 
function DlgProc(hWin: HWND; uMsg: UINT; wp: WPARAM; lp: LPARAM): bool; stdcall;
var
  ps: TPaintStruct;
  dc: HDC;
  hMemDC: HDC;
  rect: TRect;
begin
  Result := False;
  case uMsg of
   WM_INITDIALOG :
   begin
   hBMP := LoadBitmap(hInstance, 'IMAGE');
   SendMessage(GetDlgItem(hWin, 113), LB_ADDSTRING, 0, Integer(PChar('')));
   SendMessage(GetDlgItem(hWin, 113), LB_ADDSTRING, 0, Integer(PChar('')));
   end;
   WM_PAINT:
    begin
     dc := BeginPaint(getdlgitem(hWin, 113), ps);
     hMemDC := CreateCompatibleDC(dc);
     SelectObject(hMemDC, hBMP);
     GetClientRect(getdlgitem(hWin, 113), rect);
     BitBlt(dc, 0, 0, rect.right, rect.bottom, hMemDC, 0, 0, SRCCOPY);
     DeleteDC(hMemDC);
     EndPaint(getdlgitem(hWin, 113), ps);
     InvalidateRect(getdlgitem(hWin, 113), 0, False);
     UpdateWindow(hwin);
    end;
   WM_DESTROY, WM_CLOSE:
    begin
     DeleteObject(hBMP);
     PostQuitMessage(0);
    end;
 end;
end;
 

Что надо именно перерисовывать?
 
П.С. Раздобыл диск, установил справку. Но там всего-то написано мол пошли сообщение контролу с информацией о прорисовке.
 
Блин я без понятия.
 
П.П.С. не надо меня игнорить. я все-таки не всякую чушь спрашиваю как создать чекбокс или как его чекнуть. тут же код посерьезнее

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 22:56 10-01-2008 | Исправлено: Maks150988, 22:59 10-01-2008
bars101

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите !
 
CodeGear RAD Studio 5.0 или Delphi2007.lite.sp3
 
При компиляции программы - bds задумывается на 5- 15 секунд, прежде чем начнется  
процесс  компиляции
При наборе текста  типа MyUnit.    -  задумывается на N  секунд
Железо  -  AMD Athlon 64 X2 Dual 4200+  2.21ГГЦ    1ГБ
 
Совсем как  Delphi 5  на ПК IBM 100мгц
Никаких примочек  
 
В сеансе  работы  с  Delphi   эти секунды увеличиваются  
Мой компьютер.свойства.Общий объем файла подкачки  – 3072МБ  
В  процеcсе работы показывает(достигает)  900Мб
Delphi 7  - с этими же текстами  и  компонентами ( естественно  разные BPL)- летает  
Набор компонент - RBuilder, девки3  +  другие  
Как убрать  5- 15 секунд?
 
 
 

Всего записей: 6 | Зарегистр. 31-07-2007 | Отправлено: 04:34 11-01-2008
yuish

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
может кто сталкивался. Активно пользую Add to Repository. Раньше в Д7 при создании формы на основе репозитории - форма родитель оставалась в проекте, после перехода на бдс2006 или турбо дельфи - как только создаешь форму на основе другой - форма родитель исключается из проекта. Лечится это как нибудь или нет?

Всего записей: 218 | Зарегистр. 10-02-2003 | Отправлено: 10:37 11-01-2008
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maks150988

Цитата:
Да какую именно? Большинство книг имеют напрвленность как создать окошко, а аспекты интерфейса и прочих оконных приблуд не описывают.  

Зато они описывают как работать с файлами, как работать со строками, и прочими азами. Которые закладываются один раз и на всегда.  
Что из-современного есть на полках я не знаю, давно уже не ходил по магазинам, там в основном переиздания. Я начинал с Джеф Датеман "Delphi", и Драхвелидзе, Марков Delphi 1.0. Причем издание Маркова для более новых версий гораздо хужее, более попсовые. А Датемана для новых версий я невидел.
 
А как програмировать на WinAPI это нужно смотреть книжки С/С++  направленности. Их и больше, и лучшее документированы. Или вообще ищите книги Pascal for windows (которые еще для 3.1-3.11), там это должно быть расписано очень хорошо.
 
 
bars101

Цитата:
CodeGear RAD Studio 5.0 или Delphi2007.lite.sp3  
При компиляции программы - bds задумывается на 5- 15 секунд, прежде чем начнется  
процесс  компиляции  

Смерись.... Net Framework мать его ...

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 10:40 11-01-2008
bars101

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Смерись.... Net Framework мать его ...
 
 может пару дркгую гиг оп докупить?
 
Добавлено:
Смерись.... Net Framework мать его ...  
 
Установил все, компоненты ,программы проверил
все мое работает и тут такой облом
 
с такими  темпами  и на пиво не заработаешь
пришлось вернуться на D7
 
ух,
как хорошо  
 

Всего записей: 6 | Зарегистр. 31-07-2007 | Отправлено: 11:55 11-01-2008
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
bars101
Может декабрьский патч поможет: Официальный декабрьский апдейт от CodeGear?

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 15:24 11-01-2008
dominiksus



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
есть страница, которая грузится в TWebbrowser, внутри нее работает Java-скрипт (транслитератор), текст пишется в поле TextField.
как мне получить текст из етого поля?

Всего записей: 119 | Зарегистр. 11-08-2007 | Отправлено: 23:15 11-01-2008
AntonVA1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ээ-нет, ребята!
у меня ноутбук pentium M1,7/700mb/60gb+ очень давно (2года)установленная winxp pro sp1- в этом месте тормозов нет!
У меня скорее, в другом месте тормоза, при закрытии программы- секунд 15-20 полный зависон, я сейчас убиваю просто программу по ctrl-f2- закрывается намного быстрее. Сразу после загрузки тормоза менюшек в редакторе.
Но компилируется очень быстро.
Так что, проблема-в твоих виндах. Попробуй поставить свежую систему на другой диск, должно решить проблему.

Всего записей: 474 | Зарегистр. 17-09-2003 | Отправлено: 01:19 12-01-2008
bars101

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Junior Member
Спасибо
 
 
 
 
вай вай AntonVA1
Извини   только что пришедшего
 

Всего записей: 6 | Зарегистр. 31-07-2007 | Отправлено: 03:47 12-01-2008 | Исправлено: bars101, 05:34 13-01-2008
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (все версии) - часть 3
ShIvADeSt (07-04-2008 02:27): продолжение в http://forum.ru-board.com/topic.cgi?forum=33&topic=9383


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru