AGB  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls den Delphi Code Formatter ins eigene Programm einbinden ...

den Delphi Code Formatter ins eigene Programm einbinden ...

Ein Thema von madtom · begonnen am 23. Mai 2012 · letzter Beitrag vom 23. Mai 2012
Antwort Antwort
madtom

Registriert seit: 24. Feb 2005
Ort: Hamburg
108 Beiträge
 
Delphi XE6 Professional
 
#1

den Delphi Code Formatter ins eigene Programm einbinden ...

  Alt 23. Mai 2012, 21:49
Hallo zusammen,

ich habe ein wenig herumexperimentiert und versucht, den Delphi Code-Formatter in das eigene Programm (eine eigene Codeschnipseldatenbank) zu integrieren.
Ob das allerdings erlaubt ist, habe ich nicht herausbekommen können. Schließlich kann man ihn ja auch aus der Konsole heraus aufrufen.
Es funktioniert soweit ganz gut.

Delphi-Quellcode:
// aus dem SwissDelphiCenter:
function ShellExecuteAndWait(Operation, FileName, Parameter, Directory: string; Show: Word;
  bWait: Boolean): LongInt;
var
  bOK: Boolean;
  ShExecInfo: TShellExecuteInfo;
begin
  FillChar(ShExecInfo, SizeOf(ShExecInfo), Chr(0));
  ShExecInfo.cbSize := SizeOf(ShExecInfo);
  ShExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
  ShExecInfo.lpVerb := PChar(Operation);
  ShExecInfo.lpFile := PChar(FileName);
  ShExecInfo.lpParameters := PChar(Parameter);
  ShExecInfo.lpDirectory := PChar(Directory);
  ShExecInfo.nShow := Show;
  bOK := Boolean(ShellExecuteEx(@ShExecInfo));
  if bOK then
  begin
    if bWait then
    begin
      while WaitForSingleObject(ShExecInfo.hProcess, 100) = WAIT_TIMEOUT do
        Application.ProcessMessages;
      bOK := GetExitCodeProcess(ShExecInfo.hProcess, DWORD(Result));
    end
    else
      Result := 0;
  end;
  if not bOK then
    Result := -1;
end;

procedure TFrmMain.acCodeFormatterExecute(Sender: TObject);
var
  TempFile: string;
  ConfigFile: string;
begin
  Screen.Cursor := crHourGlass;
  try
    TempFile := GetEnvironmentVariable('temp') + PathDelim + 'Temp.pas';
    ConfigFile := 'Formatter.config';
    SynMemo1.Lines.SaveToFile(TempFile);
    if ShellExecuteAndWait('open', ExtractFilePath(Application.ExeName) + 'Formatter.exe',
      ' -delphi -config ' + ConfigFile + ' ' + TempFile, ParamStr(0), SW_HIDE, True) = 0 then
      SynMemo1.Lines.LoadFromFile(TempFile)
    else
      raise SysUtils.Exception.Create('Es ist ein Fehler beim Formatieren aufgetreten.' + #13#10 +
        'Wenden Sie sich bitte an ihren IT-Koordinator.');
    // ShellExecute(Handle, 'open', PChar(ExtractFilePath(Application.ExeName) + 'Formatter.exe'),
    // PChar(' -delphi -config ' + ConfigFile + ' ' + TempFile), nil, SW_HIDE);
    // Sleep(1000);
    // SynMemo1.Lines.LoadFromFile(TempFile);
  finally
    Screen.Cursor := crDefault;
  end;
end;
Beste Grüße
Thomas
Delphi Programming

Geändert von madtom (23. Mai 2012 um 22:09 Uhr)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.452 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: den Delphi Code Formatter ins eigene Programm einbinden ...

  Alt 23. Mai 2012, 22:09
Solange du die Formatter.exe nicht deinem Programm beilegst oder sonstwie weitergibst, sollte es imo kein Problem sein.
  Mit Zitat antworten Zitat
madtom

Registriert seit: 24. Feb 2005
Ort: Hamburg
108 Beiträge
 
Delphi XE6 Professional
 
#3

AW: den Delphi Code Formatter ins eigene Programm einbinden ...

  Alt 23. Mai 2012, 22:11
Meine Programme sind nur für mich - Hobbyprogrammierer.
Thomas
Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
1.596 Beiträge
 
FreePascal / Lazarus
 
#4

AW: den Delphi Code Formatter ins eigene Programm einbinden ...

  Alt 23. Mai 2012, 22:17
Ich stelle mir gerade den armen Admin (in der Rolle des "IT-Koordinator") vor, wenn jemand mit dieser Fehlermeldung ankommt
Zitat:
Es ist ein Fehler beim Formatieren aufgetreten. Wenden Sie sich bitte an ihren IT-Koordinator.
Aber wenn du alle Personen bist, die damit in Kontakt kommen, sollte das ja kein Problem sein
Robert
  Mit Zitat antworten Zitat
madtom

Registriert seit: 24. Feb 2005
Ort: Hamburg
108 Beiträge
 
Delphi XE6 Professional
 
#5

AW: den Delphi Code Formatter ins eigene Programm einbinden ...

  Alt 23. Mai 2012, 22:19
Wie gesagt, da ich mein eigener Admin bin ...
(Sollte nur wichtig klingen ...)
Thomas
Delphi Programming
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2014 by Daniel R. Wolf