Hallo,
Was ist der CCX compiler?
Du versuchst einen MessageDlg anzuzeigen, die Parameter übergibst Du als String und der Vergleichs-Ausdruck der If-Anweisung ist auch ein String.
Daher die Fehlermeldungen.
Mindforce hat folgendes geschrieben: |
| Wie kann ich das ändern? |
Am besten Du schreibst Dir einige Funktion, dessen Rückgabewert vom entsprechenden Typ ist,
also:
Delphi-Quelltext
1: 2: 3: 4:
| function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: integer): Word; |
OIForm.button1quell_mass.Text >> const Msg: string = ok
(OIForm.button1quell_mass_1.text) >> DlgType: TMsgDlgType = Fehler
>> Inkompatible Typen: 'TMsgDlgType' und 'TCaption'
>> String in TMsgDlgType umwandeln, z.B.:
Delphi-Quelltext
1: 2: 3: 4: 5:
| function StrToMsgDlgType(s: String): TMsgDlgType; begin if s = 'mtWarning' then Result := mtWarning else if s = 'mtError' then Result := mtError |
[(OIForm.button1quell_mass_2.text)] >> Buttons: TMsgDlgButtons = Fehler
>> Ordinaltyp erforderlich
>> TMsgDlgButtons ist ein set(Menge), die Werte sind Ordinaltypen
>> String(s) in set umwandeln, z.B.:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| function StrToMsgDlgButtons(aCLB: TCheckListBox): TMsgDlgButtons; begin Result := []; if Pos('mbYes',s) > 0 then Result := Result + [mbYes]; if Pos('mbNo',s) > 0 then Result := Result + [mbNo]; |
(OIform.button1quell_mass_3.text) mit Word; vergleichen = Fehler
>> Inkompatible Typen: 'string' und 'Integer'
mrNone, mrOk... sind definierte Integer-Konstanten
>> String in entsprechende Konstanten umwandeln, z.B.:
Delphi-Quelltext
1: 2: 3: 4: 5:
| function StrToMessageDlgResult(s: String): Word; begin if s = 'mrNone' then Result := mrNone else if s = 'mrOk' then Result := mrOk |
Der Aufruf würde dann in etwa so aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5:
| if MessageDlg('Es funktioniert', StrToMsgDlgType('mtWarning'), StrToMsgDlgButtons('mbYes mbNo'),0) = StrToMessageDlgResult('mrYes') then ; |