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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

   

kalkin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу написать сканер серверов кс взял idUDPClient
вот код:
 
===================
    d.Host:='192.168.1.201';
    d.Port:=27015;
   d.Send('');
   if d.ReceiveString<>'' then
   memo1.Text:='есть серв'
   else
   memo1.Text:='нет серв'
===================
 
дак вот вопрос как мне узнать что послать на сервак снифаком поработал
выкидывает
 
 
========================= Packet 0 =========================
Source Address     : 0.0.0.0:1032
Destination Address: 255.255.255.255:27015
Protocol           : UDP
Summary            : UDP: Source port = 1032, Destination port = 27015  
Length             : 57
UDP: Source = 0.0.0.0:1032, Destination = 255.255.255.255:27015
 
0000: FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E 67 69     ....TSource Engi
0010: 6E 65 20 51 75 65 72 79 00 01 00 10 00 9E 00 00     ne Query........
0020: 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00     ................
0030: 00 00 00 00 00 00 00 00 00                          .........
 
=====================================================

Всего записей: 55 | Зарегистр. 19-05-2006 | Отправлено: 23:27 15-12-2007
Maks150988



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хм, подскажите как упорядочить текст в ListView во втором столбце. Как нужно правильно послать команду LVM_SORTITEMS в контрол.

Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 19:39 16-12-2007
4kusNick

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MrGalaxy
А ты не пробовал ловить код клавиши по-другому?
Например, так:
 

Код:
unit MainForm;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TMain = class(TForm)
    Label1: TLabel;
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Main: TMain;
 
implementation
 
{$R *.dfm}
 
procedure TMain.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
 
  Label1.Caption := IntToStr(Key);
  Key := 0;
 
end;
 
end.

 
Понятно, что такой способ не прокатит именно для фонового перехвата, но все-же, может так получится отловить нажатие.
Также попробуй GetAsyncKeyState заюзать в очень низкоинтервальном цикле.
А если тебе нужно отрубать кнопку выключения например в то время, пока запущен твой перехватчик, то наверное, грамотнее будет, если ты сделаешь как раз отключение реакции на нажатие этой кнопки, чтобы автоматом в винде ставилось действие по нажатию кнопок сна\выключения питания и т.д. Это будет грамотнее с той точки зрения, что вдруг, у кого-нить все-таки коды отличаются?
 

Всего записей: 343 | Зарегистр. 13-06-2007 | Отправлено: 06:08 17-12-2007 | Исправлено: 4kusNick, 06:12 17-12-2007
DumnedAspid



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Maks150988
Цитата:
 
Соpтиpовка элементов/подэлементов
 
Вы можете указать поpядок соpтиpовки контpола listview по умолчанию указав стили LVS_SORTASCENDING или LVS_SORTDESCENDING в CreateWindowEx. Эти два стиля упоpядочивают элементы только по элементам. Если вы хотите отсоpтиpовать элементы дpугим путем, вы должны послать сообщение LVM_SORTITEMS listview.
 
LVM_SORTITEMS
wParam = lParamSort
lParam = pCompareFunction
 
lParamSort - это опpеделяемое пользователем значение, котоpое будет пеpедаваться функции сpавнения. Вы можете использовать это значение любым путем, котоpым хотите.
 
pCompareFunction - это адpес задаваемой пользователем функции, котоpая будет опpеделять pезультат сpавнения item'ов в listview. Функция имеет следующий пpототип:
 
CompareFunc proto lParam1:DWORD, lParam2:DWORD, lParamSort:DWORD
 
lParam1 или lParam2 - это значения паpаметpа lParam LV_ITEM, котоpый вы указали, когда вставляли элементы в listview.
 
lParamSort - это значение wParam, посланное вместе с сообщением LVM_SORTITEMS.
 
Когда listview получает сообщение LVM_SORTITEMS, она вызывает соpтиpующую функцию, указанную в паpаметpе lParam, когда ей нужно узнать pезультат сpавнения двух элементов. Кpатко говоpя, функция стаpвнения будет pешать, какой из двух элементов, посланных ей, будет пpедшествовать дpугому. Пpавило пpостое: если функция возвpащается отpицательное значение, тогда пеpвый элемент (указанный в lParam1) будет пpедшествовать дpугому.
 
Если функция возвpащает положительное значение, втоpой элемент (заданный паpаметpом lParam2) должен пpедшествовать пеpвому. Если оба pавны, тогда функция должна возвpатить ноль.

Всего записей: 2685 | Зарегистр. 02-11-2007 | Отправлено: 08:51 17-12-2007 | Исправлено: DumnedAspid, 08:55 17-12-2007
MrGalaxy



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

Цитата:
А если тебе нужно отрубать кнопку выключения например в то время, пока запущен твой перехватчик, то наверное, грамотнее будет, если ты сделаешь как раз отключение реакции на нажатие этой кнопки, чтобы автоматом в винде ставилось действие по нажатию кнопок сна\выключения питания и т.д. Это будет грамотнее с той точки зрения, что вдруг, у кого-нить все-таки коды отличаются?

Ничего не понимаю... Даже если делать отключение реакции на эти клавиши, то всё-равно их код надо знать. Или Вы что-то другое подразумевали?

Всего записей: 1868 | Зарегистр. 11-01-2007 | Отправлено: 17:43 17-12-2007
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь имеет опыт работы с Virtual Treeview component written by Mike Lischke? Не соображу как сделать типа этого:
+ Level_0
-----+Level_1
       ------Level_2: col1    col2    col3
       ------Level_2: col1    col2    col3
               ....................................
       ------Level_2: col1    col2    col3
+ Level_0
-----+Level_1
       ------Level_2: col1    col2    col3
       ------Level_2: col1    col2    col3
               ....................................
       ------Level_2: col1    col2    col3
 
Т.е. Level_0 и Level_1 - это просто папки, кол-во которых заранее известно и статично, а сами данные должны находится на Level_2 в нескольких столбцах.
Как сие сделать?

Всего записей: 3717 | Зарегистр. 19-04-2005 | Отправлено: 08:36 19-12-2007
Chukotka

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

Цитата:
Т.е. Level_0 и Level_1 - это просто папки, кол-во которых заранее известно и статично, а сами данные должны находится на Level_2 в нескольких столбцах.  
Как сие сделать?

Не очень понятно - сделать что? Если отрисовать, то формируешь столбцы в дизайн или рантайме, потом основной метод - GetText, в нем определяешь, что будет показываться в ячейке:
 
    P := vtDummy.GetNodeData(Node);
    if P = nil then
    begin
        CellText := ' ';
        exit;
    end;
    case Column of
        0: CellText := ... то что тебе надо;
 
 
P : определяемая тобой структура данных.
 
При желании можно использовать BeforeCellPaint, PaintText для наведения красивостей при отрисовке.
А вообще все это хорошо описано в демках с сайта soft-gems.

Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 17:21 19-12-2007
BugDigger



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем.
Мне нужен jpeg.pas из RAD2007, чтобы исправить в нем глюк при работе в фоновом потоке. Уже нашел эту ссылку (спасибо vladk1973)
_http://redacid.org.ua/ftp/media1/all_soft/pc/develop/delphi_7/info/extras/jpeg/jpeg.pas
но она от D7. Кто-нибудь может подсказать, изменился ли этот файл с тех пор или он тот же самый ?
 
Насчет самого глюка:
Есть
procedure TJPEGImage.Draw(ACanvas: TCanvas; const Rect: TRect);
begin
    ACanvas.StretchDraw(Rect, Bitmap);
end;
Приватный внутренний bmp не лочится, в результате иногда чернота вместо изображения.
 
Надо
procedure TJPEGImage.Draw(ACanvas: TCanvas; const Rect: TRect);
begin
  Bitmap.Canvas.Lock;
  try                            
    ACanvas.StretchDraw(Rect, Bitmap);
  finally
    Bitmap.Canvas.Unlock;
  end;
end;

Всего записей: 176 | Зарегистр. 14-06-2007 | Отправлено: 07:38 20-12-2007
Rudia



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BugDigger
http://qc.codegear.com/wc/qcmain.aspx?d=55871
Жди, может поправят)

Всего записей: 324 | Зарегистр. 13-09-2006 | Отправлено: 10:34 20-12-2007
BugDigger



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

Цитата:
Жди, может поправят

Ну дык это до бесконечности можно ждать. А глюк-то он сегодня происходит.
Так всё же, есть ли у кого-нибудь версия от 2007? Или таки этот файл остался тем же со времен D7 ?

Всего записей: 176 | Зарегистр. 14-06-2007 | Отправлено: 10:41 20-12-2007
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Chukotka
Спасибо.. это именно то, что нужно:
P := vtDummy.GetNodeData(Node);  
if P = nil then ...  

Всего записей: 3717 | Зарегистр. 19-04-2005 | Отправлено: 11:12 20-12-2007
Straiker X

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

Всего записей: 1 | Зарегистр. 23-09-2007 | Отправлено: 17:38 20-12-2007 | Исправлено: Straiker X, 15:45 21-12-2007
diodio



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите, как узнать что какой либо файл, например dbf, не занят каким-либо пользователем или процессом?

Всего записей: 111 | Зарегистр. 26-12-2006 | Отправлено: 22:58 20-12-2007
greenpc

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
diodio
если используется другим приложением

Код:
  try
    F := TFileStream.Create(Origin, fmOpenReadWrite or fmShareExclusive);
    try
      Result := true;
    finally
      F.Free;
    end;
  except
    Result := false;
  end;  

 
или
 

Код:
var
  HFileRes: HFILE;
begin
  Result := false;
  if not FileExists(fName) then exit;
  HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE, 0, nil,
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  Result := (HFileRes = INVALID_HANDLE_VALUE);
  if not Result then CloseHandle(HFileRes);
 


Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 07:17 21-12-2007 | Исправлено: greenpc, 07:20 21-12-2007
diodio



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

Всего записей: 111 | Зарегистр. 26-12-2006 | Отправлено: 11:00 21-12-2007
VaXoID2



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую знатоки, нужно реализовать хранение интервалов времени, и очень желательно это делать визуально! Что-то вроде этого http://suchov.narod.ru/pict/muxa1.gif

Всего записей: 13 | Зарегистр. 06-10-2005 | Отправлено: 14:12 21-12-2007
vserd

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

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 14:57 21-12-2007
Chuvakstepan



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите как отобразить информацию о загруженности процессора и оперативки в Label ?

Всего записей: 202 | Зарегистр. 29-01-2007 | Отправлено: 18:10 23-12-2007
ymg2000



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

Всего записей: 2391 | Зарегистр. 24-08-2007 | Отправлено: 20:55 23-12-2007
Maran



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Чонто не могу сделать прогресс бар для idftp если создаю его в коде  
unit ftp;
uses ...;
var
clFtp:Tidftp;
procedure clFTPWork(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
procedure clFTPWorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Integer);
implementation
 
uses UnitSetup, UnitMain;
****
clftp:=tidftp.Create();
.....
procedure clFTPWork(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Integer);
begin
FormMain.ProgressBar1.Position:= AWorkCount;
FormMain.ProgressBar1.Refresh;
Application.ProcessMessages;
end;
 
procedure clFTPWorkBegin(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCountMax: Integer);
begin
FormMain.ProgressBar1.Position:=0;
FormMain.ProgressBar1.Max:=AWorkCountMax;
end;
 
как процедуры к событиям прописать?
как ваще правильно энто делать в таком случае?

Всего записей: 11 | Зарегистр. 28-04-2006 | Отправлено: 10:34 24-12-2007 | Исправлено: Maran, 15:21 24-12-2007
   

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