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

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

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

ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102

   

RUNaum



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

Цитата:
Народ, кто-нибудь использовал AQtime v4.9 (just released with tight Borland Developer Studio integration. Profile applications without leaving the IDE) от http://www.automatedqa.com/products/aqtime/index.asp для обнаружения утечек памяти и ресурсов?
Интересует, насколько он хорош для этих целей? Удобство работы с этим пакетом?  Есть ли более легковесные аналоги?  

 
memproof не плох для выявления утечек, но профайлера там нету. зато легковесен =) а AQTime я жаль последнего ломанного не нашел. профайлер офигенный. вот бы кто-нить посоветовал free профайлеры под дельфю (D7 / D9 / D2006). либо может кто кряком под AQTime поделится? )

Всего записей: 306 | Зарегистр. 25-11-2005 | Отправлено: 17:14 28-02-2006
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BABAYKA
Напиши вместо

Код:
DataModule1.pFIBDatabase1.Connected:=True;

это:

Код:
if not DataModule1.pFIBDatabase1.Connected then
  DataModule1.pFIBDatabase1.Connected:=True;


Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 17:16 28-02-2006
ast1



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

Цитата:
 
 
и указывает на строчку:  
DataModule1.pFIBDatabase1.ConnectParams.UserName := FLogin.EdLogin.Text;
 

 
База у тебя стартует c Connected:=True; или нет ?
 
Попробуй откомпелировать, с отключенноей базой
или перед этой строчкой поставит  
DataModule1.pFIBDatabase1.Connected:=False;

Всего записей: 36 | Зарегистр. 25-03-2005 | Отправлено: 17:38 28-02-2006 | Исправлено: ast1, 17:43 28-02-2006
BABAYKA



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

Цитата:
База у тебя стартует c Connected:=True; или нет ?

 
Вот именно...УРА!!!....Я ранее искал собаку в этом месте, но криво был выставлен коннект (спасибо RomanTim поправил)...в результате по запарке оставил включеным датабазу....сейчас поправил и все ОК!!! СПАСИБО ВСЕМ БОЛЬШОЕ ЗА ПОМОЩЬ...!!!!

Всего записей: 109 | Зарегистр. 09-10-2004 | Отправлено: 17:52 28-02-2006
aplex

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прога была написана на Д4(см мой пост(Apleks) на стр77). В принципе нормально компилируется на Д7, только работает потом несколько не корректно. В частности, как догадываюсь, не может сделать UnhookWindowsHookEx(hhk); При компиляции выдаётся куча предупреждений. Может быть в сумме и получается одна большая проблема. Предупреждения для .dll такие:

Код:
 
library P;
uses
  Windows, Messages, Commctrl;
{$R *.res}
..............
function WP(.........................): integer; stdcall;
var .................
    lvi: LV_ITEM;
    buf: array[0..256] of byte;
    pt: record x,y: integer; end;
....
// далее идут ругательства  
//  [Warning] P.dpr(61): Unsafe type 'pszText: PAnsiChar'
// на подобные выражения:
lvi.pszText:=@buf[0];
//   [Warning] P.dpr(61): Unsafe code '@ operator'
// практически везде где встречается оператор '@'
//   [Warning] P.dpr(72): Unsafe type 'PChar'
//  на подобные выражения (т.е. везде где встречается PChar):
        RegCreateKeyEx(HKEY_CURRENT_USER,
        PChar('fghfg'+chr(wParam+ord('0'))), 0,
        nil, 0, KEY_ALL_ACCESS, nil, key1, @dw);
...........
function DllHookProc(code: integer; wParam, lParam: Cardinal): Cardinal; stdcall;
var hi: Cardinal;
//   [Warning] P.dpr(109): Unsafe type 'Pointer' // на выражение:
    lpMsgBuf: Pointer;
.........
 

для будущего экзешника примерно такие же
В чём может быть нестыковка ?

Всего записей: 118 | Зарегистр. 17-04-2003 | Отправлено: 20:02 28-02-2006 | Исправлено: aplex, 14:02 01-03-2006
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aplex
Unsafe-предупреждения говорят о том, что потенциально код может испортить память, только вот без Pointer, PChar, @ и т.п. с WinAPI не много наработаешь. Предупреждение выдаются на сам факт наличия этих типов и операций, на работоспособности они не сказывааются. Я у себя эти предупреждения просто сразу выключаю и настройки проекта запоминаю как дефолтные.
 
По поводу UnhookWindowsHookEx -  

Код:
if not UnhookWindowsHookEx(...) then
  ShowMessage(IntToStr(GetLastError));

и в MSDN смотри что эта ошибка означает

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 21:41 28-02-2006
relictus

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

Цитата:
memproof не плох для выявления утечек, но профайлера там нету. зато легковесен =) а AQTime я жаль последнего ломанного не нашел. профайлер офигенный. вот бы кто-нить посоветовал free профайлеры под дельфю (D7 / D9 / D2006). либо может кто кряком под AQTime поделится? )

А вот тут посмотри http://forum.ru-board.com/topic.cgi?forum=35&topic=7273&start=160#lt

Всего записей: 3787 | Зарегистр. 19-04-2005 | Отправлено: 09:22 01-03-2006
mainstream



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет.
Простите за ламерский вопрос, просто ни разу не сталкивался.
Как мне сделать прозрачный компонент, наследник TCustoPanel, у меня имеются 2 TBitmap, в которых я собственно и рисую свой контрол, а в паинте просто копиректом переношу изображение на канву. Юзаю я PngImage.pas, и хочу чтобы контрол отображал прозрачную PNG'ху, но естественно после простого копирования PNG на битмап, а потом на канву, никакой прозрачности не получается, как её можно замутить?
Спасибо.
 
Добавлено:
Нашел на сорцах ру вот такую процедуру:

Код:
 
procedure DrawTransparentBmp(Cnv: TCanvas; x,y: Integer; Bmp: TBitmap;
                             clTransparent: TColor);
var
  bmpXOR, bmpAND, bmpINVAND, bmpTarget: TBitmap;
  oldcol: Longint;
begin
  try
    bmpAND := TBitmap.Create;
    bmpAND.Width := Bmp.Width;
    bmpAND.Height := Bmp.Height;
    bmpAND.Monochrome := True;
    oldcol := SetBkColor(Bmp.Canvas.Handle, ColorToRGB(clTransparent));
    BitBlt(bmpAND.Canvas.Handle, 0,0,Bmp.Width,Bmp.Height, Bmp.Canvas.Handle,
           0,0, SRCCOPY);
    SetBkColor(Bmp.Canvas.Handle, oldcol);
 
    bmpINVAND := TBitmap.Create;
    bmpINVAND.Width := Bmp.Width;
    bmpINVAND.Height := Bmp.Height;
    bmpINVAND.Monochrome := True;
    BitBlt(bmpINVAND.Canvas.Handle, 0,0,Bmp.Width,Bmp.Height,
           bmpAND.Canvas.Handle, 0,0, NOTSRCCOPY);
 
    bmpXOR := TBitmap.Create;
    bmpXOR.Width := Bmp.Width;
    bmpXOR.Height := Bmp.Height;
    BitBlt(bmpXOR.Canvas.Handle, 0,0,Bmp.Width,Bmp.Height, Bmp.Canvas.Handle,
           0,0, SRCCOPY);
    BitBlt(bmpXOR.Canvas.Handle, 0,0,Bmp.Width,Bmp.Height,
           bmpINVAND.Canvas.Handle, 0,0, SRCAND);
 
    bmpTarget := TBitmap.Create;
    bmpTarget.Width := Bmp.Width;
    bmpTarget.Height := Bmp.Height;
    BitBlt(bmpTarget.Canvas.Handle, 0,0,Bmp.Width,Bmp.Height, Cnv.Handle, x,y,
           SRCCOPY);
    BitBlt(bmpTarget.Canvas.Handle, 0,0,Bmp.Width,Bmp.Height,
           bmpAND.Canvas.Handle, 0,0, SRCAND);
    BitBlt(bmpTarget.Canvas.Handle, 0,0,Bmp.Width,Bmp.Height,
           bmpXOR.Canvas.Handle, 0,0, SRCINVERT);
    BitBlt(Cnv.Handle, x,y,Bmp.Width,Bmp.Height, bmpTarget.Canvas.Handle, 0,0,
           SRCCOPY);
  finally
    bmpXOR.Free;
    bmpAND.Free;
    bmpINVAND.Free;
    bmpTarget.Free;
  end;
end;
 

Она работает нормально, но беда в том что емеется только один прозрачный цвет, а в PNG формате, имеются и полупрозрачные области, вопрос в том, как грамотно рисовать PNG'ху с полупрозрачностью.

Всего записей: 66 | Зарегистр. 10-04-2003 | Отправлено: 11:38 01-03-2006
YuRRiX

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Кто-нибудь знает как можно отправлять сообщения по сети по аналогии [net send]?
зарание благодарен.

Всего записей: 31 | Зарегистр. 07-02-2006 | Отправлено: 09:19 02-03-2006
mainstream



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YuRRiX, что значит по аналогии, ты хочешь заюзать net send из своей проги, или тебе утилита net не катит вобсче? Если net подходит то юзай ShellExecute.

Всего записей: 66 | Зарегистр. 10-04-2003 | Отправлено: 11:30 02-03-2006
SERGE_BLIZNUK

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

Цитата:
 сделать прозрачный компонент

 
Вот, по вашей просьбе нашёл статью в Delphi World
"Полупрозрачная форма в Win2000"
 
Подробнее - Подробнее...
 
Удачи.
 

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 12:40 02-03-2006
vshersh



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

Код:
NetMessageBufferSend
The NetMessageBufferSend function sends a buffer of information to a registered message alias.
 
NET_API_STATUS NetMessageBufferSend(
  LPCWSTR servername,
  LPCWSTR msgname,
  LPCWSTR fromname,
  LPBYTE buf,
  DWORD buflen
);

А здесь есть пример

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 14:16 02-03-2006
mainstream



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SERGE_BLIZNUK
Спасибо за ответ, но это совсем не то, прозрачные окна мне не интересны.
Меня интересует только один вопрос: как сделать компонент наследник TCustomPanel, канва которого будет прозрачной, например в паинте нарисовать только рамку, чтобы непрозрачной была только она.

Всего записей: 66 | Зарегистр. 10-04-2003 | Отправлено: 15:07 02-03-2006
SERGE_BLIZNUK

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mainstream
ага.. тогда я вам ничем не смогу помочь... по крайней мере, сейчас...

Всего записей: 2014 | Зарегистр. 12-09-2002 | Отправлено: 15:34 02-03-2006
YuRRiX

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
2 mainstream. net send конечно хорошо, но невозможно контролировать ответ (если служба сообщений остановлена например...)
2 vshersh, спасибо, Все замечательно работает!

Всего записей: 31 | Зарегистр. 07-02-2006 | Отправлено: 16:24 02-03-2006 | Исправлено: YuRRiX, 16:54 02-03-2006
mainstream



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

Всего записей: 66 | Зарегистр. 10-04-2003 | Отправлено: 16:42 02-03-2006
MrZeRo



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

Цитата:
как сделать компонент наследник TCustomPanel, канва которого будет прозрачной, например в паинте нарисовать только рамку, чтобы непрозрачной была только она.

Для этого есть компонент TBevel.

Цитата:
 
Description
Use TBevel to create beveled boxes, frames, or lines. The bevel can appear raised or lowered.
 



----------
... не это главное ...

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 16:48 02-03-2006
mainstream



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MrZeRo
Дело в том что мне нужна не только рамка, а рисование немного посерьезнее, это я так сказать для примера. В тоже время мне нужен компонент, который сам является окном(т.е. наследник TWinControl), а не наследник TGraphicControl, т.к. потомки TGraphicControl, не получают сообщений о действиях мыши.
Если в двух словах, то мне нужен компонент-наследник, чего-нибудь из TWinControl  с прозрачной канвой.

Всего записей: 66 | Зарегистр. 10-04-2003 | Отправлено: 17:56 02-03-2006
MrZeRo



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

Цитата:
 потомки TGraphicControl, не получают сообщений о действиях мыши

Получают. Например,  

Цитата:
 
TImage = class(TGraphicControl)
...
published
    property OnMouseActivate;
    property OnMouseDown;
    property OnMouseEnter;
    property OnMouseLeave;
    property OnMouseMove;
    property OnMouseUp;
 

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

Цитата:
 
The SetLayeredWindowAttributes function sets the opacity and transparency color key of a layered window.
 

Надо сначала установить флаг LAYERED:

Цитата:
 
SetWindowLong(Handle, GWL_EXSTYLE, AStyle or WS_EX_LAYERED);
 

но для нее

Цитата:
 
Minimum operating systems Windows 2000  
 

Зачитай в MSDN про эти функции и попробуй.

----------
... не это главное ...

Всего записей: 832 | Зарегистр. 30-01-2002 | Отправлено: 18:27 02-03-2006
makbeth

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mainstream
Можно попробовать переопределить WM_ERASEBKGND:

Код:
 
procedure WMEraseBkgnd(var Message: TWMEraseBkgnd);
begin
      Message.Result:=1;
end;
 

т.е. ничего не рисовать - хотя скорее всего это проканает только для popup окна.

Всего записей: 241 | Зарегистр. 08-12-2004 | Отправлено: 06:25 03-03-2006
   

Страницы: 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 102

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi
ShIvADeSt (20-04-2006 01:53): http://forum.ru-board.com/topic.cgi?forum=33&topic=6679#1


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru