Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Farbe von showmessage ändern (https://www.delphipraxis.net/40287-farbe-von-showmessage-aendern.html)

ReDoX 13. Feb 2005 18:08


Farbe von showmessage ändern
 
Hallo,
ist es möglich die hintergrund farbe von einer Messsagbox zu ändern :gruebel:?
Klar man könnte sich eine eigene Form machen aber genau das möchte ich nicht.
Mfg ReDoX

Luckie 13. Feb 2005 18:43

Re: Farbe von showmessage ändern
 
Du wirst um eine eigene Form nicht drumrumkommen.

ReDoX 13. Feb 2005 18:48

Re: Farbe von showmessage ändern
 
Ok danke,
dann werde ich das dynamisch erstellen ist auch eine möglichkleit.
Mfg ReDoX

ReDoX 13. Feb 2005 23:18

Re: Farbe von showmessage ändern
 
Ich habe mich hingesetzt und eine procedure geschrieben :coder: die genau das macht was ich brauche.
Sie heißt CustumMessage und passt sich dynamisch an die länge des Textes an.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XPMan, ColorGrd;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ColorGrid1: TColorGrid;
    XPManifest1: TXPManifest;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure MessageButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var    
Form1: TForm1;
  MessageForm : Tform;
implementation

{$R *.dfm}

procedure CustomMessage(Text: string; FormColor, LabelColor: TColor);
var
  Messagelabel: TLabel;
  MessageButton: TButton;
begin
  MessageForm := TForm.Create(nil);
  Messagelabel := TLabel.Create(nil);
  MessageButton := TButton.Create(nil);

  with MessageForm do
   begin
    Color  := FormColor;
    Caption := application.Title;
    SetBounds((Screen.Width - MessageForm.Width) div
     2, (Screen.Height - MessageForm.Height) div 2,MessageForm.Width,
      MessageForm.Height);
    BorderIcons := [biSystemMenu];
    BorderStyle := bsdialog;
    Height     := 110;
   end;


  with Messagelabel do
   begin
    Caption   := Text;
    Font.Color := LabelColor;
    Parent    := MessageForm;
    Top       := 15;
   end;

  with MessageButton do
   begin
    Caption := 'OK';
    Parent := MessageForm;
    Top    := 40;
    OnClick := Form1.MessageButtonClick;
   end;

  MessageForm.Width := 75 + MessageLabel.Width;
  MessageButton.Left := MessageForm.Width div 2 - Messagebutton.Width div 2;
  MessageLabel.Left := MessageForm.Width div 2 - MessageLabel.Width div 2;
  MessageForm.ShowModal;
  FreeAndNil(MessageForm);
end;

procedure TForm1.MessageButtonClick(Sender: TObject);
begin
  MessageForm.ModalResult := 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
CustomMessage(edit1.text,ColorGrid1.ForegroundColor,ColorGrid1.BackgroundColor);
end;

end.
Ich hoffe jemand kann sie gebrauchen!
Mfg ReDoX

Rastaman 13. Feb 2005 23:23

Re: Farbe von showmessage ändern
 
Zitat:

Ich hoffe kann sie gebrauchen!
:roll:

Aber was ist mir Zeilenumbrüchen und dem netten Error oder Infozeichen?

Muetze1 13. Feb 2005 23:30

Re: Farbe von showmessage ändern
 
Moin!

Anmerkungen zum Code:

- Warum übergibst du MessageLabel und MessageButton nicht einfach MessageForm damit diese dann von der Form freigeben werden?
- Wo gibst du die Form wieder frei?
- Warum nutzt du nicht ModalResult bei dem Button mit einer Voreinstellung auf mrOk um die Form zu schliessen, so dass du dir die globale (!!!) Variable MessageForm sparen und diese lokal definieren?
- Warum gibst du die Form nicht direkt nach dem ShowModal wieder frei? Danach ist die Form geschlossen, etc

MfG
Muetze1

ReDoX 13. Feb 2005 23:44

Re: Farbe von showmessage ändern
 
@ Gerrit89:
Ich habe oben gesagt das es sich um eine variante von showmessage handelt.

@ Muetze1:
:oops: Ich habe sie freigeben vergessen :wall:
Was ist daran so schlecht einen globale variable zu erzeugen?
Mfg ReDoX

Muetze1 14. Feb 2005 00:19

Re: Farbe von showmessage ändern
 
Moin!

Zitat:

Zitat von ReDoX
Was ist daran so schlecht einen globale variable zu erzeugen?

Pro/Contra globale Variablen

MfG
Muetze1

ReDoX 14. Feb 2005 09:17

Re: Farbe von showmessage ändern
 
Ok ich habe die Procedure jetzt verändert Ich verstehe trotzdem nicht wie ich das ohne eine global Variable schaffen soll? :duck:
Mfg ReDoX

Jens Schumann 14. Feb 2005 10:27

Re: Farbe von showmessage ändern
 
Zitat:

Zitat von ReDoX
Ok ich habe die Procedure jetzt verändert Ich verstehe trotzdem nicht wie ich das ohne eine global Variable schaffen soll? :duck:
Mfg ReDoX

Schreib doch mal anstatt
Delphi-Quellcode:
with MessageForm do
Delphi-Quellcode:
with TForm1.Create(Nil) do
und schon ist MessageForm verschwunden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz