AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 06:17

Parameter dieser Suchanfrage:

Suche in Thema: FormularArray den richtigen Create aufrufen! Wie?
Suche alle Beiträge, die von "himitsu" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 12 von insges. 12 Treffern
Suche benötigte 0.001s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 5. Feb 2014
    Es scheint in der RTTI keine Markierung/Info für "abstract" zu geben.
    function MethodIsImplemented_Mavarik(const AClass: TClass; const MethodName: string): Boolean;
    var
    M: TRttiMethod;
    begin
    M := TRttiContext.Create.GetType(AClass.ClassInfo).GetMethod(MethodName);
    //Result := Assigned(M) and SameText(AClass.ClassName, M.Parent.Name);
    Result := Assigned(M) and (AClass.ClassInfo =...
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 5. Feb 2014
    Auf den Namen solltest du besser nicht prüfen, sondern besser auf den Klassentyp. (Namen sind nicht eindeutig)

    Aber damit prüfst du nur, ob die Methode in dieser Klasse implementiert wurde, was aber auch auf die abstrakte Methode zutreffen würde, wenn sie direkt in dieser Klasse drin steht.
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 4. Feb 2014
    Nicht daß ich wüsste.

    Da aber vermutlich alle abstrakten Methoden auf die selbe Methode zeigen, könnte man das damit vergleichen.


    Man kann über die neue große RTTI gehen und genauer nachsehn was wie wo implementiert ist.

    Wenn du von beiden Typen eine Instanz hast, dann ganz billig so.
    if @Self.MyProc = @Vorfahr.MyProc then // Wobei man hier natürlich noch den Self-Pointer aus dem...
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 3. Feb 2014
    Da ja nur der Compiler prüft, kann er nur auf direkte Typen prüfen.
    Im laufenden Programm ist es ja nicht verboten ... es gibt halt nur eine Exception, wenn man diese Methoden aufrufen will.

    Der Code im TStream macht eigentlich nichts Anderes, als die Procedur-Adressen zu vergleichen.

    Für abstrakte Mtehoden leitet Delphi das auf eine Dummy-Methode um, wo die EAbstract-Exception dann...
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 3. Feb 2014
    Grundsätzlich meckert der Compilier, wenn man eine Instanz 'ner Klasse erstellen will, wo noch abstrakte Methoden drin sind.
    Demnach könnte man sagen, daß es garnicht nötig ist, das zu prüfen.

    Aber schau mal bei TStream in den Quellcode.
    Dort gibt es zwei Varianten für Seek (einmal 32 und nochmal für 64 Bit).

    Dort drin wird geschaut, ob die andere Variante überladen wurde, falls sie...
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 30. Jan 2014
    Hatte meine Antwort nochmal überdacht und etwas erweitert.

    Innerhalb der VCL gibt es da ja keine Probleme, da sich dort die Referenzen bei Parent, Owner, Controls und Components selber aufräumen.

    Hmmm, dann dürfte das ja nun im ARC "richtig" funktionieren?
    Solange noch eine externe Referenz existiert, düfte dann das Objekt eigentlich nicht mehr entsorgt werden. :gruebel:

    Bei deinem Code...
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 30. Jan 2014
    Ist das ein Sonderfall bei den TCustomForms
    oder werden alle TWinControl-Instanzen bei Sowas freigegeben? :shock:


    OK, wenn das ARC mir nun Objekte unterm Arsch wegklaut, warum dann nicht auch die VCL.



    Ich dachte bisher eigentlich immer nur, daß bei .Parent nur die Anordnung gilt, das aber nicht für die Freigabe genutzt wird.
    Jedenfalls gibt die VCL da selber nirgendwo etwas frei.
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 30. Jan 2014
    Es wird nur über den Owner (Besitzer) freigegeben ... der Parent ist nur für die Darstellung.

    Application.CreateForm setzt aber überall den Owner auf die Application, also löscht Application das dann, wenn die Anwendung beendet wird.
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 30. Jan 2014
    Es kann nur einen geben.
    Es darf immer nur eine Klasse, mit dem selben Namen, zur gleichen Zeit registriert sein.

    Nochmal was Gleichnamiges registrieren knallt demnach.
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 30. Jan 2014
    Da sind wir auch schon drauf reingefallen.

    Eine Unit war in der DPR für eine BPL eingebunden, aber da diese Unit sonst in keiner anderen Unit aufgerufen wurde und auch nichts "direkt" aus der Unit verwendet wurde...
    Es sollte da auch nur etwas registriert werden.
    - In einer EXE einkompilert funktioniert es.
    - In einer BPL einkompiliert wurde diese Unit nicht initialisiert. Das passerte...
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 30. Jan 2014
    TFormClass selber mußt du nicht unbedingt kennen.

    type
    TFormClass = class of TForm;
    Das ist ein Typ, in den keine Instantzen des Typs reinkommen (wie bei TForm, wo TForm.Create und Nachkommen rein kommt),
    sondern wo Typen reinkommen, welche z.B. davon abgeleitet sind.

    Das Wichtigste dabei ist nur, daß die gewünschte Methode (wie z.B. Create) im Basistyp virtual oder dynamic sein muß.
  • Forum: Programmieren allgemein

    AW: FormularArray den richtigen Create aufrufen! Wie?

      Delphi
      by himitsu, 30. Jan 2014
    var
    F : Array of TFormClass;
    begin
    F := TForm42;
    F := TForm43;
    F.Create(Self).Show;
    end;
    So?

    Nja, und wie du schon erkannt hasst:


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=himitsu&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=178830
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz