Thema: Delphi Form in DLL - langsam

Einzelnen Beitrag anzeigen

minime

Registriert seit: 22. Okt 2006
1 Beiträge
 
#1

Form in DLL - langsam

  Alt 22. Okt 2006, 21:29
Jo hallo

ich hab neulich ein plugin für meinproggi geschrieben (chat plugin) und das beinhaltet auch
eine form (2 richedits, 1button )

ja eigentloch geht das auch hervorragend
ABER

wenn ich in die Richedits was eingeben will, dann erscheinen die Buchstaben extrem verzögert (oft nur 1 buchstabe/sek)
im gegensatz zu den Forms in meiner Hauptprogramm(exe) wo alles flüssig abläuft

hat jemand eine idee warum das sein könnte?

hier nochmal der sOUrCe

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    ToolBar1: TToolBar;
    RichEdit2: TRichEdit;
    procedure RichEdit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  SendData : procedure(pName,pText:pchar);

implementation

{$R *.dfm}

function GetUser:string;
var
  buffer : array[0..MAX_PATH] of Char;
  Size: DWORD;
begin
  Size := sizeof(buffer);
  GetUserName(buffer, size);
  SetString(Result, buffer, lstrlen(buffer));
end;

procedure SendText(Name,Text:string);
begin
  if @SendData <> nil then
    begin
      SendData(pchar(Name),pchar(Text));
    end;
end;

//===========================================
// DLL Export Functions
//===========================================
procedure StartChat(SendAddr:pointer);
begin
try
SendData := SendAddr;
Form1 := TForm1.Create(nil);
Form1.RichEdit1.ReadOnly := true;
finally
Form1.Show;
end;
end;

procedure GetChatText(pName,pText:pchar);
begin
Form1.RichEdit1.Lines.Add(string(pName)+':'+' '+string(pText));
Form1.Show;
end;

exports GetChatText,StartChat;
//===========================================

//=============== INTERFACE ================
procedure TForm1.RichEdit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if key = vk_f1 then
  begin
    SendText(GetUser,Form1.RichEdit2.Text);
    Form1.RichEdit2.Clear;
  end;
end;

end.
  Mit Zitat antworten Zitat