Delphi-Version: 7
Titelleiste / Rahmen der MessageDlg ausblenden
hallo,
weiss jemand einen code um den windowsrahmen bei der ausgabe von "MessageDlg" zu ändern bzw. wegzubekommen? http://picload.org/image/coccwoc/rahmen.png mfg |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Kann sein, dass ich Mist erzähle, aber du musst den Dialog "selber" erstellen.
Minimales Beispiel: (das ist ein cut-out aus meiner eigenen, viel umfangreicheren Funktion. Die Funktion gibt einen Wert zurück, sodass man auf den Dialog reagieren kann)
Delphi-Quellcode:
function MsgBox(psCaption: string; psText: string; nHeigth: Integer; aMsgDlgType: TMsgDlgType; aMsgDlgBtn: TMsgDlgButtons; aMsgDlgBtnDef: TMsgDlgBtn): Integer;
var iModalRes: Integer; aMsgDialog: TForm; // vergessen hinzuzufügen begin iModalRes := ID_NO; aMsgDialog := CreateMessageDialog(psText, aMsgDlgType, aMsgDlgBtn, aMsgDlgBtnDef); with aMsgDialog do begin BringToFront; Caption := psCaption; ClientHeight := nHeigth; BorderIcons := []; // Keine Border-Icons BorderStyle := bsNone; // Keine Titelleiste FormStyle := fsStayOnTop; Top := (Screen.Height div 2) - (Height div 2); SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); iModalRes := ShowModal; Free; end; Result := iModalRes; end; // Aufruf: case MsgBox('Caption', 'Text', 100, mtInformation, [mbYes, mbNo, mbClose], mbNo) of ID_YES: ; ID_NO: ; ID_CLOSE: ; end; |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
das ist doch für die message box oder...
ich meine aber die MessageDlgPos. einfach was mit in den aufruf rein oder so. bei der form geht der windowsrahmen mit dem code weg. http://www.delphipraxis.net/379391-post1.html mfg |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Wenn der Standard-MessageDlg so eine Option nicht bietet, muss man sich eben selbst etwas schreiben. Wie das geht, sollte der gepostete Code aufzeigen.
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bin mal so frei :mrgreen:
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
Mein geposteter Code zeigt wie. |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
und wie bekomme ich den code in den aufruf von der TApplication eines buttons. wenn das bei dir in einer leeren form geht, kannst die mir mal posten. mfg |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
Beispiel mit ausführbarer EXE im Anhang.
Um das Beispiel noch einfacher zu machen das alles noch einmal als Prozedur und nicht als Funktion.
Delphi-Quellcode:
procedure MsgBox(psCaption: string; psText: string; nHeigth: Integer; aMsgDlgType: TMsgDlgType; aMsgDlgBtn: TMsgDlgButtons; aMsgDlgBtnDef: TMsgDlgBtn);
var aMsgDialog: TForm; // versehentlich vergessen .. begin aMsgDialog := CreateMessageDialog(psText, aMsgDlgType, aMsgDlgBtn, aMsgDlgBtnDef); with aMsgDialog do begin BringToFront; Caption := psCaption; ClientHeight := nHeigth; BorderIcons := []; // Keine Border-Icons BorderStyle := bsNone; // Keine Titelleiste FormStyle := fsStayOnTop; Top := (Screen.Height div 2) - (Height div 2); SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); Free; end; end; // Aufruf: MsgBox('Caption', 'Text', 100, mtInformation, [mbYes, mbNo, mbClose], mbNo); |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
ja genau so hab ich das gemeint. kann zwar das project1 nicht öffnen hab aber die exe mal gestartet.
danke dir. mfg |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
gruss |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Könntest du eventuell den Fehler auch benennen?
> Warum bekommst du das Projekt nicht auf. PS: Strg+C funktioniert auch in Fehler-Dialogen. :stupid: (als Text) |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Den Objektinspektor haste nicht in deinem Delphi?
Left/Top/Height und Width kennste auch nicht? F1- und F12-Taste sind auch kaputt? Fragen über Fragen...:evil: MfG |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
Müsste jetzt eigentlich funktionieren.
Denn jetzt ist wirklich alles gekürzt wo es nur geht.. Wie sieht denn deine Fehlermeldung aus, warum kannst du das nicht öffnen? |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Interessant. Die Schaltflächen sind auf französisch bei meinem deutschen Windows 7. Benutzt du ein französisches Delphi?
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
Jupp, das tut er, wobei es ja aktuell (seit RAD-Studio und vorallem seit man das im Setup/Installer nicht mehr einstellen kann) keine direkten Sprachversionen mehr gibt und man das nur entsprechend umschalten muß.
[edit] In diesem Fall natürlich Tab 2. :stupid: Hab mich schon immer gefragt, warum es eigentlich kein russisches und indisches Delphi gibt, wo dort doch angeblich viele Delphinutzer leben. :gruebel: |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
jetzt geht es schonmal zu öffnen, und beim test (grüner pfeil) kommt dann der fehler.
Anhang 42233 alle anderen projecte ob von mir oder aus foren gehen ohne probleme aufzumachen. |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Cursor auf CreateMessageDialog setzen -> F1. Nun sollte man sehen können, welche Parameter erwartet werden. Den "überflüssigen" (heißt: Deinem Delphi nicht bekannten) muss man dann eben einfach löschen.
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
Dann hilft wohl nur das Formatieren des Systemlaufwerks. |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Ich meinte das zwar nicht während des Debuggings, aber der Hint zeigt doch schon, welche Parameter erwartet werden. Der letzte (Setzen des Default-Buttons) ist Delphi 7 nicht bekannt, also weg damit.
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
.. die Unit "Dialogs" hast Du eingebunden? Denn dort ist mbClose definiert. Grüße Klaus |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
ist raus... Anhang 42237 @klaus01 wie auch eingebunden? |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Klaus meinte, ob die Unit Dialogs in Deiner uses-Klausel steht. Eigentlich müsste sie das, da CreateMessageDialog ja auch aus Dialogs stammt. Wieso mbClose allerdings unbekannt sein soll, weiß ich gerade auch nicht.
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
Delphi-Quellcode:
Grüße
Interface
uses ..,Dialogs; Klaus |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Anhang 42238 na ja da bleibt der rahmen eben dran. danke für eure hilfe. |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; aMsgDialog: TForm; implementation {$R *.DFM} function MsgBox(psCaption: string; psText: string; nHeigth: Integer; aMsgDlgType: TMsgDlgType; aMsgDlgBtn: TMsgDlgButtons; aMsgDlgBtnDef: TMsgDlgBtn): Integer; var iModalRes: Integer; begin iModalRes := ID_NO; aMsgDialog := CreateMessageDialog(psText, aMsgDlgType, aMsgDlgBtn); with aMsgDialog do begin BringToFront; Caption := psCaption; ClientHeight := nHeigth; BorderIcons := []; // Keine Border-Icons BorderStyle := bsNone; // Keine Titelleiste FormStyle := fsStayOnTop; Top := (Screen.Height div 2) - (Height div 2); SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); iModalRes := ShowModal; Free; end; Result := iModalRes; end; procedure TForm1.Button1Click(Sender: TObject); begin // Aufruf: case MsgBox('Caption', 'Text im Dialog', 75, mtConfirmation, [mbYes, mbNo, mbCancel], mbNo) of ID_YES: Close; ID_NO: Close; ID_Cancel: ; end; end; end. |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
XE kennt mbClose auch schon, hat also mit dem Feueraffen nichts zu tun.
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
@pelzig
klasse funktioniert ohne fehler danke. mein zeilenumbruch und leerzeile aus der MessageDlgPos funktionieren aber nicht mehr. 'das ist mein text'#13#10''+#13#10+'und hier geht er weiter' gibts da unterschiedlichen code? |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
Delphi-Quellcode:
oder
'das ist mein text' + #13#10 + #13#10 + 'und hier geht er weiter'
Delphi-Quellcode:
Schau dir am besten noch einmal die Grundlagen der Programmierung in Delphi an.
'das ist mein text' + sLineBreak + sLineBreak + 'und hier geht er weiter'
|
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
mach ich... hier ist die zeile aus der MessageDlgPos
Delphi-Quellcode:
MessageDlgPos('das ist mein text'#13#10''+#13#10+'und hier geht er weiter'+#13#10+'und weiter'#13#10''+#13#10+'und weiter',mtcustom, [mbok], 30, 30, 100);
da musst du den umbruch /leerzeile in anführung setzen und es gibt keinen fehler. ich wollte ja schon am anfang nicht so richtig an die message box ran. aber egal, ich danke euch für die hilfe! falls noch jemand lust hat, kann er ja versuchen einen custom rahmen um die message box zu coden ala...cruso http://www.delphipraxis.net/379391-post1.html
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin SetWindowLong(Handle, GWL_STYLE, (GetWindowLong(Handle, GWL_STYLE) and not WS_Caption)); ClientHeight := Height; //Ist besser so ;-) Refresh; end; das die box dann so in etwa aussieht: Anhang 42240 :thumb: |
AW: Titelleiste / Rahmen der MessageDlg ausblenden
Zitat:
Guck dir das längere Zeit an und übe ein wenig, dann ist das bald so einfach für dich wie Fahrradfahren. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz