Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - form reihenfolge ändern


ultraz06 - So 22.02.09 13:11
Titel: form reihenfolge ändern
hi
wie kann ich meine form2 vor der eigentlichen form1 zeigen?
also beim programmstart soll erst form2 und ber button klick dann form1.show aktiviert werden.
mein zweiters problem liegt in der unit übertragung.
also ich möchte das form1 das tut was in der unit3 steht, wie kann ich das aktivieren?
also per button auf der form1 soll dann die unit3 wiedergegeben werden, nur weiß ich nicht wie.


Robert.Wachtel - So 22.02.09 14:16

user profile iconultraz06 hat folgendes geschrieben Zum zitierten Posting springen:
[...] wie kann ich meine form2 vor der eigentlichen form1 zeigen?
also beim programmstart soll erst form2 und ber button klick dann form1.show aktiviert werden. [...]

Die Reihenfolge der Erstellung der Forms bei Programmstart kannst Du in den Projektoptionen resp. im Projektquelltext beeinflussen. Die dort erste Form ist gleichzeitig die Mainform des Projekts (siehe auch VCL-Quelltext von Application.CreateForm()).

Zitat:
mein zweiters problem liegt in der unit übertragung.

Was soll Unit-Übertragung sein?

Zitat:
also ich möchte das form1 das tut was in der unit3 steht, wie kann ich das aktivieren?
also per button auf der form1 soll dann die unit3 wiedergegeben werden, nur weiß ich nicht wie.

Meine Kristallkugel ist leider gerade defekt.

Wenn Du damit meinst, dass Du eine in unit3 deklarierte Prozedur aufrufen willst, musst Du diese Unit (unit3) Deiner use-Klausel hinzufügen. Dann kannst Du in unit3 enthaltene Prozeduren ganz normal über ihren Namen aufrufen.

Ist in unit3 eine Klassendefinition, musst Du die entsprechende Klasse natürlich erst instanziieren.

btw: Du wirst es Dir selber danken, wenn Du Deinen Forms, Komponenten und Units aussagekräftigere Bezeichner gibst...


BenBE - So 22.02.09 14:18

1. In Projekt --> Optionen die Erstellungsreihenfolge der Formulare konfigurieren

Ansonsten schließ ich mich meinem Vorredner an.


Robert.Wachtel - So 22.02.09 14:19

user profile iconBenBE hat folgendes geschrieben Zum zitierten Posting springen:
1. In Projekt --> Optionen die Erstellungsreihenfolge der Formulare konfigurieren

Ansonsten schließ ich mich meinem Vorredner an.

Wieso "ansonsten"? Das habe ich doch geschrieben...


ultraz06 - So 22.02.09 14:36


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm3.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: unit1;
end;
end;

so will ich das machen, also wenn ich auf den ersten radiobutton drücke, sollen die proceduren der unit1 getätigt werden.


BenBE - So 22.02.09 14:38

Du musst schon sagen, welche Prozeduren aus Unit1 du alles ausgeführt haben willst.


Robert.Wachtel - So 22.02.09 14:40

Eine Unit kann man nicht ausführen. Nur einzelne Prozeduren der Unit.


ultraz06 - So 22.02.09 14:50

na ich wollte eig die kompletten proceduren aus der unit übernehmen


Robert.Wachtel - So 22.02.09 14:53

user profile iconultraz06 hat folgendes geschrieben Zum zitierten Posting springen:
na ich wollte eig die kompletten proceduren aus der unit übernehmen

Dann bleibt Dir nichts anderes übrig, als die einzeln in der gewünschten Reihenfolge aufzurufen.


ultraz06 - So 22.02.09 14:58


Delphi-Quelltext
1:
2:
3:
4:
procedure TForm3.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: Form1.FormActivate    ;

das geht aber nicht
nicht genügend wirkende parameter


Robert.Wachtel - So 22.02.09 15:03

user profile iconultraz06 hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
4:
procedure TForm3.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: Form1.FormActivate    ;

das geht aber nicht
nicht genügend wirkende parameter

Mal ganz abgesehen davon, dass Du jetzt nicht eine in einer Unit deklarierte Prozedur, sondern eine Methode eines Objekts einer in einer Unit deklarierten Klasse aufrufen möchtest, musst Du Prozeduren und Methoden natürlich immer entsprechend ihrer Signatur (Deklaration) aufrufen. Das heisst, dass Du natürlich die Parameter mitgeben musst, die die entsprechende Prozedur resp. Methode erwartet.

Hast Du mal darüber nachgedacht, Dich nochmal eingehend mit Grundlagenliteratur zu beschäftigen?

Übrigens: FormActivate willst Du sowieso nicht verwenden.


BenBE - So 22.02.09 15:08

Vom Meister persönlich [http://www.delphi-forum.de/viewtopic.php?p=474452#474452]:
Psssst: Crashkurs [http://www.christian-stelzmann.de/index_tutorials_crashkurs.html], Crashkurs Reloaded [http://www.christian-stelzmann.de/index_tutorials_crashkurs_reloaded.html]