HusoEdit Componenti Ver:3.0

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2954
Kayıt: 25 Haz 2003 01:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet » 02 Nis 2005 08:00

zengin yazdı:Hüseyin hocam (Query1 baglı olan HUSODBEDIT arama olayında hata veriyor EAccess vilation wiht mesage ) vesaire diye
birde DBGrid1 ile ok tuşu ile ilerlerken sanki rengi degişiyor gibi bir titreme var sanırım
Konuyu açarmısın? Nasıl bir arama yöntemi :roll: izliyorsunuz?

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.

zengin
Üye
Mesajlar: 193
Kayıt: 06 Ağu 2003 09:13

Mesaj gönderen zengin » 02 Nis 2005 08:52

Degerli Hüseyin hocam Günlük Kullandıgım Aylık Fiyat Listem var
Query1 baglı olan Tutar Alanına Normal DBedit ile sorun yok

Konuyu açarmısın? Nasıl bir arama yöntemi izliyorsunuz? olayı ise
tabiki her zaman kullandıgım yöntemle benim Bu şekilde aradıgımla sorun yok HUSODBEDIT yalnızca Tutar alanını gösteriyorum Başka Bir işleme Kullanmıyorum HUSODBEDIT Güzelligi TL Veya YTL Göstermesi Cok güzel
eline saglık fakat bende oluşan hatalarda hem fikrinizi alıyorum hemde öneride bulunuyorum

Kod: Tümünü seç

procedure TForm1.Edit1Change(Sender: TObject);
begin
Query1.Close;
Query1.SQL.clear;
Query1.SQL.Add('select* from LISTEM where PARCA_NO2 like "'+Edit1.Text+'%"');
Query1.open;
end;
Query1 baglı olan HUSODBEDIT Hemen Hata veriyor
buraya odaklanıyor

procedure THusoDBEdit.DataLinkDataChange(Sender: TObject);
begin
try
if FDataLink.Field.DataType = ftInteger Then
Begin
Zengin

Kullanıcı avatarı
husonet
Admin
Mesajlar: 2954
Kayıt: 25 Haz 2003 01:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet » 02 Nis 2005 09:22

Sanırım sorunun HusoDbEdit Query'e bağlı query kapanıp açıldığı için sorun yaşıyorsun?

Şu başlığı okurmusun.

viewtopic.php?t=6271&highlight=husodbedit


Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.

zengin
Üye
Mesajlar: 193
Kayıt: 06 Ağu 2003 09:13

Mesaj gönderen zengin » 02 Nis 2005 10:58

Degerli Hüseyin hocam

Kod: Tümünü seç

procedure THusoDBEdit.DataLinkDataChange(Sender: TObject);
begin
   if not FDataLink.Active = False Then
   Begin
    try
        if FDataLink.Field.DataType = ftInteger Then
        Begin
            HusoDBEditType := CurrencyType;
            if FDataLink.Field = nil then
            Begin
                SetDecimals(FDecimals);
            End
            else
            if FControl = False Then
                SetTextAsFloat1(FDataLink.Field.AsInteger)
            Else
            Begin
                TextAsFloat := FDataLink.Field.AsInteger;
                CurrWrite(FCurr);
            End;
        End
        Else
        if (FDataLink.Field.DataType = ftFloat) or (FDataLink.Field.DataType = ftCurrency) Then
        Begin
            HusoDBEditType := CurrencyType;
            if FDataLink.Field = nil then
            Begin
                SetDecimals(FDecimals);
            End
            else
               if FControl = False Then
                begin
                    SetTextAsFloat1(FDataLink.Field.AsFloat);
                End
                Else
                Begin
                    TextAsFloat := FDataLink.Field.AsFloat;
                    CurrWrite(FCurr);
                End;
            End
            Else
            if (FDataLink.Field.DataType in [ftString, ftWideString, ftMemo]) Then
            Begin
                HusoDBEditType := TextType;
                if FDataLink.Field = nil then
                  Text := ''
                else
                  Text := FDataLink.Field.AsString;
            End
            Else
            Begin
                FDataLink.FieldName := '';
                Text := 'Error Field';
            End;
    Except
        ShowMessage('HUSONET' + Chr(13) + 'This is Component for AsString, AsFloat, AsCurrency and AsInteger value');
    End;
   End;
end;
Düzeltilmiş kodlarınla hata vermedi cok teşekkürler ellerine saglık
birde dbgrid icinde ok tuşu ile ilerlerken sanki renklerde titreme var gibi banamı öyle geliyor bilemiyorum ?

Cok teşekkür ederim zamanınızı aldım
Zengin

Karamizrak
Üye
Mesajlar: 39
Kayıt: 18 Oca 2005 05:41

Huseyin hocam merhaba

Mesaj gönderen Karamizrak » 04 Nis 2005 03:45

Hocam ben sizin yapmis oldugunuz husodbediti kullanamiyorum sorun tum ayarlari yapiyorum ama yok bir sey yazamiyorum. imlec bana bakiyo ben imlece. Delphi Konusunda yeniyim nerde yanlis yapiyorum sizce. Saygilar iyi calismalar.

Kullanıcı avatarı
husonet
Admin
Mesajlar: 2954
Kayıt: 25 Haz 2003 01:14
Konum: İstanbul
İletişim:

Re: Huseyin hocam merhaba

Mesaj gönderen husonet » 04 Nis 2005 07:11

Karamizrak yazdı:Hocam ben sizin yapmis oldugunuz husodbediti kullanamiyorum sorun tum ayarlari yapiyorum ama yok bir sey yazamiyorum. imlec bana bakiyo ben imlece. Delphi Konusunda yeniyim nerde yanlis yapiyorum sizce. Saygilar iyi calismalar.
Table insert veya edit modda değilse yazamazsınız.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.

Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1251
Kayıt: 27 Eyl 2003 09:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD » 13 Nis 2005 12:11

hüseyin hocam görüyorum ki herkes componentletle çok ilgileniyor tabii bende ilgileniyorum
ben db olanını kullanmaya çalışıyorum ama bir yerde bana problem çıkarttı ve bunu sana bildirmek istedim. ben enter le geçişlerde DosMowe componentinikullanıyorum. husodbedit hariç diğer dbeditler çalışıyor ama husodbeditte çalışmıyor. ondan sonraki edite gitmesi gereken kursor kayboluyor. bulabilene aşkolsun. buna da bi bakarsa sevinirim.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR

Samsun Haber

Kullanıcı avatarı
husonet
Admin
Mesajlar: 2954
Kayıt: 25 Haz 2003 01:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet » 13 Nis 2005 12:31

ALUCARD yazdı:hüseyin hocam görüyorum ki herkes componentletle çok ilgileniyor tabii bende ilgileniyorum
ben db olanını kullanmaya çalışıyorum ama bir yerde bana problem çıkarttı ve bunu sana bildirmek istedim. ben enter le geçişlerde DosMowe componentinikullanıyorum. husodbedit hariç diğer dbeditler çalışıyor ama husodbeditte çalışmıyor. ondan sonraki edite gitmesi gereken kursor kayboluyor. bulabilene aşkolsun. buna da bi bakarsa sevinirim.
DosMowe componentini bilmiyorum. :( Free bir componentse kaynak kodlarını atarsan incelerim.

Bu arada HusoDbEdit in güncellemesini de kısmet olursa bu hafta yaparım.

Bir müjde daha vereyim Seriye HusoEditButton u yazmaya başladım. :D

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.

Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi » 13 Nis 2005 01:04

Hocam madem buton yazmaya başladın, bir rica: şu butonu renkledirme imkanı olursa çok iyi olur.

Kod: Tümünü seç

 HusoButton1.Color:=clRed;
HusoButton1.Font.Color:=clWhite

gibi gibi...

Kolay Gelsin ve Teşekkürler...
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim

Kullanıcı avatarı
husonet
Admin
Mesajlar: 2954
Kayıt: 25 Haz 2003 01:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet » 13 Nis 2005 02:17

hdayi yazdı:Hocam madem buton yazmaya başladın, bir rica: şu butonu renkledirme imkanı olursa çok iyi olur.

Kod: Tümünü seç

 HusoButton1.Color:=clRed;
HusoButton1.Font.Color:=clWhite

gibi gibi...

Kolay Gelsin ve Teşekkürler...
Hocam Edit in button tarzı yani edit ın içinde olacak button. Ama button yazarsamda uyarını dikkate alacam ;)

teşekkür ederim.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.

Kullanıcı avatarı
husonet
Admin
Mesajlar: 2954
Kayıt: 25 Haz 2003 01:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet » 13 Nis 2005 11:10

Not: Fare ile renk kontrolü iptal edildi.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.

ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 02:17
Konum: samsun
İletişim:

Mesaj gönderen ASE » 14 Nis 2005 10:12

Kod: Tümünü seç

unit DosMove;

interface

