Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Savant

Старожил


Сообщения: 300
Благодарности: 6

Профиль | Сайт | Отправить PM | Цитировать


Ну нет ничего проще, чем заглянуть в папку .\vcl\source\ и хорошенько там покопаться. Итогом может стать например это:
Код: Выделить весь код
function GetLine(hwnd: Cardinal; Index: Integer): String;
// Получает строку под номером Index из контрола с Handle = hwnd
var
  Text: array[0..4095] of Char;
begin
  Word((@Text)^) := SizeOf(Text);
  SetString(Result, Text, SendMessage(hwnd, EM_GETLINE, Index, Longint(@Text)));
end;

procedure ReplaceLine(hwnd: Cardinal; Index: Integer; const S: String);
// Заменяет строку под номером Index в контроле hwnd на строку S
var
  SelStart: Integer;
begin
  SelStart := SendMessage(hwnd, EM_LINEINDEX, Index, 0);
  if SelStart >= 0 then begin
    SendMessage(hwnd, EM_SETSEL, SelStart, SelStart + SendMessage(hwnd, EM_LINELENGTH, SelStart, 0));
    SendMessage(hwnd, EM_REPLACESEL, 0, Longint(PChar(S)));
  end;
end;

procedure AddToLine(hwnd: Cardinal; Index: Integer; what: String);
// Добавляет к строке под номером Index строку what
begin
  ReplaceLine(hwnd, Index, GetLine(hwnd, Index) + what);
end;
>>Т.к. если послать сообщение классу STATIC...
Замечу, что TMemo относится к "классу" (точнее, типу) EDIT

Отправлено: 21:44, 19-08-2005 | #51