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

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

Автор: Frodo_Torbins
Дата сообщения: 27.03.2009 09:36
Kursist
Данные в памяти могут быть "выровнены" для ускорения работы. Например, если включено 32-х битное выравнивание, то между каждым элементом массива будет еще 3 пустых байта. Да и вообще мне кажется удобнее будет использовать рекорды:
Код: TRGBQuadArray = array[0..MaxInt div sizeof(TRGBQuad)-1] of TRGBQuad;
PRGBQuadArray = ^TRGBQuadArray;
Автор: Kursist
Дата сообщения: 27.03.2009 10:53
Mandor Sawall
Спасибо! Так работает:

Цитата:
FStream.Read(arr^,Size);


Frodo_Torbins
Спасибо за полезную информацию! Теперь в раздумьях - делать ли рефакторинг программы создающей файл с данными RGBA.

Автор: Mandor Sawall
Дата сообщения: 27.03.2009 12:22
Kursist
Обращайте более внимание на указателях. Код
Код: FStream.Read(arr[loop1],SizeOf(Byte));
Автор: Bonivur
Дата сообщения: 27.03.2009 17:07
У меня есть модуль для воспроизведения Midi звуков
http://rapidshare.com/files/214155300/MidiGen.pas.html
был бы очень признателен если бы кто-нибудь помог сделать его работоспособным для Delphi 2009.

использование типа этого:

var
mg : TMidiGen;

begin

mg := TMidiGen.Create(Self):
mg.PlayNote(100);
//mg.PlayString('C#4');
mg.Free;

end;

заранее благодарю.
Автор: delover
Дата сообщения: 27.03.2009 19:41
Mandor Sawall
Вы нажимали клавишу Del в обычном мемо? Для меня по дефолту не только то что SelLength это тот же ассемблерный код. Для меня это ещё и абсолютно те же виндовые сообщения - директива messages (для тех кто знаком). А так же акция только Del, управится никто не собрался, и куда же девался SetLength?
Автор: ShIvADeSt
Дата сообщения: 28.03.2009 05:24
delover
Прочитай, что ты написал. Там без бутылки не разберешь - что именно ты имел ввиду. При чем тут асм код - вообще хз, если на асме работать - то один фиг вызываешь теже АПИ функции только на синтаксисе АСМа. Насчет Del - он тебе правильно Mandor Sawall. Ты определил его как стандартное действо для попапа и есть много вариантов, когда при таком переопределении он работать не будет. Тут надо либо в событии попапа при нажатии делита либо имитировать поведение мемо на данную клавишу (посылать сообщение в мемо на удаление куска текста), либо делать анализ поведения и в случае чего посылать данную клавишу нужному контролу. А вообще переотпределять нажатия стандарных действий (например делита или ескейпа) для некоторых контролов не есть гуд. Потом будешь гемороиться с разруливанием проблем.
Автор: delover
Дата сообщения: 28.03.2009 13:21
ShIvADeSt
Mandor Sawall
Я же, Вас таки тогда, научу любить стандартные акции. Ассемблер тут нужен только для весомости моих возмущений.

Цитата:
текста), либо делать анализ поведения и в случае чего посылать данную клавишу нужному контролу.

Есть, мне кажется, лучшее решение, и думаю оно вполне в духе Borland, так как не содержит ниодной новой буквы или выражения.

Код:
TEditDelete = class(TEditAction)
protected
function HandleShortCut: Boolean; override; <--!!!! DEL or Ctrl+DEL?
public
procedure ExecuteTarget(Target: TObject); override;
procedure UpdateTarget(Target: TObject); override;
end;
...
function TEditDelete.HandleShortCut: Boolean;
begin
if GetControl(Target).SelLength > 0 then
Result := inherited HandleShortCut else
Result := False;
end;
Автор: ShIvADeSt
Дата сообщения: 28.03.2009 15:31
delover

Цитата:
Я же, Вас таки тогда, научу любить стандартные акции.

Я подобные вещи делаю на чистом АПИ, если надо - то просто делаю перехват оконной функции контрола и не имею проблем Всякие TAction - по сути обертка. Хотя каждый поступает как ему удобнее.
Автор: Kardinalli
Дата сообщения: 28.03.2009 23:59
Господа, дилетантский вопрос, работают ли программы скомпилированные в D7 под Vista? Нужно мигрировать на другой язык, переносить программы, вот выбираю, куда податься. NET не предлагать, тогда мне и без Delphi хорошо, но это другой вопрос...
Автор: Kursist
Дата сообщения: 29.03.2009 01:36
Kardinalli

Цитата:
работают ли программы скомпилированные в D7 под Vista?


У меня работают без проблем.
Также и D7.
Автор: Frodo_Torbins
Дата сообщения: 29.03.2009 09:09
Они и под Win7 наверняка прекрасно будут работать
Автор: delover
Дата сообщения: 29.03.2009 10:40
Kardinalli
Я бы предложил задуматься о цене переноса. Если заплатят нормально, то можно сторонние компоненты покупать современных версий. И вопросы им задавать на оффсайтах.

Если прога не содержит сторонних компонентов, то пляски будут только с Indy. Но это вполне решаемо.

Добавлено:
Ди и не секрет, что касается кода - на D2009 лучше не прыгать (это долгая история), а вот D2006/D2007 полностью совместимы с семёркой.
Автор: Kardinalli
Дата сообщения: 29.03.2009 11:20
Ок, всем спасибо!
Автор: GPSGURU
Дата сообщения: 29.03.2009 16:43
Всем привет. Использую Indy 10. Компонент idTCPServer. Принимает и обрабатывает данные правильно. Но при увеличении кол-ва одновременных пользователей (50-70) начинает "глючить": повышается кол-во потоков в приложении (доходит до 400-500), потом приложение просто вылетает с ошибкой. Кто встречался с этим? Посоветуйте компонент для разработки многоклиентских приложений в Делфи. Или лучший это винсокеты?
Автор: Aleksoid1978
Дата сообщения: 30.03.2009 01:00
GPSGURU

Какая версия Delphi ну и самого Indy ???
Автор: svs123456789
Дата сообщения: 30.03.2009 18:49
поставил CodeGear RAD Studio 2009 Delphi .NET
кликаю создать проект vcl , компилировать, получаю ошибку:
"Unable to scan program's header delphi"
Автор: delover
Дата сообщения: 30.03.2009 19:26

GPSGURU
Незнаю какая версия виндовс, система по дефолту граничит со 150-200 нитями потоков. У вас больше. На это не хватает ресурсов системы. Все пытаются другими способами обходить это обстоятельство. Думяю у меня комп выдержит тысячу потоков. Но это не вопрос программирования. Indy написано правильно.
Автор: yegorovpavel
Дата сообщения: 30.03.2009 21:07
Суть вопроса такова: в Дельфи 2007, при работе с длинными строками в исходном коде, при щелчке по символу, располагающемуся после вертикальной черты, весь код автоматически сдвигается таким образом, что курсор находится в центре экрана. Лично меня это задалбывает невероятно. =) Или вот: если строка длинная, то есть выходит за пределы этой самой черты, по при попытке щелкнуть на последний символ строки, чтобы, к примеру, поставить там точку с запятой, фокус улетает куда-то далеко =) Можно это как-нибудь выключить?
Автор: Frodo_Torbins
Дата сообщения: 30.03.2009 21:25
yegorovpavel
Нет.
svs123456789
Официально Эмбаркадеро кайликснула Delphi .NET.
Автор: ShIvADeSt
Дата сообщения: 31.03.2009 01:12
GPSGURU

Цитата:
Принимает и обрабатывает данные правильно. Но при увеличении кол-ва одновременных пользователей (50-70) начинает "глючить": повышается кол-во потоков в приложении (доходит до 400-500)

А у тебя какая винда, если Windows XP - то посмотри на сколько соединений пропатчен tcpip.sys. Возможно у тебя просто лимит соединений появляется (кстати для этого посмотри журналы системы на наличие событий не помню ошибку но где то есть слово tcpip).
Автор: svs123456789
Дата сообщения: 31.03.2009 08:38

Цитата:
Официально Эмбаркадеро кайликснула Delphi .NET.

и что это означает ??
Автор: V1s1ter
Дата сообщения: 31.03.2009 11:05
yegorovpavel

Цитата:
при работе с длинными строками в исходном коде, ......

Можно передвинуть эту самую линию.
Автор: Frodo_Torbins
Дата сообщения: 31.03.2009 11:17
svs123456789

Цитата:
и что это означает ??

Что означает "кайликснула"? - Сделала с Delphi.NET тоже, что и с Kylix. Соответственно официально Delphi.NET в RAD Studio 2009 не входит (появился Delphi Prism). Однако на практике все необходимые файлы в дистрибутиве остались (хз почему). Если сделать небольшую модификацию инсталятора и файла лицензии, то можно нормально установить .NET персоналию. Хотя конечно за работоспособность такого варианта никто не ручается.
Автор: delover
Дата сообщения: 31.03.2009 11:23
GPSGURU
Кстати, я немного подзабыл. Ограничение было давно. Сейчас тестил создание 1100 потоков - работает - но всё жудко тормозит. Хотя на виртуал PC всё летает.
Автор: svs123456789
Дата сообщения: 31.03.2009 12:18
Frodo_Torbins

Цитата:
официально Delphi.NET в RAD Studio 2009 не входит (появился Delphi Prism)

так я скачал с офф сайта и поставил CodeGear RAD Studio 2009 Delphi .NET
и кликаю создать проект vcl , компилировать, получаю ошибку:
"Unable to scan program's header delphi"
как исправить ?
Автор: Frodo_Torbins
Дата сообщения: 31.03.2009 13:18
svs123456789

Цитата:
так я скачал с офф сайта и поставил CodeGear RAD Studio 2009 Delphi .NET

Где то вы путаете...
Автор: Kardinalli
Дата сообщения: 31.03.2009 23:26
Блин, туплю по черному. Никогда с дельфи не работал, но как-то раз, ради интереса ставил Delphi 2005. Интерфейс программы очень напоминает Visual Basic, я имею ввиду прежде всего визуальный редактор.

Сейчас поставил Delphi 7 и ничего не могу понять. То ли дистибутив не в порядке, то ли еще что - я не могу найти и открыть дизайнер форм! Ну все перерыл, хоть тресни! Код - пожалуйста, но где визуальный редактор то, блин?!

ЗЫ
Надо же, и вправду был дистр на диске битый. Скачал новый, все появилось...
Автор: DmitryKz
Дата сообщения: 01.04.2009 04:46
Ребята, где можно почитать про реализацию алгоритма justify (выравнивания текста по ширине при его выводе)?
Автор: greenpc
Дата сообщения: 01.04.2009 07:23
DmitryKz
_http://www.delphisources.ru/pages/faq/base/justify_align.html
_http://www.delphikingdom.com/asp/viewitem.asp?catalogid=171
заодно посмотрите на _http://synedit.sourceforge.net/
Автор: Asm64D
Дата сообщения: 01.04.2009 20:20

Цитата:
Kardinalli

при работе с кодом нажми F12 - это вызов редактора, если не появился, то
1) Вы уверены что в программе есть форма?
2) Вы открыли файл с расширением *.dpr?
3) Вы правильно создали проект см. рисунок
4) Вы читали книги по Delphi?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Глобальные переменные в разных формах с++ builder 'a.


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