Einzelnen Beitrag anzeigen

Exciter

Registriert seit: 28. Nov 2002
13 Beiträge
 
#14
  Alt 2. Jan 2003, 18:40
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)
  Mit Zitat antworten Zitat