![]() |
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 |
Re: Farbe von showmessage ändern
Du wirst um eine eigene Form nicht drumrumkommen.
|
Re: Farbe von showmessage ändern
Ok danke,
dann werde ich das dynamisch erstellen ist auch eine möglichkleit. Mfg ReDoX |
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:
Ich hoffe jemand kann sie gebrauchen!
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. Mfg ReDoX |
Re: Farbe von showmessage ändern
Zitat:
Aber was ist mir Zeilenumbrüchen und dem netten Error oder Infozeichen? |
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 |
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 |
Re: Farbe von showmessage ändern
Moin!
Zitat:
![]() MfG Muetze1 |
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 |
Re: Farbe von showmessage ändern
Zitat:
Delphi-Quellcode:
with MessageForm do
Delphi-Quellcode:
und schon ist MessageForm verschwunden.
with TForm1.Create(Nil) do
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr. |
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