Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (все версии) - часть 3

Автор: Frodo_Torbins
Дата сообщения: 07.01.2008 11:19

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

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

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

Вообще поаккуратнее с SetTimer с маленькими интеравалами, там не все так просто и в данных случаях лучше отправлять таймер в отдельный поток или использовать ожидаемые таймеры. А вообще не верится что в bass нет интерфейса для получения времени проигрывания.
Автор: Maks150988
Дата сообщения: 07.01.2008 16:24
LadyOfWood
Ну там в отдельном потоке сама "проигрывалка". К SetTimer значение 100 приляпал. А Bass я как таковой фичи не нашел, но в примерах длинну потока перемножают/делят. Однако у меня почему-то длинна потока всегда была равна 2 минутам. Сначала думал что может быть надо было обновлять через таймер, однако в тех демках вообще никаких таймеров не было, однако процесс был.

Однако интересно вот что. Если попытаться поиграть аудио поток, который "Не играется", то порт остается открытым. Деинициализирую приложение и выполняю помимо стандартных апишных закрывалок BASS_StreamFree(поток) и BASS_Stop. При закрытии программы порт закрывается. А вот если перед вопроизведением такое проделать - нет.

И еще... Сейчас в листбокс (ну типа плейлист) добавляю список названий станций методом LB_ADDSTRING. Пользователи захотели чтобы в плейлист грузился список станций из текстового файла. Как такое реализовать (ну или скажите какой поисковый запрос нужно вбить в искалке, сам попытаюсь найти). Спасибо.
Автор: uranic2
Дата сообщения: 09.01.2008 09:28
Нужны русские модули для CodeGear Delphi® 2007. Где можно скачать?
Раньше пользовался набором с delphiplus.org, но там последняя версия только для D7
Автор: Frodo_Torbins
Дата сообщения: 09.01.2008 14:53
uranic2
Можете еще тут спросить. Но скорее всего их еще не существует в природе
Автор: Maks150988
Дата сообщения: 10.01.2008 15:13
Уважаемые профессионалы, есть ли у вас пример реализации загрузки строк из текстового файла путем чтения их из него? Пользователи пожелали чтобы список станций грузился в листбокс (ну типа плейлист) из файла.
п.с. Уже устал искать. ((
Автор: Jokerjar79
Дата сообщения: 10.01.2008 15:47
Maks150988, так у листбокса есть метод LoadFrom File
Автор: vserd
Дата сообщения: 10.01.2008 15:52
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 учебник по языку. Там все это расписанно.
Автор: Jokerjar79
Дата сообщения: 10.01.2008 16:35
vserd, а почему бы не сразу

ListBox1.Items.LoadFromFile('FileName');
Автор: Maks150988
Дата сообщения: 10.01.2008 16:57
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;
Автор: vserd
Дата сообщения: 10.01.2008 17:27
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)
Автор: Maks150988
Дата сообщения: 10.01.2008 21:56

Цитата:
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;
Автор: bars101
Дата сообщения: 11.01.2008 03:34
Подскажите !

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 секунд?



Автор: yuish
Дата сообщения: 11.01.2008 09:37
может кто сталкивался. Активно пользую Add to Repository. Раньше в Д7 при создании формы на основе репозитории - форма родитель оставалась в проекте, после перехода на бдс2006 или турбо дельфи - как только создаешь форму на основе другой - форма родитель исключается из проекта. Лечится это как нибудь или нет?
Автор: vserd
Дата сообщения: 11.01.2008 09:40
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 мать его ...
Автор: bars101
Дата сообщения: 11.01.2008 10:55
Смерись.... Net Framework мать его ...

может пару дркгую гиг оп докупить?

Добавлено:
Смерись.... Net Framework мать его ...

Установил все, компоненты ,программы проверил
все мое работает и тут такой облом

с такими темпами и на пиво не заработаешь
пришлось вернуться на D7

ух,
как хорошо

Автор: Frodo_Torbins
Дата сообщения: 11.01.2008 14:24
bars101
Может декабрьский патч поможет: Официальный декабрьский апдейт от CodeGear?
Автор: dominiksus
Дата сообщения: 11.01.2008 22:15
есть страница, которая грузится в TWebbrowser, внутри нее работает Java-скрипт (транслитератор), текст пишется в поле TextField.
как мне получить текст из етого поля?
Автор: AntonVA1
Дата сообщения: 12.01.2008 00:19
Ээ-нет, ребята!
у меня ноутбук pentium M1,7/700mb/60gb+ очень давно (2года)установленная winxp pro sp1- в этом месте тормозов нет!
У меня скорее, в другом месте тормоза, при закрытии программы- секунд 15-20 полный зависон, я сейчас убиваю просто программу по ctrl-f2- закрывается намного быстрее. Сразу после загрузки тормоза менюшек в редакторе.
Но компилируется очень быстро.
Так что, проблема-в твоих виндах. Попробуй поставить свежую систему на другой диск, должно решить проблему.
Автор: bars101
Дата сообщения: 12.01.2008 02:47
Junior Member
Спасибо




вай вай AntonVA1
Извини только что пришедшего

Автор: Maks150988
Дата сообщения: 13.01.2008 23:44
Все, разобрался с этим плейлистом. Пришлось поднапрячься.
Сейчас интересует другая проблема. Загрузка битмапа в ListView посредством ListView_SetBkImage. Смотрел в Майкрософте в их базе, видать и там нет. Мне хотелось бы грузануть в этот элемент картинку так, чтобы при прокрутке листвью (если строк слишком много) этот рмсунок оставался на месте и не двигался. И причем хотелось бы грузануть рисунок из ресурсов, а не с диска. На других форумах только цитируют оригинальный текст. Неужели такой функцией нельзя так загрузить?
Или придется через WM_PAINT рисунок накладывать?
Автор: borodavolga
Дата сообщения: 14.01.2008 09:02
Народ, есть ли расширение для иде (D7), которое заменяет дебагер на свой-поудобнее чтобы?
Автор: idiMAN
Дата сообщения: 14.01.2008 12:21
borodavolga

Цитата:
Народ, есть ли расширение для иде (D7), которое заменяет дебагер на свой-поудобнее чтобы?


А что тебя в стандартном не устраивает? Поконкретнее, чтобы понять что тебе можно предложить...
Автор: vladk1973
Дата сообщения: 14.01.2008 12:56
borodavolga
Имхо, родной дебаггер один из самых удобных, какие я только встречал.
Автор: relictus
Дата сообщения: 14.01.2008 13:01
vladk1973
А по мне так OllyDbg удобней, особенно с плагинами. Жаль, не прикрутишь к IDE...
Автор: ymg2000
Дата сообщения: 14.01.2008 22:37
relictus
Olly конечно прекрасная вещь. Но не пойму, как ты отлаживаешь в нем? Сам же пишешь:
Цитата:
Жаль, не прикрутишь к IDE...


Автор: relictus
Дата сообщения: 15.01.2008 07:14
ymg2000

Цитата:
Но не пойму, как ты отлаживаешь в нем?

Без IDE
Автор: ymg2000
Дата сообщения: 15.01.2008 09:25
relictus
Я всегда пользовался IDE и родным дельфийским дебаггером, при этом далеко не полностью использовал его возможности. Поэтому несколько не "въезжаю " в твою технологию отладки при помощи Olly. Или все ж таки ты используешь Olly для реверсинга дельфийских программ?
Автор: relictus
Дата сообщения: 15.01.2008 10:06
ymg2000
Если мне надо отладить _свою_ программу и мне не хватает в этом возможностей делфийского дебаггера, я просто дебажу ее в Olly - вот и все.

Цитата:
для реверсинга дельфийских программ?

я использую связку DeDe + Olly + GODUP plugin. Или просто IDA
PS Прекращаем оффтоп.
Автор: Maks150988
Дата сообщения: 15.01.2008 10:26
Ау, программеры, мне нужен хотя бы ответ или намек в какую сторону копать.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 1С: Конвертация данных 2.0


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.