OK, alles wär vielleicht ein wenig lang ...
ich poste mal die Teile die ich für diese Prozedur erstellt/geändert hab:
Code:
interface
...
uses
...
type
...
procedure MeinKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
implementation
...
procedure TForm1.Server1PrivMsg(Sender: TComponent; Nick, Msg: String);
var NewTab : TTabSheet;
NewChat : TListView;
NewEdit : TEdit;
Item : TListItem;
begin
NewTab := TTabSheet.Create(Form1.PageControl3);
NewTab.Visible := True;
NewTab.Caption := Nick;
NewTab.PageControl := Form1.PageControl3;
Form1.PageControl3.ActivePage := NewTab;
NewEdit := TEdit.Create(NewTab);
NewChat := TListView.Create(NewTab);
TWinControl(NewEdit).parent := NewTab;
TWinControl(NewChat).parent := NewTab;
NewEdit.Align := AlBottom;
NewChat.Align := alClient;
NewChat.ViewStyle := vsReport;
NewChat.ShowColumnHeaders := True;
NewChat.Columns.Add;
NewChat.Column[0].Caption := 'Time';
NewChat.Columns.Add;
NewChat.Column[1].Caption := 'User';
NewChat.Column[1].Width := 100;
NewChat.Columns.Add;
NewChat.Column[2].Caption := 'Message';
NewChat.Column[2].AutoSize := True;
Item:=NewChat.Items.Add;
Item.Caption := TimeToStr(Time);
Item.SubItems.Add('<'+ Nick +'>');
Item.SubItems.Add(Msg);
NewEdit.OnKeyDown:=MeinKeyDown;
end;
procedure MeinKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
var NewEdit : ???; //soll sich auf das oben erstellte TEdit beziehen
NewChat : ???; //soll sich auf das oben erstellte TListView beziehen
Nick : String;
Item : TListItem;
begin
If (Key = (VK_RETURN)) And Not (NewEdit.Text='') Then
begin
Nick := ??? wie krieg ich den String 'Nick' aus 'Server1PrivateMsg' jetzt hier hin ?
Server1.SendPrivMsg(Nick, Trim(NewEdit.Text));
Item:=NewChat.Items.Add;
Item.Caption := TimeToStr(Time);
Item.SubItems.Add('Ich ->');
Item.SubItems.Add(NewEdit.Text);}
end;
end;
Ich mach' das mit der dynamischen Erzeugung zum ersten Mal. Deswegen hab ich auch keine Ahnung wie ich die Variablen (NewEdit,NewChat,Nick) richtig deklariere, damit ich die in der OnKeyDown Prozedur verwenden kann (Server1.SendPrivMsg muss ja wissen wer 'Nick' ist)