Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];

Вниз

Все, кто че знает по Messages, поделитесь   Найти похожие ветки 

 
delphi-oracle ©   (2006-02-19 08:18) [0]

Или подскажите статью на даную тему.


 
unknown ©   (2006-02-19 10:48) [1]

Message
Сообщение - в информатике - упорядоченная последовательность символов, предназначенная для передачи. Сообщение состоит:
- из тела, содержащего передаваемые данные; и
- из заголовка, в который помещаются сведения, необходимые для передачи.

(c) http://www.glossary.ru/cgi-bin/gl_sch2.cgi?RRuuh$lto9


 
Ega23 ©   (2006-02-19 10:55) [2]

LParam и WParam


 
jack128 ©   (2006-02-19 11:26) [3]

а я еще умное слово Dispatch  знаю :-)


 
pasha_golub ©   (2006-02-19 13:51) [4]

SendMessage, PostMessage


 
Ega23 ©   (2006-02-19 13:54) [5]


> SendMessage, PostMessage


Фи, Паша!
Это же тривиально!
:-))))


 
delphi-oracle ©   (2006-02-19 18:30) [6]

Прошу не отдельные слова, а полные предложения, желательно с исходниками.


 
TUser ©   (2006-02-19 18:34) [7]

> Прошу не отдельные слова, а полные предложения

Изволь
Слова LParam, WParam, Dispatch, SendMessage и PostMessage имеют непосредственное отношение к заявленной в топике теме.


 
delphi-oracle ©   (2006-02-19 18:55) [8]

Да, но простите, летературы по теме нет. Поетому как юзать ети слова еще надо объяснить...


 
TUser ©   (2006-02-19 18:56) [9]

Goolge, Yandex

А литература есть - ищи учебники по WinAPI.


 
Джо ©   (2006-02-19 19:48) [10]

>
> [8] delphi-oracle ©   (19.02.06 18:55)
> Да, но простите, летературы по теме нет. Поетому как юзать
> ети слова еще надо объяснить...

Эти слова (с объяснениями) имеются в Справке, поставляемой с Делфи.


 
Palladin ©   (2006-02-19 19:50) [11]


> delphi-oracle ©

полное преложение с исходником

Procedure Messages(Const S:String);
Begin
ShowMessage(S);
End;

или тебе кажется что это как то не связанно с вопросом?


 
Nick Denry ©   (2006-02-19 20:13) [12]

Народ, хватит издеваться над человеком.

Или попросите объяснится, уточнить что имнно он имел ввиду (из контекста, скорее всего имеются ввиду Windows Messages aka WM_) и процесс обработки и все что с ними связанно или не издевайтесь. Сами тоже с 0 начинали когда-то.

применительно к [11]


 
Джо ©   (2006-02-19 20:15) [13]

Nick Denry ©  
> Windows Messages aka WM_)

А, к примеру, EM_* не имеют отношения к "Windows Messages"?


 
API   (2006-02-19 20:38) [14]

Nick Denry
из контекста, скорее всего имеются ввиду Windows Messages


Вы смогли усмотреть контекст в его вопросе?
Где он, этот контекст, не в "Все, кто че знает", случаем?


 
Nick Denry ©   (2006-02-19 20:41) [15]

[13] Джо ©   (19.02.06 20:15)

Что ж видимо я тоже не ясно выражаюсь :)

К примеру, имеют. В широком смысле. В узком, EM_ являются сообщениями управления различными типами полей ввода, но не как уж не сообщениями управления окна (на английском это звучит как "Windows").

И, не согласитесь ли Вы, что в процессе обработки сообщений, в простейших приложениях (пустое окно) (что крайне важно для новичка), первостепенную важность имеют всё же сообщения WM_ и ни как уж не EM_?

Я ясно надеюсь теперь выразился , или будем все префиксы сообщений перечислять?


 
Джо ©   (2006-02-19 20:43) [16]

> [15] Nick Denry ©   (19.02.06 20:41)

Поля ввода это тоже окна, или, выражаясь по-английски "Windows" :)
А, скажем, 1 (константа) — это "сообщение"?


 
Nick Denry ©   (2006-02-19 20:54) [17]

[14] API   (19.02.06 20:38)

Слова " скорее всего" (лексичекое значение: предполагается один из возможных вариантов) и "попросите объяснится" ни о чем не говорят?

Может хватит предергивать?

[16] Джо ©   (19.02.06 20:43)


Поля ввода это тоже окна, или, выражаясь по-английски "Windows" :)


В широком смысле. :)
Так же в широком смысле любой контрол  - "выражаясь по-английски" (с)  Windows.

Т.е. каждая селедка, конечно же, рыба, но не каждая рыба - селедка.
Возвращаясь к предыдущему вопросу, не для всех "английских" Windows подходят собщения EM_, но для всех - WM_ :)

А, скажем, 1 (константа) — это "сообщение"? вопрос незнания? :)))

Я понимаю, что все вокруг умные, только вот объяснить толком никто не может. Или не хочет. Зато поиздеваться,  блистая - это завсегда пожалуйста. Считаю отвратительным.


 
Джо ©   (2006-02-19 20:58) [18]

[17] Nick Denry ©   (19.02.06 20:54)
> Я понимаю, что все вокруг умные, только вот объяснить толком
> никто не может. Или не хочет. Зато поиздеваться,  блистая
> - это завсегда пожалуйста. Считаю отвратительным

Так ведь никто и не мешает — объясняй, пожалуйста :) А не советуй другим что-то делать или не делать...


 
Nick Denry ©   (2006-02-19 21:13) [19]

[18] Джо ©   (19.02.06 20:58)

Я не объяснял, и не собираюсь. :)

И уж тем более не советую.

Просто прошу не издеваться. Ибо не хорошо (т.е. не прилично). И должно быть стыдно. Наверное.


 
Eraser ©   (2006-02-19 21:15) [20]


> delphi-oracle ©   (19.02.06 08:18)

http://www.podgoretsky.com/ftp/Docs/Classics/Richter/richter4ru.zip (2.2 MB)


 
delphi-oracle ©   (2006-02-20 20:01) [21]

!!!!!!!!!!
Я не понимаю, как ето вас угораздило писать такие умные вещи, но вы мне так и не объяснили. Все вы "умные".
!!!!!!!!!!
Объяснения.
Я имел в виду те Messages, которые называются Windows Messages, посылаются postmessage и sendmessage и
описываются в одноименном файле .pas.
Главные вопросы:
  -Как получать данные через messages
  -Как посылать строки.
  -Какую литературу можно достать по данной теме.
Джо, издеваться действительно неприлично. И с етикой у тебя не все в порядке
Пурги мне не надо. Поболтать вы тоже можете не здесь.


 
Virgo_Style ©   (2006-02-20 20:39) [22]

- см. message (directive) или message methods
- WM_CopyData
- жуткую тучу, Рихтера, MSDN, Windows SDK - навскидку.


 
Nick Denry ©   (2006-02-20 22:50) [23]

[21] delphi-oracle ©   (20.02.06 20:01)

Сударь, не надо резких выражений, и читайте внимательно.
При чем здесь Джо (с)?

Здесь не очень всматриваются в возраст человека и в то, как с ним в таком озрасте можно разговаривать.

По теме ветки.

Мое неправильное ИМХО ;) (просьба пинать за неточности :)

Основны средством взаимодействия операционной системы Windows и пользователя является оконный графический интерфейс.
Базовой единицей такого интерфейса является окно, которое может служить, в свою очередь "платформой" для создания других элементов пользовательского интерфейса. Для управления поведением окна ОС Windows использует механизм, называемый оконными сообщениями.

Для того, чтобы создать простейшее окно в ОС Windows необходимо выполнить следующий ряд действий.

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

2: Создать специальную функцию для обработки происходящих в системе "событий" и событий для нашего окна (Создать главную оконную функцию, для обработки сообщений Windows).

3: Непосредственно создать и отобразить окно.

4: Запустить цикл приема сообщений.


 
Nick Denry ©   (2006-02-20 22:52) [24]

{Теперь пошагово.

Для начала создай пустой *.dpr файл. (например новое консольное приложение + Ctrl+A + Ctrl+С)

Все основное, что должно быть в программе

*Начало*}


program Project1;

uses
 Windows,
 Messages; //Минимальный набор модулей для создания полноценного окна.

const
    MainWndClassName = "TestWndClassName"; //Уникальный идентификатор класса окна.

var
  MainWnd : HWND; {Уникальный численный идентификатор окна в системе (дескриптор), каждому дескриптору соответветствует уникальное единственное окно.}
  Mesg : TMsg; //Переменная для приема сообщений в цикле приема сообщений.

{Предварительное объявление функции обработки сообщений. Присутствует потому, что процедура регистрации класса окнаа расположенны перед процедурой обработки.

Параметра объясню позднее.}

function WndProc(wnd : HWND; msg : Integer; wParam : WPARAM; lParam : LPARAM) : LRESULT; stdcall; forward;


{1. Шаг первый. Регистрация класса окна.}


procedure RegisterMainWindowClass;
var
  MainWndClass : TWndClassEx; //Переменная, содержащая информацию о классе окна. (запись).
begin
//Заполнение переменной класса окна
 with MainWndClass do begin
   cbSize := SizeOf(TWndClassEx);  //Заполнение поля размера структуры
   style := CS_HREDRAW or CS_VREDRAW; //Стиль окна. определяет параметры отрисовки и многое другое. Смотреть WIn32SDK по слову WNDCLASSEX  
   lpfnWndProc := @WndProc; //Указатель на функцию обработки сообщений.
   cbClsExtra := 0; //Обязательные поля для заполнения. Пока прими как данное, должны быть 0;
   cbWndExtra := 0; //Обязательные поля для заполнения. Пока прими как данное, должны быть 0;
 end;
 MainWndClass.hInstance := HInstance; // Запись HInstance приложения в переменную класса окна.
 with MainWndClass do begin
   hIcon := LoadIcon(0, IDI_APPLICATION); //Загрузка значка окна
   hIconSm := hIcon; //Подробнее смотри в WIn32SDK по слову WNDCLASSEX  
   hCursor := LoadCursor(0, IDC_ARROW); //Загрузка курсора для окна
   hbrBackground := COLOR_BTNFACE + 1; //Кисть, с помощью которой будет отрисован фон окна.
   lpszMenuName := nil; //Имя реурса меню. Подробнее в WIn32SDK по слову WNDCLASSEX  
   lpszClassName := MainWndClassName; //Уникальный идентификатор класса окна.
 end;
 RegisterClassEx(MainWndClass); //Регистрация класса окна в системе.  результат этой функции желательно анализировать. Подробнее в Win32SDK по слову RegisterClassEx
 
end;


 
Nick Denry ©   (2006-02-20 22:55) [25]


{2. Шаг второй. Создание функции обработк сообщений.

Данная функция называется callback-функцией - это означает, что данную функцию вызывает не наше приложение, а операционная система Windows для уведомления нашего окна о происходящих с ним и с операционной системой событиями. Для того, что бы Windows знала, где в нашем приложении находится адрес этой нашей функции, мы записываем  указатель на нее в переменную типа TWNDCLassEx (поле  lpfnWndProc).  Кроме того, данная функция должна соответсвовать определенному формату, а именно:}

