Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Внимание! Есть замечания модератора по теме: Отчищают испачканную одежду, а мемо "очищают"
Старый 20.10.2010, 04:08   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
Счастье Очистить memo функцией из dll

Здравствуйте.
Как можно сделать следующее на форме есть memo1
очистить ее функцией например
Код:
function ClMem();
begin
   memo1.text:='';
end;
Только данная функция должна храниться в dll и вызываться от туда.
Я полагаю dll нужно передать указатель на компонент в виде параметра функции и дальше как то с ним работать если не затруднит можно не большей примерчик этого.

Последний раз редактировалось mihali4; 20.10.2010 в 21:10.
Lokos вне форума Ответить с цитированием
Старый 20.10.2010, 04:19   #2
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Код:
procedure clMem(Sender: TObject);
begin
  (Sender as TMemo).Clear;
end;

Последний раз редактировалось ZuBy; 20.10.2010 в 04:56.
ZuBy вне форума Ответить с цитированием
Старый 20.10.2010, 04:36   #3
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

File->New->Other->DLL Wizard
Код:
library Project2;
uses
  SysUtils,
  Classes,
  StdCtrls;

{$R *.res}
     procedure clMem(Memo:TMemo);
     begin
          Memo.Clear;
     end;
     exports clMem;
begin
end.
File->New->Application
На форму ложите Memo1 и Button1
Процедуру TForm1.Button1Click создаете путем двойного клика мышкой по кнопке на форме
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  procedure clMem(Memo : TMemo); external 'Project2.dll';


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
     clMem(Memo1);
end;

end.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.

Последний раз редактировалось Sparkman; 20.10.2010 в 04:40.
Sparkman вне форума Ответить с цитированием
Старый 20.10.2010, 04:50   #4
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

спс за наглядность
Lokos вне форума Ответить с цитированием
Старый 20.10.2010, 05:11   #5
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

При попытке сделать следующее появляется ошибка конвертации
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:='192.168.0.2';
ClSend(TCPC,Image2,s,5478);
end;
Код dll
Код:
procedure ClSend(ITCPC:TIdTCPClient;Im:TImage;var Host:String;Port:Integer);
var
   mt:TmemoryStream;
   ft:TJpegImage;
begin
   ITCPC.Host:=Host;
   ITCPC.Port:=Port;
   ITCPC.Connect;
   ft:=TJpegImage.Create;
   mt:=TMemoryStream.Create;
   ft.Assign(Im.Picture.Graphic);
   ft.SaveToStream(mt);
   mt.Position:=0;
   ITCPC.IOHandler.Write(mt,mt.Size,true);
   mt.Free;
   ft.Free;
   ITCPC.Disconnect;
end;
ругает на конвертацию TJPEGImage to a TJPEGImage в чем проблема
Lokos вне форума Ответить с цитированием
Старый 20.10.2010, 13:01   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

uses Jpeg добавь
ZuBy вне форума Ответить с цитированием
Старый 20.10.2010, 14:21   #7
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
uses Jpeg добавь
добавлен без него не объявятся переменные типа TJpegImage
Lokos вне форума Ответить с цитированием
Старый 20.10.2010, 15:12   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,542
По умолчанию

Цитата:
ругает на конвертацию TJPEGImage to a TJPEGImage в чем проблема
EXE.TJPEGImage <> DLL.TJPEGImage
VCL in EXE <> VCL in DLL
параметром в процедрах DLL без проблем могут быть только числовые параметры и Pchar
уже для string требуется специальнsqое стандартное ухищрение (sharemem можете прочесть специально для этого вставленный комментарий в начале кода DLL).
:Для объектов (в т.ч. TJPEGImage) стандартных ухищрений не предусмотрено.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 20.10.2010, 15:22   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
:Для объектов (в т.ч. TJPEGImage) стандартных ухищрений не предусмотрено.
почему же, внешние пакеты есть, но таскать с собою много надо будет
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очистить файл С++ noob_11 Помощь студентам 1 13.05.2010 22:41
Проблемы с функцией и DLL Gott Помощь студентам 4 13.12.2009 20:21
Перевод из Memo по английскому в Memo по русскому Sanek777 Общие вопросы Delphi 5 26.09.2008 00:17
В Memo сделать так, чтобы текст был разного цвета, разноцветный memo Artem Компоненты Delphi 3 07.09.2007 13:40
ОЧистить SpeedButton ZhekON Компоненты Delphi 4 19.06.2007 12:28