Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi EditConnectionString: Wie ModalResult abfragen? (https://www.delphipraxis.net/103388-editconnectionstring-wie-modalresult-abfragen.html)

HeikoAdams 15. Nov 2007 07:22


EditConnectionString: Wie ModalResult abfragen?
 
Hallo,
ich nutze für das Generieren eines Ado Connectionstrings die Funktion EditConnectionString. Allerdings habe ich das Problem, das man anscheinend nicht herausbekommen kann, ob der Dialog über OK oder Abbrechen verlassen wurde. :wiejetzt:
Hat jemand eine Idee, wie dies zu bewerkstelligen ist?

marabu 15. Nov 2007 07:55

Re: EditConnectionString: Wie ModalResult abfragen?
 
Hallo Heiko,

ist es nicht so, dass die Funktion True zurückliefert, wenn sie nicht abgebrochen wurde?

Grüße vom marabu

HeikoAdams 15. Nov 2007 08:02

Re: EditConnectionString: Wie ModalResult abfragen?
 
Nein, wenn abgebrochen wird, wird der original Connectionstring unverändert zurückgegeben. Das nützt mir aber nichts, weil es ja auch sein kann, das der User einen bestehenden Connectionstring unverändert übernimmt.

Delphi-Quellcode:
function EditConnectionString(Component: TComponent): Boolean;
var
  PropInfo: PPropInfo;
  NewConnStr,
  InitialConnStr: WideString;
begin
  Result := False;
  with TConnEditForm.Create(Application) do
  try
    Caption := Format(SEditConnectionStringTitle, [Component.Owner.Name, DotSep,
    Component.Name, SConnectionString]);
    PropInfo := GetPropInfo(Component.ClassInfo, SConnectionString);
    InitialConnStr := GetStrProp(Component, PropInfo);
    NewConnStr := Edit(InitialConnStr);
    if NewConnStr <> InitialConnStr then
    begin
      SetStrProp(Component, PropInfo, NewConnStr);
      Result := True;
    end;
  finally
    Free;
  end;
end;

function TConnEditForm.Edit(ConnStr: WideString): WideString;
var
  FileName: string;
begin
  Result := ConnStr;
  UseDataLinkFile.Checked := True;
  if Pos(CT_FILENAME, ConnStr) = 1 then
  begin
    FileName := Copy(ConnStr, Length(CT_FILENAME)+1, MAX_PATH);
    if ExtractFilePath(FileName) = (DataLinkDir + '\') then
      DataLinkFile.Text := ExtractFileName(FileName) else
      DataLinkFile.Text := FileName;
  end else
  begin
    ConnectionString.Text := ConnStr;
    UseConnectionString.Checked := True;
  end;
  SourceButtonClick(nil);
  if ShowModal = mrOk then
    if UseConnectionString.Checked then
      Result := ConnectionString.Text
    else if DataLinkFile.Text <> '' then
    begin
      if ExtractFilePath(DataLinkFile.Text) = '' then
        Result := CT_FILENAME + DataLinkDir + '\' +DataLinkFile.Text else
        Result := CT_FILENAME + DataLinkFile.Text
    end
    else
      Result := '';
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz