Abbrevia Componentinde Progressbar'ı Değiştiremiyorum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Abbrevia Componentinde Progressbar'ı Değiştiremiyorum

Mesaj gönderen kafkasyali »

Değerli abilerim. Delphi'de ufak tefek uygulamalar yapıyorum. Bir yedekleme uygulaması yazdım. Abbrevia componenti bütün işi yükleniyor. Component gerçekten harika. SQL veritabanı kullanan uygulamalarınız varsa SQLSERVER'ı stop ya da pause etmeden tüm program klasörünü zipleyebiliyor. Fakat progressbar'ı değiştiremiyorum. Kendisinin bir progressbar'ı var ama tema desteği yok ve kayda değer bişey değil maalesef. Tema olarak vclskin ya da themeengine kullanıyorum.

abbrevia'nın kendi forumunda bunları buldum. foruma bakılırsa progressbar değiştirme desteği var. hatta fransız öğrenci yaptığını belirtmiş. fakat ben yapamadım. acemilik başa bela.

Kod: Tümünü seç

http://sourceforge.net/forum/forum.php?thread_id=990426&forum_id=241865

Kod: Tümünü seç

http://sourceforge.net/forum/forum.php?thread_id=1750996&forum_id=241865
kodlar anaform:(tamamlanmamış yerler var)

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls, WinSkinData, AbBase, AbBrowse, AbZBrows,
  AbZipper, AbZipKit, AbMeter;

type
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    StaticText1: TStaticText;
    SkinData1: TSkinData;
    AbZipKit1: TAbZipKit;
    AbMeter1: TAbMeter;
    AbMeter2: TAbMeter;
    AbVCLMeterLink1: TAbVCLMeterLink;
    AbVCLMeterLink2: TAbVCLMeterLink;
    Label1: TLabel;
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
FORM2.SHOWMODAL;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
HALT;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
SpeedButton1.Enabled:=false;
           SpeedButton2.Enabled:=false;
           SpeedButton3.Enabled:=false;
           SpeedButton4.Enabled:=false;
           AbZipKit1.BaseDirectory:=Form2.Edit1.Text;
           AbZipKit1.FileName:=Form2.Edit2.Text+'\'+datetostr(date)+'.zip';
         AbZipKit1.AddFiles('*.*',0);
         Label1.Caption:=AbZipKit1.FileName;
         AbZipKit1.Save;
         AbZipKit1.Free;
         AbMeter1.Reset;
         Application.MessageBox('Yedek alma işlemi başarı ile gerçekleştirildi','Bilgi',+mb_ok+MB_ICONINFORMATION);
         SpeedButton2.Enabled:=true;
         SpeedButton3.Enabled:=true;
         SpeedButton4.Enabled:=true;
end;

end.
ayarlar formu:

Kod: Tümünü seç

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, ShellCtrls, inifiles;

type
  TForm2 = class(TForm)
    ShellTreeView1: TShellTreeView;
    ShellTreeView2: TShellTreeView;
    Label1: TLabel;
    Label2: TLabel;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Edit1: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Edit2: TEdit;
    GroupBox3: TGroupBox;
    RadioButton5: TRadioButton;
    RadioButton6: TRadioButton;
    RadioButton7: TRadioButton;
    GroupBox4: TGroupBox;
    RadioButton8: TRadioButton;
    RadioButton9: TRadioButton;
    Edit3: TEdit;
    Label5: TLabel;
    GroupBox5: TGroupBox;
    RadioButton10: TRadioButton;
    RadioButton11: TRadioButton;
    Label6: TLabel;
    Edit4: TEdit;
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
    procedure ShellTreeView2Change(Sender: TObject; Node: TTreeNode);
    procedure Edit1Click(Sender: TObject);
    procedure Edit2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton11Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  ini:Tinifile;
  a:integer;
implementation

{$R *.dfm}

procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
CLOSE;
end;

procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
if RadioButton2.Checked=true then begin
        if RadioButton3.Checked=false then begin
         if RadioButton4.Checked=false then begin
          Application.MessageBox('Lütfen veritabanı tipini seçiniz','Bilgi',+mb_ok+MB_ICONWARNING);
          Application.MessageBox('Ayarlar kaydedilmedi','Uyarı',+mb_ok+MB_ICONERROR);
          exit;
          end;
          end;
          end;
if FileExists('ayarlar.ini') then begin
a:=Application.MessageBox('Ayarlar kısmı daha önce düzenlenmiş. Mevcut ayarların üzerine yazmak istediğinizden emin misiniz?','Uyarı',+mb_yesno+MB_ICONWARNING);
if a=idno then exit;
DeleteFile('ayarlar.ini');
end;
ini:=TIniFile.Create(GetCurrentDir+'\ayarlar.ini');
ini.WriteString('***ELLE MUDAHALE ETMEYIN***','programin yolu',edit1.Text);
ini.WriteString('***ELLE MUDAHALE ETMEYIN***','yedeklenecek dizin',Edit2.Text);
    /////arşivleme derecesi yazılıyor////////
    if RadioButton5.Checked=true then begin
       ini.WriteString('***ELLE MUDAHALE ETMEYIN***','arsivleme derecesi','depola');
       end;
       if RadioButton6.Checked=true then begin
          ini.WriteString('***ELLE MUDAHALE ETMEYIN***','arsivleme derecesi','normal');
          end;
          if RadioButton7.Checked=true then begin
          ini.WriteString('***ELLE MUDAHALE ETMEYIN***','arsivleme derecesi','en iyi');
          end;
           /////program tipi yazılıyor//////
              if RadioButton1.Checked=true then begin
                 ini.WriteString('***ELLE MUDAHALE ETMEYIN***','program tipi','paradoxvs');
                 end;
                 if RadioButton2.Checked=true then begin
                    ini.WriteString('***ELLE MUDAHALE ETMEYIN***','program tipi','SQL');
                    end;
           ////veri tabanı tipi yazılıyor////
              if RadioButton3.Checked=true then begin
                 ini.WriteString('***ELLE MUDAHALE ETMEYIN***','veritabani tipi','MSDE/SQL2000');
                 end;
                 if RadioButton4.Checked=true then begin
                 ini.WriteString('***ELLE MUDAHALE ETMEYIN***','veritabani tipi','SQLEXPRESS');
                 end;
                 Application.MessageBox('Ayarlar Kaydedildi','Bilgi',+mb_ok+MB_ICONINFORMATION);
    end;

procedure TForm2.ShellTreeView1Change(Sender: TObject; Node: TTreeNode);
begin
Edit1.Text:=ShellTreeView1.Path;
end;

procedure TForm2.ShellTreeView2Change(Sender: TObject; Node: TTreeNode);
begin
Edit2.Text:=ShellTreeView2.Path;
end;

procedure TForm2.Edit1Click(Sender: TObject);
begin
Application.MessageBox('Elle müdahale edilemez. Bu kısım bilgilendirme amaçlıdır.','Uyarı',+mb_ok+MB_ICONWARNING);
end;

procedure TForm2.Edit2Click(Sender: TObject);
begin
Application.MessageBox('Elle müdahale edilemez. Bu kısım bilgilendirme amaçlıdır.','Uyarı',+mb_ok+MB_ICONWARNING);
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
   ini := TIniFile.Create(GetCurrentDir + '\ayarlar.ini');
       Edit1.Text:=ini.ReadString('***ELLE MUDAHALE ETMEYIN***','programin yolu','Konum Belirtilmemis');
       Edit2.Text:=ini.ReadString('***ELLE MUDAHALE ETMEYIN***','yedeklenecek dizin','Konum Belirtilmemis');
         //ini'den arşivleme derecesi okunuyor
         if ini.ReadString('***ELLE MUDAHALE ETMEYIN***','arsivleme derecesi','depola')='depola' then begin
            RadioButton5.Checked:=true;
            end;
            if ini.ReadString('***ELLE MUDAHALE ETMEYIN***','arsivleme derecesi','normal')='normal' then begin
            RadioButton6.Checked:=true;
            end;
               if ini.ReadString('***ELLE MUDAHALE ETMEYIN***','arsivleme derecesi','en iyi')='en iyi' then begin
               RadioButton7.Checked:=true;
               end;
         //program tipi okunuyor/////
                  if ini.ReadString('***ELLE MUDAHALE ETMEYIN***','program tipi','paradoxvs')='paradoxvs' then begin
                  RadioButton1.Checked:=true;
                  end;
                     if ini.ReadString('***ELLE MUDAHALE ETMEYIN***','program tipi','SQL')='SQL' then begin
                     RadioButton2.Checked:=true;
                     end;
         //veritabanı tipi okunuyor///
         if ini.ReadString('***ELLE MUDAHALE ETMEYIN***','veritabani tipi','MSDE/SQL2000')='MSDE/SQL2000' then begin
            RadioButton3.Checked:=true;
            end;
            if ini.ReadString('***ELLE MUDAHALE ETMEYIN***','veritabani tipi','SQLEXPRESS')='SQLEXPRESS' then begin
            RadioButton4.Checked:=true;
            end;
            if RadioButton1.Checked=true then begin
               RadioButton3.Enabled:=false;
               RadioButton4.Enabled:=false;
               RadioButton3.Checked:=false;
               RadioButton4.Checked:=false;
               end;
               end;

procedure TForm2.RadioButton1Click(Sender: TObject);
begin
RadioButton3.Checked:=false;
RadioButton4.Checked:=false;
RadioButton3.Enabled:=false;
RadioButton4.Enabled:=false;
end;

procedure TForm2.RadioButton2Click(Sender: TObject);
begin
RadioButton3.Enabled:=true;
RadioButton4.Enabled:=true;
end;

procedure TForm2.RadioButton11Click(Sender: TObject);
begin
a:=Application.MessageBox('Bu seçeneği kullanırken dikkatli olun. Parolanız hiç bir yere kayıt edilmeyecektir. Parolanızı kolay hatırlayabileceğiz şekilde veriniz. Parolanızı unuttuğunuz takdirde yedeği açmanız mümkün değildir!!!'#13''#13'Parola koymak istediğinizden emin misiniz?','Uyarı',+mb_yesno+MB_ICONWARNING);
if a=id_yes then begin RadioButton11.Checked:=true;
end
else
RadioButton10.Checked:=true;
end;
end.
visualbasic.stupid:=true;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Abbrevia Componentinde Progressbar'ı Değiştiremiyorum

Mesaj gönderen aslangeri »

s.a.
bu iş için abmeter.pas dosyasını değiştirmen lazım.
öncelikle abmeter.inc dosyasını bul.
tüm sayfayı olduğu gibi kopyala abmeter.pas dosyasındaki {$i abmeter.inc} yazan yeri sil ve yerine kopyaladığın kısmı yapıştır.
sonra procedure TAbCustomMeter.Paint; metodunu kendin istediğin şekilde düzenle.
tabiki yedkeli çalşıyoruz ve ne yaptığımızı bilerek yapıyoruz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Re: Abbrevia Componentinde Progressbar'ı Değiştiremiyorum

Mesaj gönderen kafkasyali »

a.s.

çok teşekkür ediyorum. evde deneyecem. bu benim için işe yarar ilk ciddi programcık olacak. Allah razı olsun.
visualbasic.stupid:=true;
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Re: Abbrevia Componentinde Progressbar'ı Değiştiremiyorum

Mesaj gönderen kafkasyali »

@aslangeri

bilgiler için teşekkür ederim. yanlış anlatımımdan dolayı özür diliyorum. ben delphinin kendi progressbar'ını kullanmak istemiştim.

konuyu biraz daha açmanız mümkün müdür?

aşağıda progressbarı ekledim. fakat ilerlemenin neye göre olacağını bulamıyorum

Kod: Tümünü seç

         AbZipKit1.BaseDirectory:=Form2.Edit1.Text;
         AbZipKit1.FileName:=Form2.Edit2.Text+'\'+datetostr(date)+'.zip';
         AbZipKit1.AddFiles('*.*',0);
         ProgressBar1.Min:=0;
         ProgressBar1.Max:=100;
         ProgressBar1.Position:=ProgressBar1.Position + .... buraya ne yazacağımı bulamıyorum
visualbasic.stupid:=true;
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: Abbrevia Componentinde Progressbar'ı Değiştiremiyorum

Mesaj gönderen khanco »

Burada tek dosyamı çok dosyamı ziplenecek çok dosya ise kalan dosya sayısı ya da boyutu üzerinden yüzde formülü koyabilirsin. tek dosyada nasıl kullanıbileceğini bilmiyorum.
cozturk
Üye
Mesajlar: 484
Kayıt: 15 Haz 2005 05:22

Re: Abbrevia Componentinde Progressbar'ı Değiştiremiyorum

Mesaj gönderen cozturk »

Sıkıştırılacak toplam boyut, hesaplanır, Tamamlanan boyut hesaplanır. yüzdesine bakılır.
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Re: Abbrevia Componentinde Progressbar'ı Değiştiremiyorum

Mesaj gönderen kafkasyali »

abbrevia componenti

Kod: Tümünü seç

http://garr.dl.sourceforge.net/sourceforge/tpabbrevia/Abbrevia305Beta6.zip
uygulama kaynak kodları

Kod: Tümünü seç

http://rapidshare.com/files/105688472/zipper.zip.html
bu tür hesaplamalar inanın benim için çok zor. bu uygulamaya delphinin yani windows'un kullandığı progressbar'ı ekleyebilir miyiz? ayarlar kısmındaki kodlarda eksikler var tabi. fakat onları ayarlamak kolay benim için.

yardımlarınız için teşekkür ederim.
visualbasic.stupid:=true;
Cevapla