function WndProc (wnd : HWNd; msg : Integer; wParam : WPARAM; lParam : LPARAM) : LRESULT; stdcall;
{где WndProc - любое допустимое имя функции, не совпадающее с уже имеющимися в операционной системе.
Данные  параметр заполнятеся Windows!
Параметр Wnd является идентификатором окна, для которого поступает сообщение.
Параметр msg является уникальным численным идентификатором сообщения, поступающего окну.
Параметр wParam - типа WPARAM = DWORD - первый дополнительный параметр сообщения. Значение зависит от значения параметра msg.
Параметр lParam - типа WPARAM = DWORD - воторой дополнительный параметр сообщения. Значение зависит от значения параметра msg.
Возвращаемое значение - типа LRESULT.
Служебное слово stdcall определяет особый вид функции, который является стандартом вызова функций в Windows
подробнее читать "Assembler. Учебник для вузов" 2-е издание, Юров В.И. изд. Питер, 2001, например или иискать в интернете.}
begin
 //Множественный выбор из необходимых сообщений.
 case msg of
   WM_DESTROY:  //Собщение, посылаемое от Winbows окну, если оно будет разрушено ((например, закрыто пользователем)
     begin
        //Выполняем необходимые дейтвия. (например освобождение ресурсов и выход из программы)
        PostQuitMessage(0); //Возвращаем операционной системе код завершения нашего приложения.
        Result := 0; {Сообщения, которые должны быть обработаны в нашей функции должны возвращать определенное значение  (в Delphi требуется только для сообщений, возвращающих ненулевое значение.}
        Exit; //Выходим
     end;
 else Result := DefWindowProc(wnd, msg, wParam, lParam); {Остальные сообщения, которые мы не обрабатываем явно, отдаются для стандартной обработки операционной системе. Параметры те же, что и для WndProc.}
 end;
end;



{3. Шаг третий.  Создание окна.}
begin {тело программы}

//Cначала вызываем процедуру регистрации класса окна в системе.
RegisterMainWindowClass;
//Затем создаем окно, с помощью функции CreateWindowEx
  MainWnd := CreateWindowEx(0, //Расширенный тиль окна. подробности в Win32SDK   по слову CreateWindowEx
       MainWndClassName,  //Уникальный идентификатор класса окна. Указывает,что озданное окно будет таким, каким мы его определили в процедуре RegisterMainWindowClass;
       "Window Caption", // Заголовок окна
       WS_OVERLAPPEDWINDOW, {стиль окна. Данный флаг указывет, каким должно быть окно. В данном случае - это окно, которое имеет заголовок, кнопки свернуть, развернуть, закрыть, системное меню окна и может менять размер. Подробности в Win32SDK по слову CreateWindow}
       400, //Горизонтальное положение окна на экране
       300, //Вертикальное положение окна на экране
       400, //Ширина окна
       250, //Высота окна
       0,   //родительсоке окно (Дескриптор окна, которому будет принадлежать данное. 0 - окно принадлежит рабочему столу.)
       0,   //дескриптор главного меню окна, если есть
       HInstance, //HInstance приложения
       nil); //Подробности в win32SDK по слову CreateWindowEx
       
ShowWindow(MainWnd, SW_SHOW); //Отображение окна на экране

{4. Шаг четвертый. Создание цикла приема сообщений.}

while GetMessage(Mesg,0,0,0) do begin //Функция Getmessage проверяет есть ли сообщения в очереди
TranslateMessage(Mesg); //затем пекреводит низкоуровневые сообщения о клавишах в символьные сообщения
DispatchMessage(Mesg); //Затем отправляет сообщение в процедуру обработки
end;



 
Nick Denry ©   (2006-02-20 22:57) [26]


{приложение работает следующи образом:
1. после запуска в теле программы у нас первой процедурой стоит процедура регистрации класса окна.
заполняется переменная типа  структуры TWndClassEx, в том числе поле с указателем на фукцию обработки сообщений.
затем эта информация регистрируется в системе.
         после регистрации в системе необходимо проверить результат, т.к. класс с таким именем уже может существовать в системе и Windows просто не сможет зарегистрировать его
2.  перед регистрацией класса в системе должна быть подготовлена функция обработки сообений ( она может идти и после, но тогда необходимо сделать предварительное объявление)
     эта функция имеет определенный формат.

3. далее непосредственно создается окно.

4. Запускается цикл обработки сообщений.

{дальнейший текст идет со мноественными условностями, и, возможно, неточностями.Кто сможет - поправте.

Во-первых, следует отметить, что  программа будет работать, пока работает этот цикл. Функция GetMessage в этом цикле просматривает очередь сообщений нашего приложения, извлекает из очереди информацию о сообщении и заполняет этой информацией структуру Mesg. Единственным условием, при котором данный цикл может завершиться (т.е. функция GetMessage вернет 0) является приход в очередь сообщения WM_QUIT . После заполнения структуры Mesg управление передается следующей в цикле функции TranslateMessage, параметром которой является переменная Mesg. TranslateMssage, в свою очередь, проверяет, не является ли сообщение Mesg сообщением от клавиатуры, и если это так то переводит данные сообщения из виртуально-кодовых в символьные. Далее управление передается функции DispatchMessage, которая отправляет информацию о сообщении в главную оконную функцию,  где мы уже можем произвести необходимые действия, в ответ на то или иное сообщение. После обработки сообщения в оконной функции результат обработки возвращается функции DispatсhMessage и  цикл повторяется сначала.

Функция GetMessage может извлекать, как  сообщения, предназначенные для окна, так и для процесса. Функция извлекает сообщения, которые лежат в пределах определенного диапазона величин сообщения, и не извлекает сообщения для окон, принадлежащих другим процессам.

Непосредственно функция обработки сообщений мы сравниваем является ли пришедшее сообщение нужным нам и если является - выполняем определенные действия.
Например,  при создании окна одним из главных сообщений является WM_CREATE, па при разрушении - WM_DESTROY.



 
Nick Denry ©   (2006-02-20 22:57) [27]


Если мы хотим, напрмер, обработать нажатие левой кнопки мыши в клиенсткой области нашего окна, то мы должны обработать сообщениеWM_LBUTTONDOWN.
функция  WndProc изменится следующим образом:}

(*
...
Uses Windows, Messages, SysUtils {добвим функцию  IntToStr};
...


function WndProc (wnd : HWNd; msg : Integer; wParam : WPARAM; lParam : LPARAM) : LRESULT; stdcall;
{где WndProc - любое допустимое имя функции, не совпадающее с уже имеющимися в операционной системе.
Данные  параметр заполнятеся Windows!
Параметр Wnd является идентификатором окна, для которого поступает сообщение.
Параметр msg является уникальным численным идентификатором сообщения, поступающего окну.
Параметр wParam - типа WPARAM = DWORD - первый дополнительный параметр сообщения. Значение зависит от значения параметра msg.
Параметр lParam - типа WPARAM = DWORD - воторой дополнительный параметр сообщения. Значение зависит от значения параметра msg.
Возвращаемое значение - типа LRESULT.
Служебное слово stdcall определяет особый вид функции, который является стандартом вызова функций в Windows
подробнее читать "Assembler. Учебник для вузов" 2-е издание, Юров В.И. изд. Питер, 2001, например или иискать в интернете.}
begin
 //Множественный выбор из необходимых сообщений.
 case msg of
   WM_DESTROY:  //Собщение, посылаемое от Winbows окну, если оно будет разрушено ((например, закрыто пользователем)
     begin
        //Выполняем необходимые дейтвия. (например освобождение ресурсов и выход из программы)
        PostQuitMessage(0); //Возвращаем операционной системе код завершения нашего приложения.
        Result := 0; {Сообщения, которые должны быть обработаны в нашей функции должны возвращать определенное значение  (в Delphi требуется только для сообщений, возвращающих ненулевое значение.}
        Exit; //Выходим
     end;
  WM_LBUTTONDOWN:        //Сообщение, посылаемое окну при нажатии левой кнопки мыши
                            begin
        //! на этом участке кода wParam и lParam содержат значения, связанные с сообщением WM_LBUTTONDOWN,
        //например lParam содержит координаты курсора мыши в оконных координатах
        //Положение курсора мыши.

                             X:=LOWORD(lParam);  //X - Младшее слово переменной lParam
                             Y:=HIWORD(lParam);  //Y - Старшее слово переменной lParam
                             MessageBox(wnd,
                             PChar("Текущая позиция курсора: x="+IntToStr(X)+" y="+IntToStr(Y)),
                             MainWndClassName,MB_OK); //Показываем необходмую информацию.
        //Так же обратите внимание, что мы не возвращаем Result := 0 явно.

                            end;
 else Result := DefWindowProc(wnd, msg, wParam, lParam); {Остальные сообщения, которые мы не обрабатываем явно, отдаются для стандартной обработки операционной системе. Параметры те же, что и для WndProc.}
 end;

end;
  *)
 
 


 
Nick Denry ©   (2006-02-20 22:59) [28]

 
{Для того, что бы эмулировать нажатие мыши, мы можем отправить сообщение окну, о том, что левая кнопка мыши якобы была нажата);
Используется функция SendMessage;
 Что бы эмулировать нажатие мыши после создания окна необходимо поместить в очередь сообщений Windows сообщение WM_LBUTTONDOWN с параметрами:
 ...
  ShowWindow(MainWnd, SW_SHOW); //Отображение окна на экране
  SendMessage(MainWnd, //Дескриптор окна, которому отправляется сообщение
      WM_LBUTTONDOWN, //Сообщение, которое необходимо отправить
      0, //параметр wParam значения не имеет.
                         MakeLParam(40,50)); // lParam состоит из координат курсора (по Х=50, по Y=50;)        
}

{вроде the}
end.



(c) Nick Denry.

не судите строго :)


 
Kerk ©   (2006-02-20 23:02) [29]


> Nick Denry

Оформи как статью, положим в кладовку ;)


 
NIck Denry ©   (2006-02-20 23:08) [30]

