Autor |
Beitrag |
Blue_Liquid
Hält's aus hier
Beiträge: 14
WinXP
D7 Enterprise
|
Verfasst: Mi 12.05.04 17:42
Hallo,
wie kann ich die Überschrift bei einem Showmessage ändern?
Jetzt steht immer nur da : "Projekt 1"
Danke
_________________ ... Gruss Benni
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 12.05.04 18:05
Wie ich dir schon im ICQ geagt habe: Gar nicht.
Nimm statt dessen die Methode Messagebox von TApplication der die Windows API Version davon.
|
|
DaRkFiRe
      
Beiträge: 526
WinXP Home & Professional
C, C++, Delphi
|
Verfasst: Mi 12.05.04 18:59
So richtig - nimm Application.Messagebox oder die API-Funktion MessageBox. ShowMessage is eher zum Debuggen gedacht und zeigt immer den Projektnamen an.
_________________ Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
|
|
obbschtkuche
Gast
Erhaltene Danke: 1
|
Verfasst: Mi 12.05.04 19:57
So geht's:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure ShowMessageCaption(atext, acaption: string); begin with CreateMessageDialog(atext, mtCustom, [mbOK]) do try Position := poScreenCenter; Caption := acaption; ShowModal; finally Free; end; end; |
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Mi 12.05.04 23:30
Du kannst es auch so machen
Delphi-Quelltext 1: 2: 3:
| Application.Title := 'Ich Nero, ...';
ShowMessage('... im Namen des Senats und des Volkes von Rom.'); |
Der Trick ist, daß du es über den Programmtitel machst. Der Titel gilt dann auch für ShowMessage.
Nur mußt du denken den Titel wieder rückgängig werden. Den Titel siehst du übrigens auch unten in der Taskleiste.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mi 12.05.04 23:48
Hm, also jedes mal den Titel der Anwendung zu ändern, halte ich nicht gerade für sehr praktikabel. Wie gesagt, warum soll er nicht die Messageboxen nehmen, bei denen man eben schon die Caption frei wählen kann?
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Mi 12.05.04 23:59
Weil er ein Anfänger ist und ich mich frage ob er mit dem PChar klarkommt 
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 13.05.04 00:07
Und ich frage mich, ob es sinnvoll ist, sich so einen Blödsinn anzugewöhnen, anstatt etwas zu lernen. 
|
|
DaRkFiRe
      
Beiträge: 526
WinXP Home & Professional
C, C++, Delphi
|
Verfasst: Do 13.05.04 00:10
Ja gut, aber es ist ja nich vorgeschrieben, wie man was lernt, oder? Also man kann ihm ja wohl sagen, was ein Typecast ist und wozu man sowas braucht. Denn mal ehrlich, was kann man bei einem simplen TypeCast in MessageBox à la PCHAR(<String>) schon groß falsch machen!?
_________________ Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Do 13.05.04 00:54
Man kanns falsch machen, wenn man keine Ahnung hat was ein PChar ist. Das erscheint einem jetzt zwar Simpel, aber am anfang.
Aber zum lernen vielleicht noch ein Punkt. Viel zu selten Nutzen die Leute die Möglichkeit von Application.Title. Das sehe ich wenn ich die Programme in Freeware Projekte ausprobiere. Der Applikation Titel ist fast immer auch der Dateiname. Ich schätze es bringt schon was zu wissen, daß man dem Programm einen Titel geben kann.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 13.05.04 08:57
bms hat folgendes geschrieben: | Aber zum lernen vielleicht noch ein Punkt. Viel zu selten Nutzen die Leute die Möglichkeit von Application.Title. Das sehe ich wenn ich die Programme in Freeware Projekte ausprobiere. Der Applikation Titel ist fast immer auch der Dateiname. Ich schätze es bringt schon was zu wissen, daß man dem Programm einen Titel geben kann. |
Da hast du zwar grundsätzlich Recht. Aber in dem speziellen Fall bzgl. der MessageBox/ShowMessage IMHO nicht. Wenn du als Tipp vorschlägst, temporär den Titel zu verändern, nur weil jemand Probleme mit "pchar" haben könnte, dann ist das nicht wirklich ein guter Vorschlag.
Lieber würde ich mich hier im Forum von Fragen à "Wie geht das mit pchar" (zum x. Mal) nerven lassen, als in der Hinsicht zu sagen: "Tu was bms gesagt hat."
Wie Luckie schon schrieb
Zitat: | ich frage mich, ob es sinnvoll ist, sich so einen Blödsinn anzugewöhnen, anstatt etwas zu lernen. |
In anderen Dingen magst du recht haben. Speziell in dem Fall nicht. 
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Do 13.05.04 09:05
Zufällig bin ich im Forum, deshalb schnell eine Antwort. Ich hab nicht gemeint, daß einer jetzt für bei jedem ShowMessage den Application.Titel ändern soll (auch wenns vielleicht so geklungen ist). Viel mehr meinte ich, daß die Titel in der Regel nicht ansehnlich sind, den meistens sind es die Dateinamen die man oben in der Titelleiste sieht. Ein vernünftiger Titel läst ein ShowMessage gleich anders aussehen. Es ist also ein Unterschied ob in der Showmessage Titelleiste ein "Nav" oder "Norton Anti Virus" steht.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 13.05.04 09:21
Ja, aber das ist doch ein anderes Thema und hat mit dem hier eigentlich nicht viel zu tun.
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Do 13.05.04 11:22
Doch. Da steht:
Zitat: | wie kann ich die Überschrift bei einem Showmessage ändern?
Jetzt steht immer nur da : "Projekt 1" |
Er braucht dem Programm bloß einen Titel zu geben und schon steht da was anderes.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
maxk
      
Beiträge: 1696
Erhaltene Danke: 1
Win XP, Debian Lenny
Delphi 6 Personal
|
Verfasst: Do 13.05.04 11:59
Jetzt habt ihr so lange von MessageBox geschrieben, dass ich das gleich mal zu Ende bringe: Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| function ShowMessage(AMessage:string;ACaption:string='';AFlags:LongInt=0):integer; begin if length(ACaption)=0 then begin Dialogs.ShowMessage(AMessage); Result:=IDOK; end else begin Result:=MessageBox(Handle,PChar(AMessage),PChar(ACaption),AFlags); end; end; | Diese Funktion hat einen großen Nutzen, da sie den gleichen Namen wie Dialogs.ShowMessage trägt, müssen kaum Änderungen am Quellcode durchgeführt werden. Außerdem können gleich noch Flags für MessageBox übergeben werden.
maxk
PS: Wenn schnell gehen soll, reicht auch ein MessageBox(Self.Handle,'Text','Caption',0); völlig aus.
_________________ Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
|
|
Motzi
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: Do 13.05.04 14:40
bms hat folgendes geschrieben: | Man kanns falsch machen, wenn man keine Ahnung hat was ein PChar ist. Das erscheint einem jetzt zwar Simpel, aber am anfang. |
Also was man bei einem simplen Cast nach PChar falsch machen kann würde mich jetzt doch interessieren..! 
_________________ gringo pussy cats - eef i see you i will pull your tail out by eets roots!
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Do 13.05.04 15:00
Motzi hat folgendes geschrieben: | Also was man bei einem simplen Cast nach PChar falsch machen kann würde mich jetzt doch interessieren..!  |
 Was ist das für eine dumme Frage?
Irgendwie gibt es fast jeden Tag einen, der mit einer API Funktion nicht klarkomt, weil er versucht einen String anzugeben. Klappt nicht. Dann kriegt er gesagt, daß er das in PChar() packen soll. Und dann klappt es. Erklären tut keiner was es mit PChar auf sich hat, nur daß man es so machen soll. Nichts von lehren und lernen, sondern kurz mach es so. Er bleibt sich selbst überlassen und irgendwann kapiert er das. Wenn es so einfach wäre, dann würden die Leute nicht fragen.
Also stell nicht die Frage was an einem simplen PChar kompliziert sein soll. Anscheinend ist es so.
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|
Motzi
      
Beiträge: 2931
XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
|
Verfasst: Do 13.05.04 15:33
Ja, klar.. jemand der das zum ersten mal macht weiß halt nicht was ein PChar ist und wie man von einem String zu einem PChar kommt.. darum tauchen hier ja auch immer wieder Fragen dazu auf..! Aber falsch machen kann man dabei nicht wirklich was außer dass es halt nicht funktioniert und hier die Frage auftaucht was man da machen soll)...
Und nur als kurzer Hinweis am Rande: in meinem String-Tutorial erklär ich ganz genau die Unterschiede zwischen den verschiedenen String-Arten, PChars diverse Typecastings etc. Für Interessierte: www.manuel-poeter.de
_________________ gringo pussy cats - eef i see you i will pull your tail out by eets roots!
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 13.05.04 15:48
bms hat folgendes geschrieben: | Erklären tut keiner was es mit PChar auf sich hat, nur daß man es so machen soll. |
Wobei ich aber, offen gestanden, noch keinen erlebt hätte, der gefragt hat: " Warum muss ich das so machen?" Also hole ich´s hiermit nach:
@bms: Warum muss man das machen?
|
|
bms
      
Beiträge: 735
Win XP
Delphi 3, Delphi 6 PE, Delphi 2005 PE
|
Verfasst: Do 13.05.04 21:00
Woher soll ich das wissen? Ich nix verstehen. Morgen andere Baustelle. Vielleicht weil es um Zeiger geht?
_________________ VORSICHT: Ich behersche seit heute die Fünf-Finger-Handflächen-Herz-Explodier-Schlag-Kampf-Technik >
|
|