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