Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

Все, кто че знает по 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]


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


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


 
Курдль ©   (2006-02-21 12:39) [41]


> Nick Denry ©   (19.02.06 20:13) [12]
> (из контекста, скорее всего имеются ввиду Windows Messages aka WM_)


Давно хотел спросить, что такое "aka"? Это так же круто, как "ИМХО"? Или даже круче, чем "vs"?


 
Alexey V.   (2006-02-21 12:43) [42]

Курдль ©   (21.02.06 12:39) [41]
Давно хотел спросить, что такое "aka"? Это так же круто, как "ИМХО"? Или даже круче, чем "vs"?

Also Known As


 
Курдль ©   (2006-02-21 12:45) [43]

А нам Русского не хватает для внятного изъяснения своих мыслей?..


 
Джо ©   (2006-02-21 12:49) [44]

> [41] Курдль ©   (21.02.06 12:39)
> Давно хотел спросить, что такое "aka"? Это так же круто,
> как "ИМХО"? Или даже круче, чем "vs"?

Пардон, а чем vs не угодило? Этому сокращению, наверное, лет 500, как минимум.


 
Курдль ©   (2006-02-21 12:51) [45]


> лет 500, как минимум.


Больше! Даже тот язык, на котором оно "сокращено" давно помер!


 
Джо ©   (2006-02-21 12:58) [46]

> [45] Курдль ©   (21.02.06 12:51)
> Больше! Даже тот язык, на котором оно "сокращено" давно
> помер!

Я не уверен, что в латыни было это сокращение, поэтому подстраховался. Уж в английском-то точно не менее 500 должно быть ;)


 
Nick Denry ©   (2006-02-21 14:52) [47]

[39] begin...end ©   (21.02.06 08:37)

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

ну и Result := 0; тоже не нужен, но вроде как правильней.

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

безусловно :)


 
MBo ©   (2006-02-21 14:54) [48]

Nick Denry ©

В чате меня поймай, если ссылка на книгу еще нужна


 
Nick Denry ©   (2006-02-21 14:58) [49]

[48] MBo ©   (21.02.06 14:54)

Кинь на мыло пожалуйста, вдруг не поймаю :)

Nick_Denry(dog)mail.ru


 
MBo ©   (2006-02-21 15:21) [50]

>Nick Denry ©   (21.02.06 14:58) [49]
>Кинь на мыло пожалуйста
ОК


 
delphi-oracle ©   (2006-02-21 18:59) [51]

Книга Рихтера очень полезна, но остался один вопрос и я вас больше мучать не буду:
*Как перевести строку в Longint?

И кстати, сопли вытирать я и сам умею. А вы может помогли бы подростающему поколению, представитель которого нашел Messages 3 недели назад, и объяснили все попонятнее.


 
Kerk ©   (2006-02-21 19:01) [52]

delphi-oracle ©   (21.02.06 18:59) [51]
*Как перевести строку в Longint?


StrToInt


 
delphi-oracle ©   (2006-02-21 19:05) [53]

Может, попонятнее объясню свой вопрос, а то меня часто стали не понимать.
у Рихтера я нашел: (LPARAM) "Caption" Но как ето будет выглядеть на Дельфи, не знаю.


 
Zeqfreed ©   (2006-02-21 19:06) [54]


> Как перевести строку в Longint?

А как ты себе это представляешь?
Давай для примера у тебя есть строка «Мне лень читать книжки» и есть ф-ция «переводящая строки в Longint». Что ты получишь в результате?


 
Zeqfreed ©   (2006-02-21 19:09) [55]


> Но как ето будет выглядеть на Дельфи

LParam(@"Caption[1])
Но без понимания это не поможет.


 
begin...end ©   (2006-02-21 19:12) [56]

LPARAM(PChar("Caption")). Так будет лучше.


 
Marser ©   (2006-02-21 19:43) [57]

> [46] Джо ©   (21.02.06 12:58)
> > [45] Курдль ©   (21.02.06 12:51)
> > Больше! Даже тот язык, на котором оно "сокращено" давно
>
> > помер!
>
> Я не уверен, что в латыни было это сокращение, поэтому подстраховался.
> Уж в английском-то точно не менее 500 должно быть ;)

Кажется, всё-таки из латыни. Откуда и etc(et cetera) i.e(id est)


 
delphi-oracle ©   (2006-02-22 08:26) [58]

Я когда вижу исходник, то все понимаю. Очень спасибо за код. Уже помог. Переводим в integer указатель на данные, а не сами данные. Еще раз спасибо. Теперь вот буду что-то пробовать с WParam

P.S. по моему et caetera, а что такое i.e - древнее сокращение архаического Internet Explorer :)


 
evvcom ©   (2006-02-22 11:31) [59]

Все не читал. Может уже советовали. Много примеров использования сообщений, как ни странно, в исходниках VCL.



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

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.66 MB
Время: 0.039 c
6-1133432922
xmlBeginner
2005-12-01 13:28
2006.03.19
парсим xml с помощью msxml_tlb.pas


15-1140693156
wicked
2006-02-23 14:12
2006.03.19
Хумор в программной реализации...


15-1140421884
Knight
2006-02-20 10:51
2006.03.19
Помогите выбрать мать...


15-1140510856
LordOfRock
2006-02-21 11:34
2006.03.19
Программа слежения за компом.


15-1140692490
XProger
2006-02-23 14:01
2006.03.19
TForm в 2 кб