Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Form in DLL - langsam (https://www.delphipraxis.net/79447-form-dll-langsam.html)

minime 22. Okt 2006 21:29


Form in DLL - langsam
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz