AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie 2 gleichrangige Forms erzeugen?!

Ein Thema von Christian.Ossi · begonnen am 22. Jan 2006 · letzter Beitrag vom 23. Jan 2006
Antwort Antwort
Seite 1 von 2  1 2      
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#1

Wie 2 gleichrangige Forms erzeugen?!

  Alt 22. Jan 2006, 19:07
Wie kann ich 2 Formulare erzeugen, die dann sozusagen beide gleichrangig sind:
Soll heißen, dass keins von beiden das andere überdecken soll - also man
z.B. mit den Maus durch klicken auf eins von beiden dieses als aktives
Formular hat und das andere dadurch inaktiv wird und umgekehrt.
Denn wenn man "normal" mit ShowModal ein Formular erzeugt, dann überdeckt dieses ja das vor-
hergehende.

Anwendungsbeispiel wäre, wenn ich ein Fenster habe aus dem ich ein kleines Tool,
wie einen MP3-Player starte und man dann dennoch auf das Fenster zugreifen kann,
aus dem man ihn gestartet hat, um z.B. ein weiteres Programm zu starten.
Weil das ja ungünstig ist, wenn ein MP3-Player alles andere überlagert?!?!


Danke schonmal!
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Wie 2 gleichrangige Forms erzeugen?!

  Alt 22. Jan 2006, 19:09
Delphi-Quellcode:
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Form2.Show;
  Application.Run;
end
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Wie 2 gleichrangige Forms erzeugen?!

  Alt 22. Jan 2006, 19:26
Mein Programm ist so aufgebaut:
Erst kommt eine Art Dialog (Form) zum Programmstart - dieses wird unsichtbar gemacht
und startet in einer DLL eine Prozedur.
diese Prozedur innerhalb der DLL erzeugt ein neues Programmfenster (also das eigentliche Hauptfenster?!?)
Und eben auf diesem Fenster befindet sich ein Button, um ein weiteres zu öffnen (eben das angesprochene MP3-Player-Beispiel)
Dies geschieht wieder durch einen Aufruf einer DLL Prozedur der nächsten DLL, die auch das nächste Form enthält (MP3-Player-Oberfläche)

Diese beiden (also nicht das ganz am anfang unsichtbar gemachte) gleichrangig sein.
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Wie 2 gleichrangige Forms erzeugen?!

  Alt 22. Jan 2006, 22:33
Also ich habe die beiden Forms nicht direkt hintereinander im Hauptprogramm,
sondern nacheinander aus dem jeweiligen Form heraus geöffnet!
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Benutzerbild von Mystic
Mystic

Registriert seit: 18. Okt 2003
Ort: Flerzheim
420 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Wie 2 gleichrangige Forms erzeugen?!

  Alt 23. Jan 2006, 00:27
Ich verstehe nicht ganz was du mit 'gleichrangig' meinst. Soll einfach nur das erste Formular (aus dem du das Zweite öffnest) immer noch zugreifbar sein? Dann nimm einfach Show statt ShowModal.
Jan Steffens
Der Fachwortgenerator - 100% Schwachsinn --- Der UPnP Router Manager - Kommentare erwünscht!
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#6

Re: Wie 2 gleichrangige Forms erzeugen?!

  Alt 23. Jan 2006, 16:34
ja, mit gleichrangig meine ich, dass alle erstellten Formulare immernoch zugreifbar sind.

Danke, ich probierst mal...


...also habs jetzt mal hier so eingegeben: (in der DLL)

Delphi-Quellcode:
Procedure OeffneDich; Export;
Var MMSF: TMMSF;
Begin
MMSF:=TMMSF.Create(Application);
Try
MMSF.Show;
Finally
MMSF.Release;
End;
End;
Doch wenn diese Prozedur aus dem Hauptprogramm raus aufgerufen wird, erscheint das Fenster nur für einen Bruchteil einer Sekunde und verschwindet sofort wieder?!?
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Metatron220

Registriert seit: 31. Okt 2004
33 Beiträge
 
#7

Re: Wie 2 gleichrangige Forms erzeugen?!

  Alt 23. Jan 2006, 16:55
Ich hab zwar nicht wirklich so viel Ahnung aber ich denke das liegt an dem MMSF.Release;
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Wie 2 gleichrangige Forms erzeugen?!

  Alt 23. Jan 2006, 17:02
Hey danke!

Ich hab jetzt einfach das ganze try...finaly weggelassen und einfach nur Show und fertig.


Ist nur, ich hab in der Schule kein Delphi gelernt - nur bisschen Turbo Pascal.
Wir haben zwar auf unseren Rechnern Delphi 2005 Professional aber die Lehrer können das nicht.
Jetzt machen wir grad in der 12/2 eine Projektarbeit und ich hab ja immer schonmal
zuhause - "lerning by doing" rumgespielt mit Delphi. Jetzt hab ich mir die C't 13/05 besorgt
und Delphi 2005, um dort mal den Lehrern zu zeigen, was da möglich ist.
Nur scheitert es manchmal bei mir an so einfachen Sachen
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Wie 2 gleichrangige Forms erzeugen?!

  Alt 23. Jan 2006, 18:46
Hi,

durch das weglassen des "Release" sollte Dein Programm jetzt zwar laufen, aber, jede Form die Du erzeugst wird erst wieder freigegeben wenn Du Dein Programm komplett beendest.

Das mit dem try finally ist 100% richtig wenn Du mit showmodal arbeitest, weil das Programm bei showmodal solange wartet bis das Formulat geschlossen wird. Deshalb schaffst Du es in Deiner Variante auch nicht "gleichwertige" Formulare zu erzeugen.

Wenn Du mit show arbeitest, wird die Form gleich angezeigt und weiter im Quelltext gearbeitet!
In Deinem Fall :

- Form erzeugen
- Form anzeigen
- Form wieder freigeben

Meiner Meinung nach solltest Du die erzeugten Formulare in einer zusätzlichen Liste speichern und selber wieder freigeben, ist einfach superer.

Gruß Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Christian.Ossi

Registriert seit: 23. Mai 2004
Ort: Greußen
91 Beiträge
 
Delphi 2006 Architect
 
#10

Re: Wie 2 gleichrangige Forms erzeugen?!

  Alt 23. Jan 2006, 19:18
Naja, ich hab jetzt in die OnClose jedes Formulars Release geschrieben.
Reicht das?
Christian Rose
© Christian.Ossi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16: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