Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Proceduren auf Form nicht verfügbar (https://www.delphipraxis.net/174460-proceduren-auf-form-nicht-verfuegbar.html)

Pandax3 23. Apr 2013 17:58

Proceduren auf Form nicht verfügbar
 
Hallo,
ich habe 2 Formen, welche ich beide von einer Hauptform aus mit Showmodal aufrufe.
Jetzt habe ich irgendwie das Problem, dass auf der 2. Form manche Proceduren nicht verfügbar sind, also auch nicht im Code vorgeschlagen werden, z.B. Proceduren wie: SetFocus oder BringToFront. Wenn ich diese trotzdem benutze bekomme ich den Fehler "Undeklarierter Bezeichner: setfocus"
Auf der anderen Form kann ich diese benutzen, jetzt weiß ich nicht woran das liegt >,< und hoffe das von euch jemand ne idee hat ;)
Danke schon mal

DeddyH 23. Apr 2013 18:04

AW: Proceduren auf Form nicht verfügbar
 
Wie wäre es denn mit etwas Code?

Pandax3 23. Apr 2013 18:31

AW: Proceduren auf Form nicht verfügbar
 
ah ich habe den Fehler gefunden >.<
Ich hatte eine Komponente, die so benannt war wie die Form, ich wusste gar nicht das dies überhaupt möglich ist :shock:
Habe die Komponente jetzt umbenannt und jetzt wird SetFocus erkannt :thumb:
Hat sich also erledigt ;)

Sir Rufo 23. Apr 2013 19:07

AW: Proceduren auf Form nicht verfügbar
 
Das kann eigentlich nur dann passieren, wenn du die Form mit der globalen Form Variable ansprichst, und das sollte man innerhalb der Form Methoden doch tunlichst vermeiden.

Alle Methoden der Form sind direkt so ansprechbar
Delphi-Quellcode:
SetFocus
, oder mit
Delphi-Quellcode:
Self.SetFocus
.
Delphi-Quellcode:
Form1.SetFocus
ist kontraproduktiv

Pandax3 23. Apr 2013 21:39

AW: Proceduren auf Form nicht verfügbar
 
Zitat:

Form1.SetFocus ist kontraproduktiv
wieso wenn ich fragen darf? ;D

Bummi 23. Apr 2013 22:53

AW: Proceduren auf Form nicht verfügbar
 
Weil es voraussetzt das die Instanz der Variablen Form1 zugewiesen wurde.
Genauso gut könnte aber eine Erzeugung in der Art erfolgen:
Delphi-Quellcode:

  With TForm1.Create(WelcherOwnerAuchImmer) do
    begin
        ....
    end;

//oder
  For i := 0 to 5 do
     MyList.Add(TForm1.Create(WelcherOwnerAuchImmer))
//oder

  Form1  := TForm1.Create(WelcherOwnerAuchImmer);  
  NaseBaer := TForm1.Create(WelcherOwnerAuchImmer); // hier wird dann auf Form1 bezug genommen nicht auf NaseBaer
  NaseBaer2 := TForm1.Create(WelcherOwnerAuchImmer);
Auch wenn Du es bisher nicht so benötigt haben solltest bist Du auf der sicheren Seite wenn Du den Bezug weglässt.

Dalai 23. Apr 2013 22:55

AW: Proceduren auf Form nicht verfügbar
 
Zitat:

Zitat von Pandax3 (Beitrag 1212606)
Zitat:

Form1.SetFocus ist kontraproduktiv
wieso wenn ich fragen darf? ;D

Weil das ein problemloses Umbenennen der Form behindert bzw. wenn man sie umbenennt, muss man dort nacharbeiten. Außerdem macht es eine Wiederverwendung des bereits geschriebenen Codes schwieriger/aufwendiger (Wiederverwendbarkeit ist ja ein wichtiger Punkt in der Softwareentwicklung).

MfG Dalai

Morphie 24. Apr 2013 07:35

AW: Proceduren auf Form nicht verfügbar
 
Zitat:

Zitat von Bummi (Beitrag 1212613)
Delphi-Quellcode:
  With TForm1.Create(WelcherOwnerAuchImmer) do

Wir haben doch gerade gelernt, dass With böse ist ;-)

Bummi 24. Apr 2013 08:59

AW: Proceduren auf Form nicht verfügbar
 
@Morphie das wissen wir doch schon lange ...:wink:

Pandax3 24. Apr 2013 13:33

AW: Proceduren auf Form nicht verfügbar
 
ok, danke ;D


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:23 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