Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - "showmessage" ohne Bestätigung?
D. Annies - Di 28.12.10 21:17
Titel: "showmessage" ohne Bestätigung?
Hi, Delpher,
gibt es die Möglichkeit, eine Message (kurz) angezeigt zu bekommen, aber das Programm läuft trotzdem weiter?
Gruß, Detlef
Delete - Di 28.12.10 21:19
soll sich der Dialog von alleine schließen oder wie?
platzwart - Di 28.12.10 21:21
Das macht dann doch gar keinen Sinn :roll: Du kannst aber auch eine Statusleiste verwenden und da reinschreiben...
D. Annies - Di 28.12.10 21:29
Ja, Luckie,
der Dialog soll sich von allein schließen - exakt!
(Wie) Geht das?
Gruß, Detlef
Delete - Di 28.12.10 21:34
Das ergibt keinen Sinn. Wenn ich nicht am Rechner bin, sehe ich die Nachricht nicht, dann braucht sie auch nicht erscheinen. Bin ich am Rechner, kann ich die mir die Nachricht in Ruhe durchlesen und sie dann selber schließen. Ergo soll sich die Nachricht selber schließen, dann kann sie nicht wichtig sein. Warum also dieser Krampf? Eine Meldung in der Statusleiste oder dem Fenstertitel wäre da bestimmt sinnvoller.
Aber wenn du unbedingt eine sich selbst schließende Dialogbox willst:
http://www.michael-puff.de/Artikel/MessageBoxTimeout.shtml
D. Annies - Di 28.12.10 21:37
Hallo, Michael,
ich komme auf diese Idee, weil ich bei einem Auto-Portal genau das gesehen habe, in der Form: Ihr Auto wurde auf die Merkliste gesetzt ... (und automatisch weiter)
So, mal sehen, wie du gedacht hast, vielen Dank schon mal,
Detlef
platzwart - Di 28.12.10 21:44
Genau solche Nachrichten nerven mich als User extrem. Die Dinger bremsen mich nur aus und ich hab keinen Einfluss auf die Anzeige, absoluter Mist sowas. Dann setz doch lieber eine Nachricht in die Statusleiste...
D. Annies - Di 28.12.10 21:48
By the way, welche Unit ist messageboxTimeOut?
Danke, Detlef
Delete - Di 28.12.10 21:52
Steht alles auf der Seite. Lesen hilft.
D. Annies - Di 28.12.10 21:59
Danke, Micheal, <- siehe dein Abspann ..
hab ich gut gelesen, oder?
Na, ich kämpfe denn mal ..
Gruß, Detlef
Tilman - Di 28.12.10 22:23
Ich würde einfach ein unsichtbares Panel auf das Formular setzen, und das dann visible=true stellen und per Timer wieder ausblenden. Das Panel kannst du dann wie eine Messagebox verwenden im Prinzip.
D. Annies - Mi 29.12.10 09:22
Bin jetzt zwei Tage weg, melde mich aber wieder - erstmal vielen Dank,
Detlef
D. Annies - Fr 31.12.10 12:42
So, bin wieder da.
Mein Versuch mit dem Panel sieht so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TBuchMain.PanelBlitz(sender: Tobject); begin Timer1.Interval := 2000; Panel1.caption := 'Datensatz wurde zu Unicode geändert'; Panel1.Visible := true; end; |
Ich weiß (noch) nicht, wie ich den Timer starte, bzw. stoppe?
Wahrscheinlich gaaanz leicht ;)
Vielen Dank für eine Idee!
Detlef
platzwart - Fr 31.12.10 12:55
Delphi-Quelltext
1: 2:
| Timer1.Enabled:= True; Timer1.Enabled:= False; |
D. Annies - Fr 31.12.10 15:33
Danke, Platzi,
aber das isses noch nicht ganz. Ich habe jetzt den folgenden Code, bzw. Zusammenhang:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| procedure TBuchMain.PanelBlitz(sender: Tobject); begin Timer1.Interval := 2000; timer1.Enabled := true; Panel1.caption := 'Datensatz wurde zu Unicode geändert'; Panel1.Visible := true; timer1.Enabled := false; Panel1.Visible := false; end;
procedure TBuchMain.UNICODEeinarbeiten1Click(Sender: TObject); var n, k, z : integer; begin z := 0; for n := 1 to tntstringgrid2.RowCount-1 do for k := 1 to tntstringgrid1.RowCount-1 do begin if (tntstringgrid1.cells[1,k] = tntstringgrid2.cells[3,n]) and (tntstringgrid1.cells[2,k] = tntstringgrid2.cells[4,n]) then begin tntstringgrid1.cells[1,k] := tntstringgrid2.cells[0,n]; tntstringgrid1.cells[2,k] := tntstringgrid2.cells[1,n]; inc(z); end; end; if z > 0 then begin PanelBlitz(self); end end; |
Wer kann da weiterhelfen?
GGruß, Detlef
Tilman - Fr 31.12.10 17:09
Entschuldigung, das mit dem Timer war glaub ich ein blöder Vorschlag von mir, der war bei mir Sinnvoll als ich zuletzt sowas gemacht habe, aber bei dir solltest du wohl lieber den Befehl sleep(millisekunden) verwenden. Also z.B. Sleep(2000); .
bummi - Fr 31.12.10 17:51
der Teil:
Delphi-Quelltext
1: 2: 3: 4: 5:
| timer1.Enabled := false; Panel1.Visible := false; |
Gehört in das Ereignis OnTimer des Timers
Martok - Fr 31.12.10 18:05
Nein, nicht ganz ;)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TBuchMain.PanelBlitz(sender: Tobject); begin Timer1.Interval := 2000; timer1.Enabled := true; Panel1.caption := 'Datensatz wurde zu Unicode geändert'; Panel1.Visible := true; end;
OnTimer: timer1.Enabled := false; Panel1.Visible := false; |
bummi - Fr 31.12.10 18:09
Mist, freilich Martok....
"Könntest Du bitte Delphitags verwenden" ;-) ;-)
Martok - Fr 31.12.10 18:11
bummi hat folgendes geschrieben : |
"Könntest Du bitte Delphitags verwenden" ;-) ;-) |
Eins war ja da - ich hab nur leider ein Quote geschlossen ;)
Das passiert wenn man den Tab gleich schließt, ohne mal zu prüfen was gepostet hat... :roll:
D. Annies - Sa 01.01.11 09:42
Hi, Tilman, Bummi und Martok!
Das geht super mit dem Timer, allerdings ein Timer2, da ich schon einen timer1 einsetze und sonst dessen Einstellungen überschreibe.
Vielen Dank!
Detlef
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!