uses    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TMoveOptions = set of (moEnter,moUpDn);

  TDosMove = class(TComponent)
  private
    FActive       : boolean; 
    FOptions      : TMoveOptions;
    FOwnerKeyDown : TKeyEvent;
  protected
    procedure NewKeyDown(Sender : TObject;var Key : word;Shift : TShiftState);
  public
    constructor Create(AOwner : TComponent); override;
  published
    property Active : boolean read FActive write FActive;
    property Options : TMoveOptions read FOptions write FOptions;
  end;

procedure Register; 

implementation 

procedure Register;
begin 
  RegisterComponents('HomeMade', [TDosMove]); 
end;

constructor TDosMove.Create(AOwner : TComponent); 
var
  Loop : integer; 
begin 
  // ilk önce başka bir DosMove bileşeni var mı diye kontrol ediliyor
  for Loop:=0 to AOwner.ComponentCount-1 do 
    if AOwner.Components[Loop] is TDosMove then raise 
      EInvalidOperation.Create('TDosMove can have only one instance per form'); 
  inherited Create(AOwner);                 // Bileşen oluşturma ve default özelliklerinin belirlenmesi.
  FActive:=false; 
  FOptions:=[]; 
  // Formun OnKeyDown olayı ile bütünlük sağlanıyor. 
  FOwnerKeyDown:=(AOwner as TForm).OnKeyDown; 
  (AOwner as TForm).OnKeyDown:=NewKeyDown; 
  (AOwner as TForm).KeyPreview:=true; 
end;               // Create

procedure TDosMove.NewKeyDown(Sender : TObject;var Key : word; Shift : TShiftState); 
begin 
  if FActive and (FOptions<>[]) then begin 
    // istenilen tuşlar ele alınıyor. 
    if ((Key=VK_DOWN) and (moUpDn in FOptions)) or 
       ((Key=VK_RETURN) and (moEnter in FOptions)) then 
      (Owner as TForm).Perform(WM_NEXTDLGCTL,0,0) 
    else if (Key=VK_UP) and (moUpDn in FOptions) then 
      (Owner as TForm).Perform(WM_NEXTDLGCTL,1,0); 
  end;               // if FActive ...
  // Daha önceden atanmış OnKeyDown olayı çağrılıyor 
  if assigned(FOwnerKeyDown) then FOwnerKeyDown(Sender,Key,Shift); 
end;                     // NewKeyDown 

end.
Hüseyin bey formdaki kontroller arasında enter ya da ok tuşlarıyla hareket etmeyi sağlıyor.
@alucard yoktu ben göndereyim dedim.

Molay gelsin...
Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM

Kullanıcı avatarı
husonet
Admin
Mesajlar: 2954
Kayıt: 25 Haz 2003 01:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet » 14 Nis 2005 10:23

Ase Dostum

HusoEdit lerin PassingControl özelliğini false yaparsan sanırım çalışacaktır.


Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.

Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1251
Kayıt: 27 Eyl 2003 09:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD » 16 Nis 2005 08:29

Bir müjde daha vereyim Seriye HusoEditButton u yazmaya başladım.
hüsetyin hocam bunun db olanınıda yaparsanız çok sevinirim ben bu rür editleri çok kullanıyorum özellikle birşeylerin seçilmesi gereken durumlarda çok lazım oluyor
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR

Samsun Haber

Kullanıcı avatarı
husonet
Admin
Mesajlar: 2954
Kayıt: 25 Haz 2003 01:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet » 11 May 2005 07:27

Uğur1982 yazdı:merhaba;

Normalde Edit kulaniyordum parasal alanlarda HusoEdit kullaniyorum.

Normal kullandiim Editleri de HusoEdit yaptim
HusoEditType=TextType olarak ayarladim
Fakat bazi alanlarim 30 karakter
HusoEdit in MaxLenght 20 karekteri geçmiyor.
Maxlenght ine 30 yaziyorum tekrar 20 ye geçiyor acaba bir yerde yanlis mi yapiyorum.Hüseyin hocam bizde bir Bug yakalamis olmayalim :)

tesekkür ederim.
Uğur1982 yazdı:merhaba;

+ olarak hüseyin hocam yeni farkettim
yukaridaki eksiklikten ziyade suda var

HusoEdit.Maxlength=15
HusoEditType=TextType

böyle olarak ayarladigimda bu edite 15 den fazla karekterde giriliyor.

tesekkür ederim.
Düzeltmeler 2 Adet Procedure dedir. Güncellemeyi yaparsanız sorun kalmayacaktır.

Kod: Tümünü seç

procedure THusoEdit.KeyPress(var Key: char);
var
  Buffer: string;
  CursorPos, i: integer;
begin
  Inherited KeyPress(Key);
  if (Key = #13) and FPassingControl then
  begin
    Key := #0;
    PostMessage(GetParentForm(Self).Handle, WM_NEXTDLGCTL, 0, 0);
  end;

  if readonly = True then
    Key := Char(VK_NONAME);

  Buffer := Text;
  CursorPos := Length(Buffer)-SelStart-SelLength;
  if FEditType <> TextType Then
  Begin
    case Key of
        '0'..'9': begin
                      if FDecimals = 0 Then
                      Begin
                        if Length(Buffer) < FMaxLength then
                            Insert( Key, Buffer, Length(Buffer)-CursorPos+1 );
                      End
                      Else
                      if CursorPos >= FDecimals+1 then
                      begin
                         if Length(Buffer) < FMaxLength then
                            Insert( Key, Buffer, Length(Buffer)-CursorPos+1 );
                      end
                      else
                          if CursorPos >= 1 then
                          begin
                              Delete( Buffer, Length(Buffer)-CursorPos+1, 1 );
                              Insert( Key, Buffer, Length(Buffer)-CursorPos+2 );
                              if 1-CursorPos <= 0 then
                                  Dec(CursorPos);
                          end;
                      end;
        '-' : begin
                    if length(Buffer) > 0 Then
                        if (Buffer[1] <> '-') then
                            Buffer := '-' + buffer;
             End;
        '+' : begin
                    if Buffer[1] = '-' Then
                        Delete( Buffer, 1, 1 );
                 End;
        #8: {BACKSPACE} begin
                             if FDecimals = 0 Then
                             Begin
                                 if SelLength > 0 Then
                                 Begin
                                    SelText := '';
                                    Buffer := Text;
                                 End
                                 Else
                                 if CursorPos > FDecimals then
                                 begin
                                     if (CursorPos-FDecimals+1) mod 4 = 0 then
                                         inc(CursorPos);
                                     Delete( Buffer, Length(Buffer)-CursorPos, 1 );
                                 End
                                 Else
                                 begin
                                     Delete( Buffer, Length(Buffer)-CursorPos, 1 );
                                 end
                             End
                             Else
                                if FDecimals <> 0 Then
                                    if (SelLength > 0) Then
                                    Begin
                                        if (SelText[Length(SelText) - FDecimals] = DECIMALSEPARATOR) Then
                                        Begin
                                            SelLength := SelLength - FDecimals;
                                            SelText := '';
                                            For i := 1 to FDecimals do
                                            Begin
                                                SelLength := FDecimals;
                                                SelText := '0';
                                            End;
                                            CursorPos := FDecimals + 1;
                                            Buffer := Text;
                                        End
                                        Else
                                        if (CursorPos < FDecimals) Then
                                        Begin
                                            For i := 1 to SelLength do
                                            Begin
                                                SelText := '0';
                                            End;
                                            Buffer := Text;
                                        End
                                        Else
                                        Begin
                                            SelText := '';
                                            Buffer := Text;
                                        End;
                                    End
                                    Else
                                    if CursorPos > FDecimals then
                                    begin
                                        if (CursorPos-FDecimals) mod 4 = 0 then
                                            Inc(CursorPos);
                                        Delete( Buffer, Length(Buffer)-CursorPos, 1 );
                                    end
                                    else
                                    begin
                                        if CursorPos = FDecimals then
                                            Inc(CursorPos);
                                        Delete( Buffer, Length(Buffer)-CursorPos, 1 );
                                        if CursorPos <= FDecimals then
                                        begin
                                            Insert( '0', Buffer, Length(Buffer)-CursorPos+1 );
                                            Inc(CursorPos);
                                        end;
                                    end;
                  end;
        '.',',': CursorPos := FDecimals;
    end;
    Key := #0;
    Text := Buffer;
    Reformat;
    SelStart := Length(Text)-CursorPos;
  end
  else
  if (Length(Buffer) < FMaxLength) then
    Insert( Key, Buffer, Length(Buffer)-CursorPos+1)
  else
  if not (key = #8) then
    key := #0;
end;

Kod: Tümünü seç

procedure THusoEdit.SetMaxLength(Value: integer);
begin
    if FEditType <> TextType Then
    Begin
        if ( Value < 22 ) and ( Value > FDecimals+1 ) then
            FMaxLength := Value;
        if (FMaxLength-FDecimals-1) mod 4 = 0 then
            Dec(FMaxLength);
    end
    else
        FMaxLength := Value;
end;
Teşekkür Ederim.[/code]

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.

Cevapla