Autor Beitrag
mikro1986
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Do 16.04.09 14:15 
Hi,

also erstmal zu meinem Prog:
Es ist mehr oder weniger ein Terminal, von dem mehrere Anwendungen gestartet werden können. Nun dauert es aber leider, bis die Anwendungen gestartet sind und wenn man nur auf die anderen Button drückt, um andere Anwendungen zu starten, werden irgendwann alle gestartet und das ist unschön.

meine bisherige Lösung:
ich hab die anderen Buttons deaktiviert mit enabled, aber jetzt hab ich das Problem, wenn jetzt einer auf die anderen Buttons drückt,s ich die Anwendung nur im Hintergrund öffnet, ich die aber im Vordergrund brauche!

Hat jemand eine Idee, wie ich die Anwendung in den Vordergrund bekomme, oder wie ich mein eigentliches Problem lösen kann.

Also nochmal im Klartext:

Sagen wir mal, ich hab auf meinem Form 4 Buttons. Mit jedem Button (ich benutze Images, aber ist ja selbe Prinzip) wird eine Präsentation gestartet. Wenn ich nun mehrere Buttons schnell hintereinander starte, werden alle Präsentationen gestartet -> sehr schlecht...
hab dann nach einem Buttonklick die anderen gesperrt, aber wenn ich dann auf dem Form rumdrücke, gelangt die Präsentation in den Hintergrund, brauch die aber dringend vorne...

mein Code
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Image1Click(Sender: TObject);
var
   i: Integer;
begin         //Öffnet die gewünschte Präsentation, läuft wieder über Image(Sender).Hint
  TimeMessage('Bitte haben Sie einen Moment Geduld!',mtInformation,[mbOK], 3000, mrYes);
  for i := 1 to 4 do
  (FindComponent('image'+IntToStr(i)) as TImage).Enabled:=false;
  ShellExecute(application.Handle,'open', PChar
              ('C:\Heinz-Knut II\Präsentationen\' + TImage(Sender).Hint + '.pps'), NilNil, SW_Normal);
end;

TimeMessage ist eine Messagebox, die sich automatisch wieder schließt...

Hoffe jetzt ist es verständlicher...


Gruß
mikro
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Do 16.04.09 14:43 
Und wieso fängst du nun hier einen neuen Thread an, wo das Problem im anderen Forum schon fast gelöst ist?
forum.delphi-treff.d...owthread.php?t=26366

_________________
PROGRAMMER: A device for converting coffee into software.
mikro1986 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Do 16.04.09 14:55 
weil das Problem in dem anderem Forum nicht gelöst ist und ich einfach hier auch nach Hilfe fragen wollte... Mehrere Leute, mehr Ideen, so verkehrt?
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Do 16.04.09 15:21 
user profile iconmikro1986 hat folgendes geschrieben Zum zitierten Posting springen:
Mehrere Leute, mehr Ideen, so verkehrt?

Nö, aber es ist erwünscht, dass man solche >Crossposts< mit angibt. Dann kann man wenigstens vorher nachschauen, ob das Problem im anderen Forum bereits gelöst ist, bevor man anfängt nachzudenken.

In manchen Foren steht das auch in den Regeln, dass man solche Crossposts mit angeben muss. Aber da du die ja gelesen und akzeptiert hast... ;)

_________________
PROGRAMMER: A device for converting coffee into software.
mikro1986 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Do 16.04.09 15:28 
feJa gut, da hast du Recht... Hab den Link nicht angegeben, tut mir Leid... hab ich nicht drüber nachgedacht, aber Recht haste ja...

können wir vll jetzt zu meinem Problem zurück kommen? :-)
Regan
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2157
Erhaltene Danke: 72


Java (Eclipse), Python (Sublimetext 3)
BeitragVerfasst: Do 16.04.09 17:55 
user profile iconmikro1986 hat folgendes geschrieben Zum zitierten Posting springen:
können wir vll jetzt zu meinem Problem zurück kommen? :-)

Ich weiß nicht, ob ich das richtig verstanden habe, aber: Blende das Formular einfach aus und nach einer Zeit wieder ein!?
Wenn das nicht passt, dann habe ich das Problem schlicht nicht erkannt.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Do 16.04.09 18:03 
Wenn die Präsentation vorne sein soll, wieso blendest du dann das Hauptformular nicht aus? Dann kann man auch nicht mehr rumklicken.
mikro1986 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Do 16.04.09 21:18 
auf die einfachsten Sachen kommt man nicht :-D

Form1.Hide, ist das richtig??

Muss ich moin mal direkt ausprobieren... wie kann ich denn dann das Form wieder zeigen, aber eben im HIntergrund?

Danke für die Tipps
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Fr 17.04.09 08:40 
Hi :)

Ich weiß nicht, ob das wirklich eine so gute Idee ist. Permanentes ausblenden hätte den selben Effekt wie Deaktivieren der Knöpfe - zumal das Programm dann nur noch über den Taskmanager beendet werden könnte, sofern es sich um das einzige Fenster des Programms handelt.

Grundsätzlich sehe ich drei Lösungen:
  • Deaktiviere den Knopf für ein paar Sekunden.
  • Zeige dem Nutzer, dass sich etwas tut(Label: Wird gestartet... erscheint und verschwindet nach ein paar Sekunden wieder. Oder etwas hübscher: kleine Animation, sich drehendes Zahnrad, etc.).
  • Minimiere das Programmfenster oder schicke es in den Hintergrund. Damit wäre intuitiv ersichtlich, dass sich etwas tut und das wäre mt 1-2 Zeilen leicht umzusetzen(mein persönlicher Favourit).

E: Okay, die ersten beiden sind wohl schon in der Art umgesetzt :D

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)


Zuletzt bearbeitet von Hidden am Fr 17.04.09 10:00, insgesamt 2-mal bearbeitet
mikro1986 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Fr 17.04.09 08:56 
Wenn ich mein Form in den Hintergrund legen könnte, wäre es schon gut, aber hab leider keine Ahnung, wie das geht, kann mir das vll jemand sagen, oder erklären?
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Fr 17.04.09 09:57 
Minimieren: Application.Minimize;

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
mikro1986 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Fr 17.04.09 10:03 
danke, das hab ich auch grad rausgefunden, aber wie geht das mit in den Hintergrund legen, das wäre meines erachtens nach sauberer und für mich auch zutreffender...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 17.04.09 10:29 
Meinst du SendToBack? :gruebel:
mikro1986 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 22



BeitragVerfasst: Fr 17.04.09 13:00 
ja, wäre was, abe rbringt nicht den gewünschten Erfolg...

Am optimalsten wäre es echt, wenn ich für 4 sekunden oder so grad die Maus deaktiviere...
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Fr 17.04.09 13:07 
user profile iconmikro1986 hat folgendes geschrieben Zum zitierten Posting springen:
Am optimalsten wäre es echt, wenn ich für 4 sekunden oder so grad die Maus deaktiviere...

Ach so einfach geht es auch? :lol:

Nehm doch Enabled ;)