AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Titelleiste / Rahmen der MessageDlg ausblenden

Ein Thema von 010101 · begonnen am 30. Nov 2014 · letzter Beitrag vom 2. Dez 2014
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Benutzerbild von 010101
010101

Registriert seit: 27. Nov 2014
34 Beiträge
 
#1

Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 30. Nov 2014, 17:23
Delphi-Version: 7
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

Geändert von 010101 (30. Nov 2014 um 17:26 Uhr)
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#2

AW: Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 30. Nov 2014, 22:45
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;

Geändert von dGeek ( 1. Dez 2014 um 16:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von 010101
010101

Registriert seit: 27. Nov 2014
34 Beiträge
 
#3

AW: Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 1. Dez 2014, 10:46
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 1. Dez 2014, 11:13
Wenn der Standard-MessageDlg so eine Option nicht bietet, muss man sich eben selbst etwas schreiben. Wie das geht, sollte der gepostete Code aufzeigen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.734 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 1. Dez 2014, 14:06
Leider kann ich das Bild an meinem Arbeits-PC nicht sehen, dank paranoider Filtereinstellungen in unserer Firma. Dürfte ich vorschlagen, dass du für Bilder die DP-eigene Anhang-Funktionalität nimmst. Als Bonus gibt's auch ne kleine Vorschau.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.534 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 1. Dez 2014, 14:30
Ich bin mal so frei
Miniaturansicht angehängter Grafiken
rahmen.png  
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.734 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 1. Dez 2014, 15:12
Ich bin mal so frei
Danke!
Uli Gerhardt
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#8

AW: Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 1. Dez 2014, 16:05
Zitat:
ich meine aber die MessageDlgPos. einfach was mit in den aufruf rein oder so.
Das gibt es so nicht. Wie DeddyH bereits angemerkt hat, muss man dafür den Dialog selbst erzeugen.

Mein geposteter Code zeigt wie.
  Mit Zitat antworten Zitat
Benutzerbild von 010101
010101

Registriert seit: 27. Nov 2014
34 Beiträge
 
#9

AW: Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 1. Dez 2014, 16:12
Delphi-Quellcode:
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, 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;

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
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#10

AW: Titelleiste / Rahmen der MessageDlg ausblenden

  Alt 1. Dez 2014, 16:21
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);
Angehängte Dateien
Dateityp: zip Custom Message Dialog.zip (701,0 KB, 16x aufgerufen)

Geändert von dGeek ( 1. Dez 2014 um 16:32 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 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