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.