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

Вниз

передать и принять несколько параметров   Найти похожие ветки 

 
Zalum   (2009-05-12 14:36) [0]

Удалено модератором
Примечание: Не устал ветки плодить?


 
Юрий Зотов ©   (2009-05-12 14:56) [1]

1. > как быть, если мне нужно передать несколько параметров

Можно так, как Вы делаете, но если передаются параметры разных типов, то возникнут сложности с их выделением. В этом случае можно упаковать все параметры в массив байт (формат: тип, длина, тело...), а размер и адрес массива передавать через WM_COPYDATA.

Тип - это число, например: 1 - Integer, 2 - Boolean, 3 - String и т.д.  

2. > как тогда уже принятые значения разбросать по разным переменным

Для массива байт - в цикле (while Position < Size):
- читаем тип, берем соответсвующую переменную;
- читаем длину (если тип не имеет фиксированную длину)
- читаем тело

Для строк - использовать комбинацию Pos + Copy + Delete, либо так:
StringList.Text := строка_с_разделителями_#13#10


 
Zalum   (2009-05-12 15:09) [2]

Нашел выход из ситуации, хотя может и коряво, но работает:

передаю параметры:
HForm := FindWindow(PChar("TMainForm"), 0);
    with ParamCmd do
    begin
      dwData := 0;
      cbdata := strlen(pchar(ParamStr(1)+#13+ParamStr(2)))+1;
      lpData := pchar(ParamStr(1)+#13+ParamStr(2) );
    end;
    SendMessage(HForm,WM_COPYDATA,application.Handle,Longint(@ParamCmd));


принимаю

procedure TMainForm.Getmessage(var msg: TWMCopyData);
var
stext:array[0..99] of Char;
begin
StrLCopy
(stext,Msg.CopyDataStruct.lpData,Msg.CopyDataStruct.cbData) ;
 for i:=0 to  Length(stext) do begin
   if isDelimiter(#13,stext,i) then
   begin
     a1:=Copy(stext,0,i-1);
     a2:= Copy(stext,i+1,Length(stext));
   end;
 end;
 ShowMessage("первый:"+a1+"второй:"+a2);

end;



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

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

Наверх




Память: 0.47 MB
Время: 0.007 c
3-1248425517
Анна
2009-07-24 12:51
2010.12.05
импорт данных из MSSQL2000 в MSSQL2005


15-1282842079
alien1769
2010-08-26 21:01
2010.12.05
Радостное событие


6-1210699123
San1712
2008-05-13 21:18
2010.12.05
Какие есть функции в Windows Xp для управления раб столом ?


15-1282908527
dr_creigan
2010-08-27 15:28
2010.12.05
Bluetooth в Ubuntu 10.04


15-1282940982
Юрий
2010-08-28 00:29
2010.12.05
С днем рождения ! 28 августа 2010 суббота