[29] Kerk ©   (20.02.06 23:02)

Сначала пусть за неточности распинают, а стаья есть - скорее всего порву книжку на уроки :)

Скоро время будет :)


 
delphi-oracle ©   (2006-02-20 23:46) [31]

Ник, спасибо, но я не гоняюсь за знаменитыми 524 б. Мне не надо делать окна на WinAPI.
Я хочу что-то типа
postmessage(hwnd,WM_CLOSE,0,0)
Я хочу знать, как изменять цвет чужого окна, зная хендл, как нажымать кнопки, узнавать PasswordChar Edit*а, выбирать чекбоксы...
Я хочу знать ВСЕ!!!


 
Nick Denry ©   (2006-02-20 23:56) [32]

Вообще-то это была моя статья "на данную тему" (с).

---
Джо (с) и остальной народ, примите мои публичные извинения :)


 
pasha_golub ©   (2006-02-21 00:10) [33]


> Ega23 ©   (19.02.06 13:54) [5]
>
>


Олегыч, я простой как 100 грам... ;0) Сала хочешь? :)


 
Piter ©   (2006-02-21 01:16) [34]

delphi-oracle ©   (19.02.06 18:55) [8]
Да, но простите, летературы по теме нет


простите, но вы глупость говорите... Уж по этой то теме литературы просто ПОЛНО


 
Джо ©   (2006-02-21 01:24) [35]

> [21] delphi-oracle ©   (20.02.06 20:01)
> Джо, издеваться действительно неприлично. И с етикой у тебя
> skipped

Не издевался. Если хочешь поговорить о моей этике, заводи отдельную тему.


 
unknown ©   (2006-02-21 01:42) [36]


> delphi-oracle ©

Вам видимо следует все-таки ознакомиться с этим:
http://www.ln.ua/~openxs/articles/smart-questions-ru.html


 
API   (2006-02-21 03:13) [37]

delphi-oracle ©
Я хочу знать ВСЕ!!!


Ну так и знай себе на здоровье!

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

Бери литературу - и изучай. Будут конкретные вопросы - приходи и спрашивай.

Лично я отвечу на любой твой вопрос, если он будет правильно сформулирован, и если увижу, что ты хоть что-то пытался сделать самостоятельно.

Это - форум, а не интеллектуальная телепатическая справочная система.

Ответь, ты читал то, что тебе написали? Скачивал предложенную литературу? Читал? Разбирался? Писал тестовые примеры? Пробывал что-то сделать своими руками?

Резюме: Программиста из тебя, при таком ламерском подходе - не получится. Смирись.


 
atruhin ©   (2006-02-21 05:40) [38]

По сабжу. Для автора я бы порекомендовал начать не с Рихтера, а с "Delphi 5 руководство разработчика" Тексейра, Печенко (не помню точно как фамилии пишутся). Будет гораздо полезнее. Книга была на сайте Анатолия Подгоретского.


 
begin...end ©   (2006-02-21 08:37) [39]

> Nick Denry ©   (20.02.06 22:55) [25]

> case msg of
>   WM_DESTROY:
>     begin
>       ...
>       Exit; //Выходим
>     end

А Exit зачем? Вроде как не на сях пишем.

> Nick Denry ©   (20.02.06 22:57) [26]

> Функция GetMessage может извлекать, как  сообщения, предназначенные
> для окна, так и для процесса.

Что такое "сообщения для процесса"?

> Функция ... не извлекает сообщения для
> окон, принадлежащих другим процессам.

Может, лучше про потоки?


 
Crash Coredump ©   (2006-02-21 11:55) [40]


> Я хочу знать ВСЕ!!!


Учи БСЭ наизусть



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.013 c
15-1141038470
ronyn
2006-02-27 14:07
2006.03.19
Как работают антивирусники?


1-1139516532
imm
2006-02-09 23:22
2006.03.19
$R- в созданном юните, непашет на уровне компиляции


6-1133512076
Ньюб111
2005-12-02 11:27
2006.03.19
Cookie


2-1141402179
Fenix
2006-03-03 19:09
2006.03.19
Редактирование в RichEdit


15-1140678678
antonn
2006-02-23 10:11
2006.03.19
Рашифровка ника





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский