14. september 2004 - 09:10Der er
11 kommentarer og 1 løsning
Skringer over i MessageDlg
Hej hvad fan... er der galt her
når min MessageDlg kommer frem og jeg siger JA så springer den ned til slut i proceduren uden at udføre noget som helst
procedure TFrmHovde.FormCloseQuery(Sender: TObject; var CanClose: Boolean);//Luk begin CanClose := False; if MessageDlg('Ønsker du at afslutteprogrammet nu ?',mtconfirmation, [mbyes,mbno],0)= mryes then begin Frmopsaetning.RichEdit1.Clear; Frmopsaetning.RichEdit1.Lines.Add('[SETUP]'); Frmopsaetning.RichEdit1.Lines.Add('[STI FOR PLACERING AF SYSINFO FIL]'); Frmopsaetning.RichEdit1.Lines.Add(Frmopsaetning.EDIT3.TEXT); Frmopsaetning.RichEdit1.Lines.Add('[STI FOR POSTPRO FIL (H) ÅBN MAPPE]'); Frmopsaetning.RichEdit1.Lines.Add(Frmopsaetning.EDIT1.TEXT); Frmopsaetning.RichEdit1.Lines.Add('[STI FOR SIDSTE DIR]'); Frmopsaetning.RichEdit1.Lines.Add(Frmopsaetning.EDIT2.TEXT); Frmopsaetning.RichEdit1.Lines.Add('[ÅBN NYESTE FIL AUTOMATISK]'); If Frmopsaetning.CheckBox1.Checked = True Then Frmopsaetning.RichEdit1.Lines.Add('AUTOOPEN = 1') ELSE Frmopsaetning.RichEdit1.Lines.Add('AUTOOPEN = 0');
Frmopsaetning.RichEdit1.Lines.Add('[HUSK SIDSTE DIR]'); If Frmopsaetning.CheckBox1.Checked = True Then Frmopsaetning.RichEdit1.Lines.Add('HUSKDIR = 1') ELSE Frmopsaetning.RichEdit1.Lines.Add('HUSKDIR = 0');
prøv den her.... Application.MessageBox('Ønsker du at afslutte programmet nu ?', 'Navn på programmet', MB_YESNO) = IDNO then CanClose := False; //stone
Jeg har kigget din kode igen, rettet et par fejl (du bruger CheckBox1 to steder) - og jeg synes det virker fint (har placeret komponenterne på min testform, ikke som du, på frmOpsaetning) - desuden bruger jeg "with" for overskuelighedens skyld:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin CanClose := False; if MessageDlg('Ønsker du at afslutte programmet nu ?',mtConfirmation, [mbYes,mbNo],0) = mrYes then begin with RichEdit1 do begin Clear; Lines.Add('[SETUP]'); Lines.Add('[STI FOR PLACERING AF SYSINFO FIL]'); Lines.Add(EDIT3.TEXT); Lines.Add('[STI FOR POSTPRO FIL (H) ÅBN MAPPE]'); Lines.Add(EDIT1.TEXT); Lines.Add('[STI FOR SIDSTE DIR]'); Lines.Add(EDIT2.TEXT); Lines.Add('[ÅBN NYESTE FIL AUTOMATISK]'); Lines.Add('AUTOOPEN = '+BoolToStr(CheckBox1.Checked)); Lines.Add('[HUSK SIDSTE DIR]'); Lines.Add('HUSKDIR = '+BoolToStr(CheckBox2.Checked)); Lines.SaveToFile(PATH); end; CanClose := True; end; end;
Du slipper heller ikke for mine kommentarer:
1. Hvorfor bruger du richedit hvis en TStringList kunne gøre det?
var ParamList : TStringList; begin ParamList := TStringList.Create; try ParamList.Add('[SETUP]'); ParamList.Add('[STI FOR PLACERING AF SYSINFO FIL]'); ParamList.Add(EDIT3.TEXT); ParamList.Add('[STI FOR POSTPRO FIL (H) ÅBN MAPPE]'); ... ParamList.SaveToFile(PATH); finally ParamList.Free; end; end;
2. Hvorfor giver du ikke dine komponenter nogle fornuftige navne. Man kan ikke se om CheckBox1 er ment til at styre AutoOpen eller HuskDir
3. Håber at det er Eksperten der fjerner indrykkene - for ellers kunne du godt gøre lidt mere i det...
nu ser det ud til at det virker, det som fik det til at virke var det forslag som Stone kom med, hvorfor nogle af de andre ikke virker fatter jeg ikke en sk.. af, men mange tak for hjælpen alle sammen
PS stone kan du ikke give et svar således at du kan få dine points ??
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.