MessageDlg česky? – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

MessageDlg česky? – Delphi – Fórum – Programujte.comMessageDlg česky? – Delphi – Fórum – Programujte.com

 

Sebix0
Duch
18. 9. 2008   #1
-
0
-

Nevíte jak udělat MessageDlg česky?Jde o to, aby se místo názvu YES,NO,Cancel v buttonu v MessageDlg zobrazilo např. ANO, NE. Prostě česky. Nechtěl bych to, pokud je to možné řešit pomocí dalšího Formuláře, ale třeba pomocí jiného Message se třemi buttony.
Děkuji
Petr

Nahlásit jako SPAM
IP: 217.115.252.–
Makovec
~ Anonymní uživatel
1 příspěvek
19. 9. 2008   #2
-
0
-

Já to mám řešený přímo v unitě Dialogs.pas

mám nadefinováno:
Hlavicky: array[TMsgDlgType] of string = ('Varování', 'Chyba',
'Informace', 'Volba','');
ButtonNames: array[TMsgDlgBtn] of string = (
'Ano', 'Ne', 'OK', 'Storno', 'Abort', 'Opakuj', 'Ignorovat', 'Všechny', 'Ne všem','Ano všem','Pomoc');
CaptionNames: array[TMsgDlgBtn] of string = (
'&Ano', '&Ne', '&OK', '&Storno', '&Ano', '&Opakuj', '&Ignorovat', '&Všechny','&Ne všem','&Ano všem', '&Pomoc');

Dále pak je přepsán původní kód "LoadResString(Captions[DlgType])" na Caption := Hlavicky[DlgType] a "LoadResString(ButtonCaptions[B])" na Caption := CaptionNames[B];
Pro multilang aplikace to má nevýhodu,že budou popisy vždy česky.

Existují i jiná řešení

Nahlásit jako SPAM
IP: 78.156.128.–
Sebix0
Duch
22. 9. 2008   #3
-
0
-

Děkuji,děkuji.
Já se tedy přiznám, že s tímto postupem trochu bojuji. Ještě holt nejsem v delphi takový profík. Skromně se zeptám, zda by nebyl jaksi jednodušší postup? A nebo ten předchozí návod "srozumitelněji" popsán i pro amatéra jako jsem já? :) Pokud to nelze jinak, budu s tím bojovat dál a snad na to příjdu ;)
Děkuji
Petr

Nahlásit jako SPAM
IP: 217.115.252.–
Honzc0
Stálý člen
20. 11. 2008   #4
-
0
-

Jiný způsob-definování svého dialogu

v sekci type nadeklarovat tuto funkci

function MujMessageDlg(const Title:String; const Msg:String; DlgType:TMsgDlgType; Buttons:TMsgDlgButtons; DefButton:Integer; HelpCtx:Longint; X,Y:Integer): Integer;

a v sekci implementation ji nadefinovat (Pokud se tedy pracuje s Form1-jinak tam dát název hlavního formuláře)

function TForm1.MujMessageDlg(const Title:String; const Msg:String; DlgType:TMsgDlgType; Buttons:TMsgDlgButtons;DefButton:Integer; HelpCtx:Longint; X,Y:Integer): Integer;
var cnt : Integer;
btn : TButton;
begin
with CreateMessageDialog(Msg, DlgType, Buttons) do
try
Caption := Title;
HelpContext := HelpCtx;
Left := X;
Top := Y;
{Font.Color := clRed; //tyto hodnoty jsou uvedeny jako poznámky pokud by jsi
// chtěl měnit barvu,velikost fontu atd. tak
//vymazat složené závorky
Font.Size := 7;
Font.Style := [fsBold];
Font.Color := clRed;
Font.Name := 'Verdana';}
for Cnt := 0 to ComponentCount - 1 do
begin
if Components[Cnt] is TButton then
begin
Btn:= TButton(Components[Cnt]);
Btn.Default := Btn.ModalResult = DefButton;
if Btn.Caption = '&Yes' then Btn.Caption := '&Ano';
if Btn.Caption = '&No' then Btn.Caption := '&Ne';
if Btn.Caption = 'Cancel' then Btn.Caption := '&Storno';//'Zavří&t';
if Btn.Caption = '&Abort' then Btn.Caption := '&Ukončit';
if Btn.Caption = '&Retry' then Btn.Caption := '&Znovu';
if Btn.Caption = '&Help' then Btn.Caption := 'Nápově&da';
if Btn.Caption = '&All' then Btn.Caption := '&Vše';
if Btn.Caption = '&Ignore' then Btn.Caption := '&Ignorovat';
if Btn.Default then ActiveControl := Btn;
end;
end;
Result := ShowModal;
finally
free;
end;
end;

a tady je použití při klikutí na Button1

procedure TForm1.Button1Click(Sender: TObject);
begin
if MujMessageDlg('Náze okna', 'Zpráva co? ', mtConfirmation, [mbYes,mbNo], mrYes, 0,Form1.Left+100,Form1.Top+50) = mrYes then
begin
co se má provést (příkazy);
end;
end;

Název okna - to co bude napsáno v hlavičce zprávy
Zpráva co? - text zprávy
mtConfirmation-jaká bude ikonka u zprávy (tady je otazník) další možné jsou
mtInformation (vykřičník)
mtError (křížek)
[mbYes,mbNo] - tlačítka Ano Ne (je možné tam dát samozřejmě i ta ostatní nadefinovaná)
mrYes - defaultní tlačítko (na kterém je po objevení zprávy fokus)
0 - žádný help
Form1.Left+100,Form1.Top+50 - levý horní roh zprávy bude na pozici 100 pixelů nalevo a 50 níže než levý horní roh hlavního formuláře

Nahlásit jako SPAM
IP: 85.207.57.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

Free RS česky — založil fuha

Datum česky — založil Pavel

ICQ konečně česky — založil DeaLer

Z apache na cesky-hosting — založil eda

Datum a čas - český — založil Lighter

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý