![]() |
Mehrere Application Aufrufe möglich?
Gerne würde ich mit Delphi 7, VCL mehrere Programmfenster gleichzeigig öffnen können. Ich stelle mir das so vor wie bei Explorer.exe:
Alle gleichzeitig geöffneten Explorer Fenster werden von einer Instanz von Explorer.exe gehandhabt. Sicherlich werde ich dazu unterschiedliche Threads nutzen müssen und mehrere Instanzen von TApplication verwenden. Hat jemand damit schon Erfahrungen gemacht oder schon mal Informationen dazu gesehen, ob das überhaupt möglich ist? Danke für das Lesen meiner Frage :roll: |
Re: Mehrere Application Aufrufe möglich?
Zitat:
Delphi-Quellcode:
Und beim schließen bitte freigeben ;)
MeineForm.Create(Application); // So oft aufrufen, wie ich Form's will
|
Re: Mehrere Application Aufrufe möglich?
Äh... ich glaube entweder habe ich dich oder Du mich nicht ganz verstanden...
Bei deiner Lösung wird zwar ein weiteres Fenster geöffnet - aber es ist ist kein MainForm und hat auch keine getrette Windows-Message-Verwaltung. Dieses hätte ich aber gerne, daher auch die Idee mehrere Instanzen von TApplication zu verwenden. |
Re: Mehrere Application Aufrufe möglich?
Zitat:
|
Re: Mehrere Application Aufrufe möglich?
Echtes Multithreading z.B.
|
Re: Mehrere Application Aufrufe möglich?
Ich weiß zwar nicht, warum es so schlimm ist, einen Link zu setzen, aber weil Tahtu ja scheinbar keine Lust dazu hat, mach ich eben mal seine Arbeit:
![]() ![]() BTW: Für alle, die es im anderen Thread nicht finden: dort hab ich OneInstance vorgeschlagen... mfg Christian |
Re: Mehrere Application Aufrufe möglich?
Zitat:
Du schreibst Du wüsstest etwas nicht - willst Du es denn wissen? Falls ja: Warum stellst Du keine Frage? Du meinst es wäre meine Lust - das ist eine Annahme, die unzutreffend ist - mit Lust hat das weniger zu tun als vielmehr mit meiner Art des Postens in Foren. Wenn Du schreibst Du würdest meine Arbeit machen impliziert das, dass es nur diesen einen Weg der Kommunikation für dich gibt. Ich versuche offen für andere Menschen und auch für andere Wege zu sein. Wenn das für dich irgendwie bedrohlich wirkt und Du daraus Angst vor mir und meinen Postings entwickelst tut mir das leid. Ich bitte ich daher hier um Entschuldigung, dass Du diese Angst durch meine Frage erleben musstest. Ich bin der Ansicht, dass unterschiedliche Foren unterschiedliche Leser haben und untereinander nicht vermischt werden möchten. Daher poste ich dieselbe Frage in unterschiedlichen Foren identisch, da ich gerne mit allen kommunziere. Wenn das die Mehrheit der Lesen ähnlich betrifft schlage ich die Zusammenlegung von Foren vor. Gleichzeitig möchte ich jeden zum Nachdenken anregen, ob nicht die Betreiber der unterschiedlichen Foren dazu beitragen, dass Themen so an unterschiedlichen Stellen diskutiert und zerredet werden statt an einer Stelle alle Informationen zusammen zu tragen. Frei nach dem Motto: Zusammen sind wir stark wäre doch ein einheitliches Forum besser... :wink: Schon komisch, dass mehr Leute über die Art des Postings sprechen möchten als über den eigentlich Inhalt. So gesehen freue ich mich diese Menschen Gesprächsstoff gegeben zu haben. Zurück zum Thema: Vielen Dank für den Hinweis mit OneInstance. Noch bin ich am Suchen nach der Komponente - hört sich aber schon mal genau nach dem an, was ich gesucht habe. Statt eine Grundsatzdiskussion hätte also ein Hinweis hierauf genügt. ... oder auch statt zu Posten meine ordentliches Suchen. Ich gestehe meinen Fehler hierzu ein und bitte um Entschuldiung. |
Re: Mehrere Application Aufrufe möglich?
Er meint damit, wenn du eine Frage in mehreren Foren stellst, solltest du es auch schreiben, so dass ein Benutzer von Forum Y sieht was im Forum Y schon zu diesem Thema geschrieben wurde.
|
Re: Mehrere Application Aufrufe möglich?
Zitat:
Soweit ich das erkenne bezieht sich OneInstance aber nur darauf die Kontrolle an die erste Instanz zu übergeben. Nicht aber auf meinen Wunsch mehrere TApplication Instanzen gleichzeitig laufen zu lassen, was meiner Meinung nach aber erforderlich ist um mit echtem Multi-Threading Fenster unabhängig voneinander laufen zu lassen. Klingt für mich irgendwie danach, als hättest Du vorschnell geantwortet ohne dir wirklich die Mühe gemacht zu haben zu verstehen was ich will. Kann das sein? :roll: |
Re: Mehrere Application Aufrufe möglich?
Zitat:
- OneInstance - auf das entsprechende Ereignis reagieren - ein neues Fenster - von mir aus in nem separaten Thread - erstellen mehrere TApplicatioon-Instanzen in einem Prozess wird die VCL wohl nicht erlauben. Deshalb mein Vorschlag OneInstance... Die Frage ist aber: Warum das ganze? Was hast du vor? Was soll das bringen? ==> den Vorschalag von Narses in der EE ![]() mfg Christian P.S.: Wenn du ein Problem mit mir hast, dann schreib mir ne PN. Du musst damit nicht die Threads zumüllen... :roll: |
Re: Mehrere Application Aufrufe möglich?
Das klingt jetzt vielleicht etwas banal ... wieso startest Du nicht einfach das ganze Programm mehrfach?
|
Re: Mehrere Application Aufrufe möglich?
Zitat:
|
Re: Mehrere Application Aufrufe möglich?
Es handelt sich dann aber um ein Programm, nicht mehrere
|
Re: Mehrere Application Aufrufe möglich?
Zitat:
Wenn ich keine Antwort auf eine Frage weiß versuche ich mich nicht in den Mittelpunkt zu stellen und zu dokumentieren, dass ich keine Antwort habe. Vielmehr lasse ich Platz für andere, die eine Antwort wissen oder zumindest Interesse haben eine Antwort zu finden. Magst Du mir zuliebe dich zumindest bei diesem Thema ähnlich verhalten? :roll: |
Re: Mehrere Application Aufrufe möglich?
[OT]
Tahtu, pack mal deinen Hobbypsychologen wieder ein. Wir sind hier in einem Programmierforum und nicht bei Knigge. Ich glaube hier will dir keiner was "böses", auch wenn es für dich vlt. den Eindruck macht. [/OT] |
Re: Mehrere Application Aufrufe möglich?
Zitat:
deine beleidigte Reaktion ist schon deshalb völlig unangebracht, weil deine Frage ziemlich unsinnig ist: Explorer hat weder eine noch mehrere Instanzen von TApplication, weil das Programm schlichtweg nicht in Delphi programmiert ist. Abgesehen davon, was auch immer du persönlich unter Instanz verstehst: ein mehrmals aufgerufenes Programm steht sowieso immer nur einmal im Speicher, dafür sorgt schon das Betriebssystem. Und dass man ein Programm mehrmals aufrufen kann und verschiedene (oder auch gleiche) Daten damit bearbeiten kann, ist sowieso der Normalfall unter einem Multitaskingsystem. Und wenn einem die vielen Menus und Icons nicht passen, gibt es MDI-Anwendungen... Wo ist da überhaupt eine offene Frage? Gruss Reinhard |
Re: Mehrere Application Aufrufe möglich?
Ich denke sein Anliegen ist, seine Anwendung so zu entwerfen, dass nur einmal der Prozess "XYZ.exe" im Taskmanager zu sehen ist.
So wie wenn man mehrmals Firefox oder den Internet Explorer startet, auch nur einmal firefox.exe oder iexplore.exe im TM zu sehen ist. Und wenn man diesen Prozess abschießt, schließen sich auch alle Firefox- bzw. Internet Explorer-Fenster. Aber ich sehe hier auch keinen Grund, sich in dem Fall hier angegriffen zu fühlen und andere im Gegensatz dazu gleich mal anzugreifen. Wie schon geschrieben ist das hier ein Programmierforum. Hier ist Raum für Spekulationen, Mutmaßungen und auch mal falsche Annahmen und Antworten. Dazu sind ja solche Foren da, um Ansichten und Meinungen auszutauschen. Für ein Problem gibt es nämlich nicht immer nur eine Lösung. |
Re: Mehrere Application Aufrufe möglich?
BTT:
Zitat:
@Tahtu: ich denke, es ist vllt ganz vorteilhaft, wenn du uns erzählst, für was du das ganze brauchst. In der EE deutest du was von ShowMessage an. vllt. ist die Lösung viel einfacher... vllt... Bisher haben wir alle nur raten können, was dein Ziel ist. Dementsprechend unterschiedlich fallen die Vorschläge aus: a) auf biegen und Brechen genau das, was du gesagt hast ==> wie in der EE angefangen(in DLL auslagern, etc.) b) OneInstance ==> Damit hättest du nur einen Prozess und mehrere Forms wenn gewünscht auch in separaten Threads. Nur eben ein einziges TApplication Objekt(für was man merere braucht ist mir immer noch unklar) c) ... Das von Nuclear-Ping beschriebene Verhalten lässt sich IMHO nämlich wirklich am einfachsten mit b) bzw. ähnlichen Ansätzen erzielen. Ich hab ds also nicht grundlos vorgeschlagen... Warum willst du also nur einen Prozess laufen haben? mfg Christian |
Re: Mehrere Application Aufrufe möglich?
Liste der Anhänge anzeigen (Anzahl: 1)
Da die VCL diese "blöden" globalen Variablen Application und Screen hat, ist es mit Threads generell schwer und auch so weis man nicht, wo einem wann etwas dazwischenfunkt. Wenn es das Konzept erlaubt, würde ich eher auf die VCL verzichten, was wiederum auch gleich gegen Delphi spricht.
Ich habe im Anhang mal eine Lösung ohne Threads. Die funktioniert erstmal. Aber man weis ja nie..... Edit1: Was nicht bedeutet, dass du ohne Threads arbeiten sollst. Aber die formulare sollte man da raushalten. Edit2: Zitat:
Du kannst bestimmt mehrere Instanzen von TApplication starten. Das Problem liegt dann aber darin, dass ein neues Formular aus der Unit Forms sich immer nur bei der einen Instanz von TApplication anmeldet. Und das ist die Instanz, welche global in der Unit Forms existiert. Und inwieweit das ganze bei Veränderungen mit der Instanz von TScreen kollidiert mag ich nicht vorraussagen. ==> Du musst die VCL neu erfinden (vielleicht ist ja der ![]() Edit3 (naja, meine Gedanken kommen heut etwas gekleckert): Noch ein Problem von VCL-Formularen ist die WndProc. Die einzelnen WndProcs werden nämlich auch zentral (also global) verwaltet, was die Verteilung in mehrere Threads erschwert. Ich hatte ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz