Einzelnen Beitrag anzeigen

fr0g

Registriert seit: 11. Dez 2006
28 Beiträge
 
#5

Re: Formblatt kopieren?

  Alt 4. Feb 2007, 15:53
Jetzt hab ich aber das nächste Problem!

Mein Programm soll so aufgebaut sein das sich ein Formblatt öffnet wenn eine Nachricht rein kommt und wenn ich Doppelklick auf ein Benutzer in einer ListBox mache.

Das sich mehrere Formblätter öffnen speziell auf jeden User habe ich folgendermaßen gelöst:
Delphi-Quellcode:
unit ustart;

interface

uses
  Windows, Messages, ...., uicmessage;


type
  TFicyou = class(TForm)
    procedure BenutzerlisteDblClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type FormList=record
     MsgBox:TFicMessageBox;
     end;

var
  Ficyou: TFicyou;
  maxcount:integer;
  form:array [1..255] of FormList;

implementation

uses uicuser;

{$R *.dfm}


procedure TFicyou.FormActivate(Sender: TObject);
VAR Owner:HWnd;
    i:integer;
begin
maxcount:=Benutzerliste.Items.Count;
for i:=0 to maxcount do begin
 form[i].MsgBox:=TFicMessageBox.Create(self);
 form[i].MsgBox.Name:='icY'+IntToStr(i); end;
end;

procedure TFicyou.BenutzerlisteDblClick(Sender: TObject);
VAR FormVaR:integer;
begin
eabsenderip.Text:='';
form[Benutzerliste.ItemIndex].MsgBox.Visible:=true;
end;

end.

Das ist auch alles gut und schön. Wenn ich jetzt aber in meiner Benutzerverwaltung ein weiteren Benutzer hinzufüge und den dann mit Doppelklick öffnen will kommt es immer zu irgendwelchen Fehlern (weil ja die neue Form für den nicht erstellt wird in Activation).

Deshalb wollte ich das er die Forms immer wieder generiert wenn es nötig ist. Nur sind die Namen ja dann doppelt und siehe da: wieder ein Fehler. Mir ist schon klar das er die Forms ja nicht zweimal machen kann. Deswegen wollte ich mal fragen wie ich es schaffe die Forms zu umgehen die bereits erstellt sind? Das er dann quasi nur ein zusätzlich erstellt.

Falls ihr euch fragt warum ich das noch in ein Record gehauen habe! Ich weiss es auch nicht . Ich wollte das ebend nur soviele Forms geöffnet werden wie benötigt werden. Ich könnte jetzt von vornerrein 255 Forms öffnen aber das ist ziemlich unschön. Also ich bin für jede Hilfe dankbar.

Hab auch überlegt bevor er eine Form neu erstellt zu gucken ob der Name schon vergeben is und er dann nur noch die Form auf machen muss statt zu erstellen. Aber dabei bin ich immer wieder auf irgendwelchen Zugriffsfehler gestoßen.

mfg fr0g
  Mit Zitat antworten Zitat