![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть одна форма в bpl пакете, открытая как Showmodal, в ней код передачи сообщения парент-форме, которая её вызывала:
Код:
procedure TFAddBranchCompany.AddButtonClick(Sender: TObject); var txtmsg:string; begin ... Self.Close; SendMessage(ParentHandle, MY_MESSAGE, 0, DWORD(PChar(txtmsg))); end; Парент-форма тоже является пакетом bpl и тоже была открыта как Showmodal из другой формы, в ней код приёма сообщения: Код:
procedure TFBranchAndLocation.MessageReceiver(var msg: TMessage); var txtmsg: PChar; InputPars:TStringList; begin txtmsg := PChar(msg.lParam); msg.Result := 1; BranchNameEdit.Text:=txtmsg; InputPars:=TStringList.Create(); StrBreakApart(txtmsg, '<BR>', InputPars); BranchNameEdit.Text:=txtmsg; try BranchNameEdit.Text:=InputPars[0]; BranchCityEdit.Text:=InputPars[1]; except end; InputPars.Free(); end; Процедура преобразования строки в StringList расположена в пакете DataModule.bpl Код:
procedure StrBreakApart(const S, Delimeter: string; Parts: TStrings); var CurPos: integer; CurStr: string; begin Parts.clear; Parts.BeginUpdate(); try CurStr := S; repeat CurPos := Pos(Delimeter, CurStr); if (CurPos > 0) then begin Parts.Add(Copy(CurStr, 1, Pred(CurPos))); CurStr := Copy(CurStr, CurPos + Length(Delimeter), Length(CurStr) - CurPos - Length(Delimeter) + 1); end else Parts.Add(CurStr); until CurPos = 0; finally Parts.EndUpdate(); end; end; Смысл в том, что присвоение значения в поле на форме работает только до вызова этой процедуры. Строчка кода 9 BranchNameEdit.Text:=txtmsg выполняется а строчка кода 13 уже не работает и пишет в поле пустоту, подскажитие как решить эту проблему?!!! И почему-то подчинённая форма, отправляющая сообщение не закрывается перед отправкой сообщения, хотя в коде написано закрыть её перед отправкой: Код:
Self.Close; SendMessage(ParentHandle, MY_MESSAGE, 0, DWORD(PChar(txtmsg))); Последний раз редактировалось sorockinalex, 07.09.2012 в 10:01. |