Utils.pas

Zur Vorstellung von Komponenten und Units für Lazarus
Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ich hab mal die Utils aktualisiert und meine SecureUtils mit eingefügt, mal was für die Paranoiden unter uns ;) darin gibts Routinen zum Sicheren löschen von Dateien. Unter Windows hab ich bisher keine Datenrettungssoftware gefunden mit der man eine so gelöschte Datei auch nur teilweise wiederherstellen konnte. An der höchsten Sicherheitsstufe dürften sich auch Datenrettungsunternehmen schwer tun allerdings kann ich das nicht mit Sicherheit sagen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Utils.pas

Beitrag von Christian »

Ich hab die versionen mal aktualisiert.
In der Utils.pas gibts jetzt eine Routine die i18N etwas netter macht.

LoadLanguage('Deutsch');

Lädt alle po files die nach dem shema *.de.po im ordner languages im Applikationsverzeichnis sind.
Des guten nicht genug übersetzt sie auch gleich alle Komponenten im projekt "on the fly".

es werden immer die ersten beiden Buchstaben der übergebenen sprache genommen und .po angehängt um die Dateimaske zu bekommen.
So kann z.b. die lclstrconsts, die eigenen i18n files und die lazreport i18n files in einem rutsch übersetzt werden und das ohne
das programm neuzustarten.

Die processutils sind auch überarbeitet es wird nun utf-8 komplett unterstützt und einige Eigenschaften sind hinzugekommen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Re: Utils.pas

Beitrag von EugenE »

Hey Christian,

ich nutze deine Utils.pas unter Windows als unter Kubuntu 9.04 seit kurzem.

Wenn ich die Funktion OpenBrowser aufrufe bekomme ich diesen Fehler:

Could not find xterm.

Ich habe versucht es mit dem Debugger nachzugehen. Und beim Debuggen kam es nicht mal zu diesem Aufruf:

cmd := 'kfmclient openURL %s';

dieser würde ja funktionieren aber wie gesagt bis dahin kommt es nicht mal.

Hast du vielleicht eine neue Version oder weißt du wie man diesen Bug behebt?

MfG,
Eugen

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Utils.pas

Beitrag von pluto »

Could not find xterm.

Sicher das, dass von der Unit kommt ? und nicht wegen deinem Projekt ?
Schau doch mal unter Projekt\Startparamenter

Ich meine das der Browser über ein RegEdit Eintrag unter Windows auslesen wird. Also würde "xterm" für mich hier kein Sinn ergeben.
Hast du das mal in einem neuen Projekt versucht ?
MFG
Michael Springwald

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Re: Utils.pas

Beitrag von EugenE »

Der Fehler ist unter Kubuntu 9.04, unter Windows läuft es ja

Highfrietscher
Beiträge: 3
Registriert: Mi 17. Feb 2010, 10:39

Re: Utils.pas

Beitrag von Highfrietscher »

Habe ein Problem mit der Unit Utils.pas und zwar mit der function OpenBrowser(Site : string) : Boolean;

Code: Alles auswählen

procedure TForm1.MenuItem14Click(Sender: TObject);
begin
  OpenBrowser('www.google.de');
end;

Lazarus v0.9.28.2 ist meine Entwicklundsumgebung.
OS: Windows XP -> IE6 , Vista -> IE8

Und zwar möchte ich ein Browserfenster aufrufen und gleichzeitig die definierte Seite starten.

Wenn nun der Internet Explorer der Standardbrowser ist, wird zwar der internet Explorer gestartet, aber es wird keine Seite aufgerufen. Es steht nichts in der Adressleiste. Probiert unter XP und Vista IE6 und IE8.
Schalte ich nun um auf Firefox als Standardbrowser , funktioniert das ohne Probleme.

Rufe ich das ganze, statt mit der function OpenBrowser der Unit Utils.pas mit folgender auf, funktioniert es auch mit dem Internet Explorer.

Code: Alles auswählen

procedure TForm1.MenuItem17Click(Sender: TObject);
begin
  ShellExecute(Handle, 'OPEN', 'http://www.google.de', nil, nil, SW_SHOWNORMAL);
end;


Auch mit diesem Quellcode funktioniert es mit Internet Explorer.

Code: Alles auswählen

procedure TForm1.MenuItem10Click(Sender: TObject);
var
  v: THTMLBrowserHelpViewer;
  BrowserPath, BrowserParams: string;
  p: LongInt;
  URL: String;
  BrowserProcess: TProcessUTF8;
begin
  v:=THTMLBrowserHelpViewer.Create(nil);
  try
    v.FindDefaultBrowser(BrowserPath,BrowserParams);
    debugln(['Path=',BrowserPath,' Params=',BrowserParams]);
 
    URL:='http://www.google.de';
    p:=System.Pos('%s', BrowserParams);
    System.Delete(BrowserParams,p,2);
    System.Insert(URL,BrowserParams,p);
 
    // start browser
    BrowserProcess:=TProcessUTF8.Create(nil);
    try
      BrowserProcess.CommandLine:=BrowserPath+' '+BrowserParams;
      BrowserProcess.Execute;
    finally
      BrowserProcess.Free;
    end;
  finally
    v.Free;
  end;
end;

Antworten