AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Suche nach einem Formtyp in einer ObjectListe von Forms

Suche nach einem Formtyp in einer ObjectListe von Forms

Ein Thema von bernhard_LA · begonnen am 6. Okt 2021 · letzter Beitrag vom 6. Okt 2021
Antwort Antwort
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.008 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Suche nach einem Formtyp in einer ObjectListe von Forms

  Alt 6. Okt 2021, 15:02
unsere App erzeugt diverse Forms zur Laufzeit, jedes Form wird in einer Liste abgelegt um später wieder darauf zugreifen zu können

funktionalercode geht wie z.B. folgt:


Delphi-Quellcode:
  
  AFormList: TObjectList;
  for i := 0 to AFormList.Count - 1 do
  begin
    ///
    /// check if correct Form type
    ///
    if (AFormList.Items[i] is TProjectIForm) then
        begin
        ...
        MySelectedForm := (AFormList.Items[i] as TProjectIForm);
        ....
        end;
ich benötige nun eine Funktion welche mir true/false zurück gibt je nachdem of ein
bestimmter Formtype in der Liste vorhanden ist


Delphi-Quellcode:
function TPForm.FormtypeExisits(anyForm: TObject): boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 0 to AFormList.Count - 1 do
  begin
    if (AFormList.Items[i] is anyForm) then
      Result := True;
  end;

end;

Problem
wie Übergebe ich einen Typen als Parameter an die Funktion FormtypeExisits ?

Geändert von bernhard_LA ( 6. Okt 2021 um 15:05 Uhr)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.620 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Suche nach einem Formtyp in einer ObjectListe von Forms

  Alt 6. Okt 2021, 15:21
Delphi-Quellcode:
type
  TFormClass = class of TForm;


function TForm1.formExists(form: TFormClass): Boolean;
begin
 for var i := 0 to fFormList.Count - 1 do
 begin
   result := false;
   if (AFormList[i] is form) then
   begin
     result := true;
     break;
   end;
 end;
end;
vielleicht so?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.005 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Suche nach einem Formtyp in einer ObjectListe von Forms

  Alt 6. Okt 2021, 15:23
Hallo,
da deine Forms ja idR von TForm abgeleitet sind,
wäre ClassName eine Möglichkeit der Unterscheidung.
Heiko
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.909 Beiträge
 
Delphi 7 Professional
 
#4

AW: Suche nach einem Formtyp in einer ObjectListe von Forms

  Alt 6. Okt 2021, 15:25
Funktioniert sowas:
Delphi-Quellcode:
function TPForm.FormtypeExisits(anyForm: TObject): boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 0 to AFormList.Count - 1 do
  begin
    if (AFormList.Items[i].ClassType = anyForm.ClassType) then
      Result := True;
  end;
end;
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.008 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Suche nach einem Formtyp in einer ObjectListe von Forms

  Alt 6. Okt 2021, 15:34
Danke, funktioniert
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.286 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Suche nach einem Formtyp in einer ObjectListe von Forms

  Alt 6. Okt 2021, 15:38
Spontan würde ich auch versuchen, eine Delphi-Referenz durchsuchenTFormClass zu übergeben und einfach mit dem is-Operator dagegen zu prüfen. In der Prüf-Unit müssen dann aber auch alle in Frage kommenden Klassen bekannt sein, d.h. die Uses-Klausel kann u.U. recht lang werden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
2.830 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#7

AW: Suche nach einem Formtyp in einer ObjectListe von Forms

  Alt 6. Okt 2021, 16:11
Spontan hätte ich hier ein TDictionary/TObjectDictionary<TFormClass, TForm> vorgeschlagen.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf