Einzelnen Beitrag anzeigen

bezarre

Registriert seit: 30. Apr 2010
33 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Kontrolle ob ein Fenster bereits geöffnet ist

  Alt 13. Mai 2010, 17:49
Hallo,

ich habe ein kleines Problem, dass ich einfach nicht gelöst kriege.
Folgende Situation herscht:

Ein User kriegt eine Liste von Inhalten angezeigt. Auf jedes Item dieser Liste kann er klicken und es öffnet sich dann eine Detailansicht. Es soll aber nicht möglich sein, für z.B. Bild 1 die Detailansicht doppelt zu öffnen.

Delphi-Quellcode:


procedure TForm1.ListView1DblClick(Sender: TObject);
var
detail: TForm3;
begin
  if Assigned(ListView1.Selected) then
  begin
    if (user_id <> '0') then
     begin
        detail := TForm3.Create(self);
        detail.load(ListView1.ItemIndex);
        detail.Show;
     end;
  end;
end;
Wie finde ich jetzt heraus, ob der User schon eine Detailsansicht mit dem jeweiligen ItemIndex geöffnet hat? Ich habe auch scohn folgendes probiert gehabt:
Ich habe ein globals Array definiert
Delphi-Quellcode:
var
   detail : Array [0..100000] of TForm3;
Und habe dann mit der gleichen Funktion wie oben (außer das dort keine lokale Variable definiert ist), das Ganze geöffnet.
Delphi-Quellcode:
procedure TForm1.ListView1DblClick(Sender: TObject);
begin
  if Assigned(ListView1.Selected) then
  begin
    if (user_id <> '0') then
     begin
        detail[ListView1.ItemIndex] := TForm3.Create(self);
        detail[ListView1.ItemIndex].load(ListView1.ItemIndex);
        detail[ListView1.ItemIndex].Show;
     end;
  end;
end;
Nun hatte ich mir hier gedacht, dass ich vielleicht irgendwie das Array kontrollieren könnte ob das jeweilige Feld belegt wurde, ich weiß aber nicht wie. Was mich hierbei aber am meisten stört, ist das ich auf ein beschränktes Array angewiesen bin.
SetLength hat hier leider nicht funktioniert, da sich die Liste regelmäßig updated und die Länge daher bei jedem Update beliebig verändert wird.

Ich hoffe sehr ihr könnt mir helfen und versteht mein Problem.

Gruß
Micha

PS Weiß jemand, wie es möglich ist, bei Windows 7 in der Startleiste, beim klicken auf das Icon Aktionen anzuzeigen?
Micha
  Mit Zitat antworten Zitat