use*_*414 0 delphi android showmodaldialog
我收到编译错误"[DCC错误] FormMain.pas(78):E2029'.' 预期,但';' 发现"但我不知道问题出在哪里因为我直接从http://blog.marcocantu.com/blog/xe5_anonymous_showmodal_android.html复制了这个, 我使用这种代码:
procedure TForm1.ButtonMuutaClick(Sender: TObject);
var FormTiedot :TFormTiedot;
begin
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('SELECT * FROM Laskuttaja WHERE ID=:ID');
FDQuery1.ParamByName('ID').AsString := '1';
FDQuery1.Open();
FDQuery1.First;
FormTiedot := TFormTiedot.Create(nil);
while(not FDQuery1.Eof) do begin
FormTiedot.EditNimi.Text := FDQuery1.FieldByName('Nimi').AsString;
FormTiedot.EditOsoite.Text := FDQuery1.FieldByName('Osoite').AsString;
FormTiedot.EditY.Text := FDQuery1.FieldByName('Ytunnus').AsString;
FDQuery1.Next;
end;
FormTiedot.ShowModal(procedure(ModalResult: TModalResult) begin if ModalResult = mrOK then begin
// if OK was pressed and an item is selected, pick it
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('UPDATE Laskuttaja SET Nimi = '+QuotedStr(FormTiedot.EditNimi.Text)+', Osoite = ' + QuotedStr(FormTiedot.EditOsoite.Text) + ', Ytunnus=' + QuotedStr(FormTiedot.EditY.Text));
FDQuery1.SQL.Add('WHERE ID=1');
FDQuery1.ExecSQL;
end;
FormTiedot.DisposeOf;
end);
//FormTiedot.DisposeOf;
//if FormTiedot.ShowModal = mrOk then begin
//FDQuery1.SQL.Clear;
// FDQuery1.SQL.Add('UPDATE Laskuttaja SET Nimi = '+QuotedStr(FormTiedot.EditNimi.Text)+', Osoite = ' + QuotedStr(FormTiedot.EditOsoite.Text) + ', Ytunnus=' + QuotedStr(FormTiedot.EditY.Text));
// FDQuery1.SQL.Add('WHERE ID=1');
//FDQuery1.ParamByName('Nimi').Value := FormTiedot.EditNimi.Text;
//FDQuery1.ParamByName('Osoite').Value := FormTiedot.EditOsoite.Text;
//Error Y-tunnus not found here
//FDQuery1.ParamByName('Ytunnus').Value := FormTiedot.Edit1.Text;
end;
end;
Run Code Online (Sandbox Code Playgroud)
你end在代码中有一个迷路.penulatimate end匹配begin方法.应删除最后一个.
如果你查看你注释掉的代码,你注释掉了一个begin但没有注释掉匹配的代码end.
//if FormTiedot.ShowModal = mrOk then begin !! commented out begin !!
//FDQuery1.SQL.Clear;
// FDQuery1.SQL.Add('UPDATE Laskuttaja SET Nimi = '+QuotedStr(FormTiedot.EditNimi.Text)+', Osoite = ' + QuotedStr(FormTiedot.EditOsoite.Text) + ', Ytunnus=' + QuotedStr(FormTiedot.EditY.Text));
// FDQuery1.SQL.Add('WHERE ID=1');
//FDQuery1.ParamByName('Nimi').Value := FormTiedot.EditNimi.Text;
//FDQuery1.ParamByName('Osoite').Value := FormTiedot.EditOsoite.Text;
//Error Y-tunnus not found here
//FDQuery1.ParamByName('Ytunnus').Value := FormTiedot.Edit1.Text;
end; !! and the matching end is not commented !!
Run Code Online (Sandbox Code Playgroud)
你说"我直接从中复制了"这有点奇怪,实际上这里的代码与你链接的代码几乎没有明显的关系.显然你没有直接复制它 - 你必须注意到你编辑它,评论部分等等.
代码的不良缩进使您很难检测到错误.您始终可以要求IDE格式化您的代码,它将修复您的缩进.这很好地说明了为什么仔细布局代码很重要.
| 归档时间: |
|
| 查看次数: |
4077 次 |
| 最近记录: |