Autor Beitrag
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Di 05.06.07 20:12 
Also ich hoff' mal das es das richtige Forum ist (bzw der Teil des Forums).
Ich wollte mal fragen ob es möglich ist, Formen bzw eine Form als "Thread oder Instance" zu starten.
Ich meine das wie so eine Exe von der man mehrere gleichzeitig laufen lassen kann nur halt nicht als Exe sondern als Form in einem Projekt.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 06.06.07 02:36 
Du kannst Programmcode in einem Thread laufen lassen, und wenn dieser Code ein Formular anzeigt etc., dann läuft dieses gewissermaßen auch dadrin.
Da man aber ja die Oberfläche eines Programms, insbesondere bei Multithreading, von der Oberfläche trennt, hat das ja erstmal nichts mit dem Formular an sich zu tun. Du brauchst eine Klasse, die von TThread abgeleitet ist, und den Code enthält, der im Thread laufen soll, und dann wird der bzw. werden diese Threads gestartet und laufen dann parallel weiter.

Aber vielleicht solltest du mal genauer schreiben was du eigentlich machen möchtest, dann kann ich bzw. können wir auch genauer sagen, wie du das realisieren kannst...
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mi 06.06.07 05:51 
Wenn Du eine Form mit 'ShowModal' anzeigst, dann 'hängen' alle anderen Formulare, weil diese Form ja exklusiv alle Tastendrücke, Mausereignisse etc. bekommt.

Zeigst Du dagegen ein Formular mit 'Show', dann wird es nur angezeigt und erhält die Ereignisse nur dann, wenn es fokussiert ist. Vermutlich meinst du soetwas.

Dann gibt es noch die MDI-Metapher, das Multi-Document-Interface. Du erstellst dir ein Hauptforumlar, sozusagen den Container für die einzelnen Formulare, und dann eine Formular-Klasse vom Typ 'MDI-Child'. Wo man das einstellt, weiss ich grad nicht, aber in der OH und den Demos findest Du Beispiele.

_________________
Na denn, dann. Bis dann, denn.
Niko S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Mi 06.06.07 21:17 
Also ich habe eine "Main" Form die bleibt immer im hintergrund bzw als hintergrund .
so und nun will ich z.b. eine Form machen die wie ein Editor funktioniert wo ein Memo drinn ist
Und sowas sollte man mehrfach aufrufen können.
Also möchte ich nur Form2 mehrfach aufrufen können und hin und her switchen und auch auf die Main-Form ohne probleme zurueck.
Also nicht wie bei showModal (nix anderes mehr anklickbar)
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Do 07.06.07 07:18 
user profile iconalzaimar hat folgendes geschrieben:
Zeigst Du dagegen ein Formular mit 'Show', dann wird es nur angezeigt und erhält die Ereignisse nur dann, wenn es fokussiert ist. Vermutlich meinst du soetwas.

:mrgreen:

_________________
Na denn, dann. Bis dann, denn.
Niko S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Do 07.06.07 08:03 
ja nur wenn ich ein weiteres fenster der gleichen form zeigen will geht das doch nicht?! Es zeigt nur die eine Form die ich erstellt hab an mit Show.
Ich habs mit Arrays und Application.FormCreate gelöst :D
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Do 07.06.07 08:07 
ausblenden Delphi-Quelltext
1:
TMyForm.Create(nil).Show;					

_________________
Na denn, dann. Bis dann, denn.
Niko S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Fr 08.06.07 15:15 
Die idee hatte ich auch schon ^^ funzt nur nicht.
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 0045671C in Modul 'Project1.exe'. Lesen von Adresse 00000000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Help
---------------------------

Bei der Linie:
MyForm[i].Create(nil).show;


MyForm ist ne array [0..9] vom typ TForm
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Fr 08.06.07 15:46 
und lass mich raten: i hat die Werte 1 bis 10? ;mrgreen:
Das von Alzaimar funktioniert schon, kontrollier bitte mal deine Zählvariable

Gruß
alias5000

_________________
Programmers never die, they just GOSUB without RETURN
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 19.06.07 15:51 
Ist jetzt zwar schon ein paar Tage her seit dem letzten Post, aber egal...

Das liegt nicht an der Zählvariablen. Das liegt daran, dass bei
user profile iconSimak hat folgendes geschrieben:
Bei der Linie:
MyForm[i].Create(nil).show;
die Methode Create von MyForm[i] aufgerufen wird, da dieses Objekt jedoch noch gar nicht initialisiert wurde, geht das natürlich nicht.
Richtig ist:
ausblenden Delphi-Quelltext
1:
2:
MyForm[i] := TMyForm.Create(nil);
MyForm[i].Show;
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 19.06.07 16:05 
user profile iconSimak hat folgendes geschrieben:
Also ich habe eine "Main" Form die bleibt immer im hintergrund bzw als hintergrund .
so und nun will ich z.b. eine Form machen die wie ein Editor funktioniert wo ein Memo drinn ist
Und sowas sollte man mehrfach aufrufen können.

Das klingt ganz nach einer MDI Anwendung.