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

» Вопросы по Delphi 2

Автор: Alextpp
Дата сообщения: 30.10.2006 01:38
Возник следующий вопрос. Можно ли, и как если можно, заставить Windows media Player ActiveX (версии 6.4 или 9) читать не файл, а поток: TStream или IStream.
Посмотрел на методы ActiveX'а, ничего нужного (со словом Stream) не нашел.
Есть ли решение?

И аналогичный вопрос по MSIE ActiveX (TWebBrowser).
Автор: goodwen
Дата сообщения: 30.10.2006 02:08
FRALX

Цитата:
Обекты все равно надо перибирать

понял пасибо


Цитата:
а with in это вообще видимо не из делфов

а как насчет with as do ?
Автор: FRALX
Дата сообщения: 30.10.2006 02:40
goodwen
В случае With as
AS это пребразование типа
например :
procedure TestForm.OnButton1Click(Sender : TObject);
begin
with Sender as TComponent do ShowMessage(Name);
// соответственно Sender будет приведен к TComponent
// и будет показано его имя
end
Ну собственно говоря as в общем случае никакого отношения к with не имеет
Автор: goodwen
Дата сообщения: 30.10.2006 05:39
FRALX
Исчерпывающе, псиба
Автор: yuish
Дата сообщения: 30.10.2006 09:17
Jokerjar
ссылку на классную прогу разместил, особенно учитывая троян в длл.
Автор: OOD
Дата сообщения: 30.10.2006 12:32
Умные люди подскажити плз.
Есть БД Acsess подсоеденен туда через ADO , информация из базы отображается в DbGrid , как можно сделать отображение всех записей в базе по переменно т.е. чтобы определенная запись базы соответствовал определенной переменной

Как вытащить из DbGrid определенное значение , удовлетворяющее условию и поместить его в переменную

Инфы найти не могу по этому
Автор: OdesitVadim
Дата сообщения: 30.10.2006 13:40
OOD
Ну книги читайте хоть по празникам. Вопрос в корне неверен. С DBGrid данные вытащить нельзя (оффициально). Это лишь средство отображения данных.
Так как подключаешся ты скорее всего через ADOTable, то делаем ему так

Код:
ADOTable1.first;
while not ADOTable1.eof do
begin
q:=ADOTable1.fieldByName('sdasda').asstring;//В таком стиле
......
ADOTable1.Next;
end;
Автор: OOD
Дата сообщения: 30.10.2006 14:08
OdesitVadim
спасибо
Автор: Jokerjar
Дата сообщения: 30.10.2006 14:51
yuish, сорри. Скажи, каким антивирусом определилось как троян??? Это не опасно, дллка просто прогу из процессов прячет если надо...

Вопрос: Нужен пример алгоритма: сервер отсылает через сокет файл по кусочкам, а клиент принимает и собирает все в один файл... (на чистом winsock). А то я делаю, делаю, и никак не сделаю
Автор: FireZone
Дата сообщения: 30.10.2006 15:52
Jokerjar
Цитата:
Вопрос: Нужен пример алгоритма: сервер отсылает через сокет файл по кусочкам, а клиент принимает и собирает все в один файл... (на чистом winsock).
Для блокирующих сокетов я делал такие функции передачи и приёма блока данных произвольной длины (с доотправкой и доприемом):[more]
Код:
const
MAX_BUF_LEN = 32768; //превышать это значение нельзя!
{-------------------------------------------------------------------------------
Отправить блок данных через TCP соединение.
Если ошибка, возвращает SOCKET_ERROR, если успех - длину отправленного
блока (Len)
-------------------------------------------------------------------------------}
function SendData(sock: TSocket; const Data; Len: Integer): Integer;
var
i, j: Integer;
begin
result := 0;
i := Len;
while result <> Len do begin
j := i;
if j > MAX_BUF_LEN then j := MAX_BUF_LEN;
result := send(sock, Pointer(Integer(@Data) + result)^, j, 0);
if result = SOCKET_ERROR then Exit;
Dec(i, result);
result := Len - i
end
end;

{-------------------------------------------------------------------------------
Получить блок данных через TCP соединение
Результат - количество полученных байт.
Если результат 0, а Len не ноль, значит соединение gracefully завершено
удалённой стороной.
-------------------------------------------------------------------------------}
function RecvData(sock: TSocket; out Data; Len: Integer; Flags: LongWord = 0): Integer;
var
i, j: Integer;
begin
result := 0;
i := Len;
while result <> Len do begin
j := i;
if j > MAX_BUF_LEN then j := MAX_BUF_LEN;
result := recv(sock, Pointer(Integer(@Data) + result)^, j, 0);
if result = 0 then result := SOCKET_ERROR;
if (result = SOCKET_ERROR) then Exit;
Dec(i, result);
result := Len - i
end
end;
Автор: Jokerjar
Дата сообщения: 30.10.2006 17:03
FireZone, большое спасибо, обязательно посмотрю на твое решение. Я если честно уже сам допетрил как сделать. Оказалось, что я отправлял слишком большие куски (>8192 байта) и они обрезались. Как следствие - потеря байтов при сборке на клиенте.

А теперь встал другой вопрос: Необходимо замаскировать TWebBrowser, т.е. убрать стандартный ехплореровский попап и border у этого компонента. Как это можно сделать?
Автор: ArtemiyUO
Дата сообщения: 31.10.2006 06:35
Во первых лучше юзай EmbeddedWB, это доработанная и более продвинутая версия стандартного TWebBrowser.
У данного компоненты есть такое свойства как "DisableRightClickMenu" + "HideBorders" + можно повесить свой попап.
Автор: Jokerjar
Дата сообщения: 31.10.2006 14:01
ArtemiyUO, на какой вкладке находится? И в какой версии билдера? А то я чето не нашел


Добавлено:
Точнее мне надо это на C++ Builder, но спросил я тут, так как и в Делфи есть такой компонент, а эта тема поактивней будет...
Автор: andead
Дата сообщения: 01.11.2006 05:39
никто не встречал новые шкурки для интерфейса BDS2006?
например такую http://bdn.borland.com/article/images/33493/1.png
Автор: yuish
Дата сообщения: 01.11.2006 09:09
Jokerjar
в manager.dll находит TR/Spy.Lydra.F.4
антивирус AntiVir (хттп://free-av.com)
Автор: Vitus_Bering
Дата сообщения: 01.11.2006 10:43
Нужно прогу красиво привязать к железу, что посоветуете?
Автор: Jokerjar
Дата сообщения: 01.11.2006 12:10
Vitus_Bering, серийник винта - это первое что приходит в голову на подобные вопросы.


Добавлено:
Какой функцией можно получить текст ошибки по ErrorCode у ClientSocket (событие OnError)?
Автор: FRALX
Дата сообщения: 02.11.2006 00:14
Народ подскажите неграмотному через MyDAC OUT параметры хранимой процедуры можно вытянуть ? или нужно обязательно резулт сет возвращать ?
Автор: wd123
Дата сообщения: 02.11.2006 01:01

Цитата:
никто не встречал новые шкурки для интерфейса BDS2006?
например такую http://bdn.borland.com/article/images/33493/1.png

это не скин бдс, а скин винды
Автор: OdesitVadim
Дата сообщения: 02.11.2006 08:10
wd123
Это не скин винды, и не шкурка BDS. Это подмененая Welcome Page. Если кто то хочет, могу выложить именно эту Welcome Page, в добавок немного русифицированую мной.
Автор: pit23
Дата сообщения: 02.11.2006 11:04
Здорова всем. У меня возник вопросик. Как проверять на уникальность ввода информации, если работаю с ADOTable и запись в базу идет напрямую в таблицу из формы.
Интересно ваше мнение по этому вопросу.
Автор: xlebopezka
Дата сообщения: 02.11.2006 11:12
в базе поставь уникальный ключ и БД сама не даст вставить тебе не уник. запись
Автор: OdesitVadim
Дата сообщения: 02.11.2006 11:12
Поставить в таблице, что поле уникально. А потом ловить исключения с помощью try ... Except. Если попытаешся добавить данные, которые не будут уникальны JET драйвер (или какой ты там используеш) сгенерит ошибку. Без try except будет в принципе тоже работать, но зачем нам левые окошка с ошибками?
Автор: pit23
Дата сообщения: 02.11.2006 13:06
xlebopezka

В базе стоит требование уникальности. Мне надо узнать как лучше всего в программе отследить попытку записи неуникального кода и сообщить юзеру понятное сообщение.

OdesitVadim

А куда надо ставить try ... except если при переходе по записям в CtrlGrid'е автоматически срабатывает метод Post
Автор: OdesitVadim
Дата сообщения: 02.11.2006 13:19
А у ADOTable нет обработчика, который можно дёргать в случае ошибки? Например OnPostError

Добавлено:
try except уже не надо будет
Автор: sunduk4
Дата сообщения: 02.11.2006 13:48
Перевожу строку из формата rtf в текст таким образом -


Код:
RE := TRichEdit.Create(Self);
RE.Parent := Self;
RE.Text := RtfString;
Result := RE.Text;
RE.Free;
Автор: pit23
Дата сообщения: 02.11.2006 13:58
OdesitVadim

Да есть такой обработчик, он так и называется. Большое спасибо .
Это помогло избавится от написания кода проверки во многих местах программы.
Автор: OdesitVadim
Дата сообщения: 02.11.2006 14:19
sunduk4
Через сохранение в поток (например TMemoryStream) или временный файл и последующей загрузкой в RichEdit
Автор: sunduk4
Дата сообщения: 02.11.2006 14:42
OdesitVadim
Спасибо! Через TStringStream победилось.
Автор: andead
Дата сообщения: 02.11.2006 16:03
wd123

Цитата:
это не скин бдс, а скин винды

OdesitVadim

Цитата:
Это не скин винды, и не шкурка BDS. Это подмененая Welcome Page. Если кто то хочет, могу выложить именно эту Welcome Page, в добавок немного русифицированую мной.

велкам панельку уже скачал по ссылке http://files.vingrad.ru/alex/arhiv/bds_community_welcome_page_v2_only2006en.rar
пробовал менять шкуры у винды но у БДС оставался такой же жёлтый =\ поэтому подумал что это скин такой

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Событие STFilter(DBGridEh) ???


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