घर
Top.Mail.Ru Yandeks.Metrika
मंच: "शुरुआती";
वर्तमान संग्रह: 2018.03.04;
डाउनलोड करें: [xml.tar.bz2];

नीचे

Redo MessageDlg इसी तरह की शाखाएँ खोजें


gog ©   (2016-02-29 16:39) [0]

सभी को अच्छा समय।

Решил создать свое окно сообщений (подобный MessageDlg) где для начала заголовок окна и надписи на кнопках будут выдаваться на национальном языке. В дальнейшем предполагается ввод других изменений в действиях стандартного MessageDlg. Но наткнулся на проблему с самого начала.
Вот текст программы:

इकाई Unit1;

इंटरफेस

का उपयोग करता है
विंडोज, संदेश, SysUtils, वेरिएंट, कक्षाएं, ग्राफिक्स, नियंत्रण, प्रपत्र,
 Dialogs, StdCtrls, MyMessageDlg;

टाइप
TForm1 = वर्ग (TForm)
Button1: TButton;
Button2: TButton;
प्रक्रिया Button1Click (प्रेषक: Tobject);
प्रक्रिया Button2Click (प्रेषक: Tobject);
निजी
{निजी घोषणाएँ}
सार्वजनिक
{सार्वजनिक घोषणाएँ}
अंत;

था
Form1: TForm1;

कार्यान्वयन

{$ R * .dfm}

प्रक्रिया TForm1.Button1 क्लिक करें (प्रेषक: TObject);
शुरू करना
 MessageDlg("Hello", mtInformation, [mbYes, mbNo], 0);
अंत;

प्रक्रिया TForm1.Button2 क्लिक करें (प्रेषक: TObject);
शुरू करना
 GgMessageDlg("Hello", mtInformation, [mbYes, mbNo], 0);
अंत;

समाप्त।

-------------------------------------------------- ------------------

unit MyMessageDlg;

इंटरफेस

का उपयोग करता है
 Windows, Classes, Forms, Dialogs;

resourcestring
 { Georgian message dialog  }

 SGgMsgDlgWarning     = "გაფრთხილება";
 SGgMsgDlgError       = "შეცდომა";
 SGgMsgDlgInformation = "ინფორმაცია";
 SGgMsgDlgConfirm     = "დადასტურება";
{
 SGgMsgDlgSkip        = "ÂÀÌÏÔÏÅÄ";
 SGgMsgDlgReplace     = "ÛÄÝÅÀËÄ";
 SGgMsgDlgDelete      = "ßÀÛÀËÄ";
 SGgMsgDlgYes         = "ÃÉÀá";
 SGgMsgDlgNo          = "ÀÒÀ";
 SGgMsgDlgOK          = "Ok";
 SGgMsgDlgCancel      = "ÃÀáÖÒÄ";
 SGgMsgDlgHelp        = "ÃÀáÌÀÒÄÁÀ";
 SGgMsgDlgHelpNone    = "ÀÒ ÀÒÓÄÁÏÁÓ ÃÀáÌÀÒÄÁÉÓ ×ÀÉËÉ";
 SGgMsgDlgHelpHelp    = "ÀáÌÀÒÄÁÀ";
 SGgMsgDlgAbort       = "ÛÄßÚÅÉÔÄ";
 SGgMsgDlgRetry       = "ÂÀÉÌÄÏÒÄ";
 SGgMsgDlgIgnore      = "&Ignore";
 SGgMsgDlgAll         = "ÚÅÄËÀ";
 SGgMsgDlgNoToAll     = "ÀÒÀ ÚÅÄËÀÓÈÅÉÓ";
 SGgMsgDlgYesToAll    = "ÃÉÀá ÚÅÄËÀÓÈÅÉÓ";
 SGgMsgDlgShow        = "ÌÀÜÅÄÍÄ";
 SGgMsgDlgPrint       = "ÃÀÁÄàÃÄ";
 SGgMsgDlgClipboard   = "ÁÖ×ÄÒÛÉ";
}

टाइप

 TGgMessageForm = class(TForm)
निजी
   procedure HelpButtonClick(Sender: TObject);
सार्वजनिक
   constructor CreateNew(AOwner: TComponent);
अंत;

 TGgMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom);
 TGgMsgDlgBtn = (mbSkip, mbReplace, mbDelete, mbYes, mbNo, mbOK, mbCancel,
                  mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll,
                  mbHelp, mbShow, mbPrint, mbClipboard);
 TGgMsgDlgButtons = set of TGgMsgDlgBtn;

था
 Captions: array[TGgMsgDlgType] of Pointer = (@SGgMsgDlgWarning, @SGgMsgDlgError,
                                              @SGgMsgDlgInformation, @SGgMsgDlgConfirm, nil);

function GgCreateMessageDialog(const Msg: string; DlgType: TGgMsgDlgType;
 Buttons: TGgMsgDlgButtons): TForm;

function GgMessageDlg(const Msg: string; DlgType: TGgMsgDlgType;
                     Buttons: TGgMsgDlgButtons; HelpCtx: Longint): Integer; overload;

कार्यान्वयन

{ TGgMessageForm }

procedure TGgMessageForm.HelpButtonClick(Sender: TObject);
शुरू करना
 Application.HelpContext(HelpContext);
अंत;

constructor TGgMessageForm.CreateNew(AOwner: TComponent);
था
 NonClientMetrics: TNonClientMetrics;
शुरू करना
 inherited CreateNew(AOwner);
 Position:= poScreenCenter;
अंत;

{ GgMessageDlg }

function GgCreateMessageDialog(const Msg: string; DlgType: TGgMsgDlgType;
 Buttons: TGgMsgDlgButtons): TForm;

शुरू करना
 Result := TGgMessageForm.CreateNew(Application);
 with Result do begin

अंत;
अंत;

function GgMessageDlg(const Msg: string; DlgType: TGgMsgDlgType;
 Buttons: TGgMsgDlgButtons; HelpCtx: Longint): Integer; overload;
शुरू करना
 with GgCreateMessageDialog(Msg, DlgType, Buttons) do begin
   Result:= ShowModal;
अंत;
अंत;

समाप्त।

При компиляции выдается ошибка:
There is no overloaded version of "MessageDlg" that can be called with these arguments

Если обработчик Button1Click закомментировать, то все работает.
Помогите разобраться где допускаю ошибку? Ведь имена у функций разные.

Версии: Дельфи ХЕ, Win7.



NoUser ©   (2016-03-01 02:37) [1]

Запиши так:
MessageDlg("Hello", TMsgDlgType.mtInformation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0);

Или у себя в модуле
mtWarning, mtError, ...
mbAbort, mbRetry, ...

के साथ बदलें
gmtWarning, gmtError, ...
gmbAbort, gmbRetry, ..
.

Или не описывай свои
TGgMsgDlgType, TGgMsgDlgBtn, TGgMsgDlgButtons
а используй "готовые"
TMsgDlgType, TMsgDlgBtn, TMsgDlgButtons



gog ©   (2016-03-01 08:41) [2]

धन्यवाद.
Понял суть моей ошибки. Одни и те же имена присвоивал разным переменным



Юрий Зотов ©   (2016-03-01 21:12) [3]

А не заменить ли все это одной строчкой?

MessageBox(...)



Dimka Maslov ©   (2016-03-02 18:39) [4]

और यदि आप फ़ाइल में प्रासंगिक संसाधनों को बाधित करते हैं तो कॉन्सेप्टस और इसे प्रोजेक्ट में जोड़ें?



Rouse_ ©   (2016-03-02 19:34) [5]


> यूरी जोतोव © (01.03.16 21: 12) [3]
> А не заменить ли все это одной строчкой?
>
> MessageBox(...)

Там только 3 кнопки можно показать :)



Германн ©   (2016-03-03 01:05) [6]


> Rouse_ © (02.03.16 19: 34) [5]
>
>
>> यूरी जोतोव © (01.03.16 21: 12) [3]
> > А не заменить ли все это одной строчкой?
>>
> > MessageBox(...)
>
> Там только 3 кнопки можно показать :)
>

А кому-то нужно больше, чем три кнопки? :)



sniknik ©   (2016-03-03 08:34) [7]

हां, और यहां तक ​​कि टिक भी जाता है जैसे "आगे मत पूछो", कभी-कभी।



Германн ©   (2016-03-04 00:58) [8]


> स्निकनिक © (03.03.16 08: 34) [7]
>
> да, и еще галочки типа "не спрашивать в дальнейшем", иногда.
>
>

Тогда гораздо проще написать свой диалог. :)



gog ©   (2016-03-04 10:29) [9]

По тому и пишу свой диалог.
Еще TLabel заменил на THTMLabel, чтобы иметь более богатые возможности форматирования текста (цвет, размер фонта для отдельных слов и т.д).
Но вот не смог понять как в стандартном MessageDlg рисуется белый фон под сообшение (Win7).



Игорь Шевченко ©   (2016-03-04 12:05) [10]


> Но вот не смог понять как в стандартном MessageDlg рисуется
> белый фон под сообшение


RTFS: Dialogs.pas



gog ©   (2016-03-04 13:22) [11]

RTFS: Dialogs.pas
यह क्या है
За основу я и взал Dialogs.pas



Игорь Шевченко ©   (2016-03-04 14:51) [12]


> За основу я и взал Dialogs.pas


И что тебе тогда непонятно ? Там все написано, внутри



gog ©   (2016-03-07 13:11) [13]

Ну не рисуется белый прямоугольник.
Написал такой код (отдельно):

प्रक्रिया TForm1.Button6 क्लिक करें (प्रेषक: TObject);
था
 F: TForm;
आर: टीआरटी;
शुरू करना
 F:= TForm.CreateNew(Application);
 F.Canvas.Brush.Style:= bsSolid;
 F.Canvas.Brush.Color:= clRed;
 R:= Rect(0,0,50,50);
 F.Canvas.FillRect(R);
 F.ShowModal;
F.Free;
अंत;

Форма создается и показывается, но красного прямоугольника там нет. Почему не пойму!
Когда код:

प्रक्रिया TForm1.Button5 क्लिक करें (प्रेषक: TObject);
शुरू करना
 Canvas.Brush.Style:= bsSolid;
 Canvas.Brush.Color:= clRed;
 Canvas.FillRect(Rect(0,0,50,50));
अंत;

для главной формы приложения работает.
Чего то не хватает при создании формы динамически?



Игорь Шевченко ©   (2016-03-07 21:44) [14]

gog ©   (07.03.16 13:11) [13]


> Ну не рисуется белый прямоугольник.


Не в то время рисуешь. Попробуй рисовать в событии OnPaint формы



Германн ©   (2016-03-09 00:20) [15]


> Когда код:
>
> प्रक्रिया TForm1.Button5 क्लिक करें (प्रेषक: TObject);
> शुरू करो
>  Canvas.Brush.Style:= bsSolid;
>  Canvas.Brush.Color:= clRed;
>  Canvas.FillRect(Rect(0,0,50,50));
> अंत;
>
> для главной формы приложения работает.

Не работает этот код  нормально никогда. Да и не может никогда нормально работать.
Ты уж разберись сам с собой что ты хочешь создать? Свой класс или свою форму.



Kilkennycat ©   (2016-03-09 22:53) [16]


> Не работает этот код нормально никогда.

Почему это? до первой перерисовки формы он вполне работает :)



Eraser ©   (2016-03-11 00:08) [17]


> gog © (29.02.16 16:39)

возможно все изобрели до нас? см. TTaskDialog



पन्ने: 1 पूरी शाखा

मंच: "शुरुआती";
वर्तमान संग्रह: 2018.03.04;
डाउनलोड करें: [xml.tar.bz2];

ऊपर









मेमोरी: 0.64 एमबी
समय: 0.033 c
2-1456752598
अफ्रीका का लंगूर
2016-02-29 16:29
2018.03.04
हालत की जाँच


2-1458036962
अफ्रीका का लंगूर
2016-03-15 13:16
2018.03.04
स्पष्ट सेट


2-1456844768
Mishan
2016-03-01 18:06
2018.03.04
एसक्यूएल सवाल


2-1457082837
अतिथि
2016-03-04 12:13
2018.03.04
Outlook में ToutlookApplication और देरी ...


15-1470664634
KSergey
2016-08-08 16:57
2018.03.04
मय लेखन





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский