Lazarus'ta aktif kullanıcı adını almak

Kylix, Lazarus, Freepascal ile ilgili konuları buraya yazabilirsiniz.
Cevapla
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Lazarus'ta aktif kullanıcı adını almak

Mesaj gönderen kafkasyali »

Lazarus'ta aktif kullanıcı adını Linux'ta almam mümkün müdür?

Yani;

Kod: Tümünü seç

/home/ahmet
/home/mustafa
gibi.

Ya da GetCurrentDir kullanarak

Kod: Tümünü seç

home/ahmet/klasor/ikinciklasor/ucuncuklasor
dizesinden sadece

Kod: Tümünü seç

home/ahmet
kısmını çıkartmam mümkün müdür?
visualbasic.stupid:=true;
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Re: Lazarus'ta aktif kullanıcı adını almak

Mesaj gönderen selimr »

Ya da GetCurrentDir kullanarak
KOD: TÜMÜNÜ SEÇ
home/ahmet/klasor/ikinciklasor/ucuncuklasor

dizesinden sadece
KOD: TÜMÜNÜ SEÇ
home/ahmet

kısmını çıkartmam mümkün müdür?
aslında bu lazarusla direk ilgilide değil.. aynı delphide olduğu gibi ikinci / olan yerin kaçıncı eleman olduğunu bulur sonrada oraya kadar olan kısmı alabilirsin
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Re: Lazarus'ta aktif kullanıcı adını almak

Mesaj gönderen kafkasyali »

Teşekkür ederim çok sağolun. Fakat aktif geliştirici değilim. Kendimce ufak tefek uygulamalar yapıyorum. Gösterdiğiniz yolu bir örnekle açıklamanız mümkün müdür?
visualbasic.stupid:=true;
mozturkgss
Üye
Mesajlar: 58
Kayıt: 04 Tem 2007 04:33

Re: Lazarus'ta aktif kullanıcı adını almak

Mesaj gönderen mozturkgss »

Aşağıdaki şekilde çalıştırabilirsin. Windowsta denedim çalıştı ama linuxta denemedim.

Kod: Tümünü seç

unit Unit1; 

{$mode objfpc}{$H+}

interface

uses
  {$ifdef mswindows}
  Windows,
  {$endif}
  Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    function GetUserPath: string;
  private
    { private declarations }
  public
    { public declarations }
  end; 

var
  Form1: TForm1; 

implementation

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(GetUserPath);
end;

function TForm1.GetUserPath:string;
{$ifdef mswindows}
var PIDL : PItemIDList;
    Folder : array[0..MAX_PATH] of Char;
const CSIDL_APPDATA = $001A;
{$endif}
begin
{$ifdef mswindows}
  SHGetSpecialFolderLocation(0, CSIDL_APPDATA, PIDL);
  SHGetPathFromIDList(PIDL, Folder);
  Result := Folder;
{$endif}
{$ifdef unix}
  Result := ExpandFileName('~/');
{$endif}
end;

initialization
  {$I unit1.lrs}

end.
mozturkgss
Üye
Mesajlar: 58
Kayıt: 04 Tem 2007 04:33

Re: Lazarus'ta aktif kullanıcı adını almak

Mesaj gönderen mozturkgss »

Pardus da denedim sonuç başarılı :D
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Re: Lazarus'ta aktif kullanıcı adını almak

Mesaj gönderen kafkasyali »

mozturkgss yazdı:Pardus da denedim sonuç başarılı :D
+1

Ubuntu'da da çalışıyor. Çok teşekkür ederim. Ne kadar makbule geçti bilemezsiniz. Sağolun :D

Yapacağım uygulamanın hakkında kısmına nick'inizi ekleyebilir miyim?
visualbasic.stupid:=true;
mozturkgss
Üye
Mesajlar: 58
Kayıt: 04 Tem 2007 04:33

Re: Lazarus'ta aktif kullanıcı adını almak

Mesaj gönderen mozturkgss »

Ekleyebilirsiniz bir sakıncası yok.
Programınızın yaptığı iş ne acaba merak ettim :D :shock: :?:
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Re: Lazarus'ta aktif kullanıcı adını almak

Mesaj gönderen kafkasyali »

Linux'ta sağ tıklama ile ilgili menüleri geliştirmek için yazılan betikler var. Onları GUI uygulamasına dökmek istedim :D
visualbasic.stupid:=true;
Cevapla