mere kontrol af messagedlg

,, messagedlg funktion er meget nyttig, fordi den behandler alle wordwrapping af budskabet og håndtag til placering af knapper.men to forskellige behov for en ikke - automatisk behavoir af messagedlg gjorde mig undersøge sourcecode af dialoger - enhed.denne artikel, der oprindeligt var opført på, www.undu. kom,,, jeg havde brug for en modal dialogbox, som vil lukke, når nøglen var presset, og rapportere, hvad nøglen var presset.ligesom de turbopascal kommandoer, hvis keypressed så nøglen: = readkey.,,, jeg havde brug for at kontrollere, hvilke af de knapper i dialogen var misligholdelse.hvis du har en messagedlg spørger, "gør du virkelig ønsker at slette filen?"så har de jo knap som misligholdelse (som er standard i messagedlg) kunne skabe problemer for den meget ivrig bruger.,,, dialoger - enhed har en funktion, kaldet createmessagedialog, som anvendes af messagedlg at gøre dialogen.ved hjælp af createmessagedialog direkte du få det bedste ud af messagedlg (wordwrapping og andre automatiske designelements) plus du få mere kontrol med opførelsen af dialogen.,,, nedenfor er vist min løsning på de to behov.,,, skabe en ny ansøgning.sæt to knapper og en etiket på formularen.tildele onclick tilfælde af button1 til tform1.button1click og tildele onclick tilfælde af button2 til tform2. button2click.,,, du button1 vil nu udarbejde en dialog, der lukker, når brugeren trykker på en af de "juridisk nøgler" eller, når brugeren trykker esc - eller klik et ikon.den nøgle, der blev presset vil blive vist i label1.,,, du button2 vil vise en standardmeddelelse dialog med én forskel: ingen knap er misligholdelse, ikke ja - knappen.at finde den knap, jeg bruger, hvis tbutton (kontrol [n]). navn = »nej«.i stedet for "nej" med "yestoall,'abort eller nogen af de andre knap en tekst til en knap misligholdelse.,,, enhed enhed1;,, grænseflade, anvender, vinduer, beskeder, sysutils, klasser, grafik, kontrol, formularer, dialoger, stdctrls,,,,,,,,, tform1 = klasse (tform), button1: tbutton;,, label1: tlabel;,, button2: tbutton;,, procedure button1click (afsender: tobject);,, procedure helpboxkeypress (afsender: tobject; var centrale: char);,, procedure button2click (afsender: tobject), private, {private erklæringer), offentlige, {offentlige erklæringer},,,,,, var, form1: tform1;,,, gennemførelse,,, ($r *. dfm},,, var, legalkeys: string;,,, procedure tform1. button1click (afsender: tobprojekt);,, var, s: string;,, begynder, legalkeys: ='abc123 «, s = hvad vil du gøre nu?+ +, a. gå hjem "+ +," b. spise frokost "= +, c. sov + +," 1.programmet i delphi + +, 2.bestil en pizza '+ +, "3.Nothing';,,, WITH CreateMessageDialog(s, mtConfirmation, []) DO,, BEGIN,, try,, onKeyPress:=HelpBoxKeyPress;,, IF ShowModal=mrOK,, THEN Label1.Caption:='You pressed: '+LegalKeys[Tag],, ELSE Label1.Caption:='You pressed: '+'Cancel';,, finally,, Free;,, end; //try..finally,, END; //with,, end;,,, procedure TForm1.HelpBoxKeyPress(Sender: TObject; var Key: Char);,, BEGIN,, IF Pos(UpCase(Key),LegalKeys)>0 THEN,, BEGIN,, TForm(Sender).Tag:=Pos(UpCase(Key),LegalKeys);,, TForm(Sender).ModalResult:=mrOK;,, END,, ELSE IF Key=#27 THEN TForm(Sender).ModalResult:=mrCancel;,, END;,,, procedure TForm1.Button2Click(Sender: TObject);,, VAR,, n:Integer;,, begin,, WITH CreateMessagedialog (have - gjort, du virkelig ønsker at slette filen?, mtwarning [mbyes, mbno]), begynder, for n = 0 controlcount-1, hvis (kontrol [n] er tbutton), hvis tbutton (kontrol [n]). navn = »nej«, så tbutton (kontrol [n]). taborder: = 0. showmodal,,,,,,,,,,,,,,,,, udgangen.



Previous:
Next Page: