D. Annies - Mi 10.11.10 20:10
Titel: Button-enabled auf false setzen?
Hi, Delpher,
ich prüfe in einer Routine, ob Excel, Word oder OpenOffice auf der Platte vorhanden ist.
Wenn diese Prüfung negativ ist, wird bei den zugehörigen PopupItems-Enabled auf false gesetzt.
Klappt alles bestens, was mir aber Probleme bereitet, ist, den Button in dem folgenden Code,
wenn z.B OpenOffice nicht vorhanden ist, dann auch für diesen Button-enabled gleich auf false zu setzen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TBuchMain.starte_TabellenkalkPrg(sender:Tobject); var LoadParams : variant; erg : integer; begin excel_gewuenscht := false; opoffck_gewuenscht := false; erg := xMessageDlg(fname+#13+ ' mit Excel ansehen oder mit OpenOfficeCalc? ', mtConfirmation, [mbYes, mbNo, mbcancel], ['Excel', 'OpOffCalc', 'Abbrechen'], self.font); case erg of mryes : excel_gewuenscht := true; mrno : opoffck_gewuenscht := true; mrcancel : EXIT; end;
|
Danke für Ideen, sagt
Detlef
kleiner Nachtrag, Code von function xmessagedlg
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| function TBuchMain.xMessageDlg(const Msg: string; DlgType : TMsgDlgType; Buttons : TMsgDlgButtons; Captions: array of string; myFont:TFont) : Integer; var aMsgDlg : TForm; CaptionIndex, i : integer; dlgButton : TButton; begin aMsgDlg := CreateMessageDialog(Msg, DlgType, buttons); aMsgDlg.Font.style := []; aMsgDlg.setbounds(300,520,650,200); CaptionIndex := 0; for i := 0 to aMsgDlg.ComponentCount - 1 do begin if (aMsgDlg.Components[i] is TButton) then begin dlgButton := TButton(aMsgDlg.Components[i]); dlgButton.Left := 100*(i-2) + 10*(i+1); dlgbutton.width := 100; if CaptionIndex > High(Captions) then Break; dlgButton.Caption := Captions[CaptionIndex]; Inc(CaptionIndex); end; end; Result := aMsgDlg.ShowModal; end; |
Nützt das etwas?