Jump to content

TUniImage class sorunu


Freeman35

Recommended Posts

Merhaba,

Forma bir "TUniImage" Picture Property sine designtime bir jpg resim ekliyorum, Hiç bir hata vs yok resim gösteriliyor. ancak, ObjectInspector da Picture karşısında "(TdxSmartImage)" yazıyor. uygulmaya çalıştırdığımda ise hata veriyor ve form açmıyor. sistemimde devex yüklü.TdxSmartImage devexpress e ait bir class ve neden ekleniyor anlmadım, bu benim tercihim değil, zaten seçememde , Property editor den sadece jpg resmi seçiyorum.

 

Designtime da picture ı clear edip, runtimeda "IMG_.Picture.LoadFromFile(Bunu);" şeklinde resmi göstermek istediğimde ise hiçbir şey olmuyor, yani resim basılmıyor, hata yok, log dosyasındada herhangi bir kayıt yok. debug ettiğimde, kod çalışıyor ve "Bunu" adlı değişkende doğru değer var.

Teşekkürler.

Link to comment
Share on other sites

Merhaba Freeman35 bu sorun bende de mevcut.

Devexpressla alakali bir sıkıntı. Devexpress sitesinde bununla alakali bir yama kod vardi diye hatirliyorum. Ama ben okadar ugrasmama ragmen cozememistim. En sonunda devexpress olmayan bir pc ye kurdum herseyi.

Link to comment
Share on other sites

Mehmet bey cevabınız için teşekkür ederim. Verdiğiniz bilgi üzerine "dxGDIPlusClasses.pas" içerisinden jpg ve jpeg redister işlemleri remarkladım ve build ettim. devex te ne sıkıntı çıkacak bakmadım orası ayrı :) şimdilik unigui için designtime dan ekleyip formun açılmaması işi çözülmüş oldu. Ama benim için esas önemli olan konu ise runtime da resimlerin basılmaması. Baistçe şöyle bir proje. grid üzerinde hareket edildikçe, gridin OnSelectionChange Eventinde db deki koda göre uniimage içerisine resim yüklenecek. Eğer resim yoksa ve önceki kayıttan kalmış resim varsa silinecek. Kod örneği şöyle:

    if(Trim(Bunu)='')and
      (IMG_.Picture.Bitmap<>nil)then begin
     IMG_.Picture.Bitmap := nil;
     IMG_.Picture.Bitmap.FreeImage; //silmek için deneme
    end else IMG_.Picture.LoadFromFile(Bunu);

Debug ettiğimde kod çalışıyor, ama designetime da bir resim eklemişsem o resim silmesi gerekse dahi silinmiyor. ve resim yüklenmiyor. Yüklenmiyordan kastım değiş miyor. herhangi bir hatada yok. Yüklenecek resim path i farklı yerde, yani ex nin olduğu yada alt klasörlerinde değil.

Konu hakkında fikri olan var mı? teşekkürler.

Link to comment
Share on other sites

Evet Haklısın. Hem boş bir uygulamada, hemde arkadaşımın gönderdiği örnek projeye ekledim, sorun bende çıktı.

Kendi formumu, forumdan bulduğum "desktop3" uygulamasını kullanarak yapmıştım. sanırım oradan kaynaklı bir sorun.

Boş formda test ettiğim ve çalışan kod:

procedure TMainForm.yukle(Bunu: string);
begin
  if (Trim(Bunu) = '') and (IMG_1.Picture.Bitmap <> nil)
  then IMG_1.Picture.Bitmap := nil
  else IMG_1.Picture.LoadFromFile(Bunu);
end;

Teşekkürler.

Link to comment
Share on other sites

Malesef bu konuyu çözebilmiş değilim.

Sorun TUniImage de değilmiş. forma button lar eklediğimde TUniImage çalışıyor. Denemeler yapıyorum dolayısıyla bir uygulama değil yaptığım.

Yapmaya çalıştığım ekranda bir grid var ve gridin row u değiştikçe ilgili kayda ait resim varsa TUniImage e yüklmek

procedure TFRM_Stok_List.GRD_1SelectionChange(Sender: TObject);
var st_KODU, Bunu: string;
begin
    st_KODU:= DM.Q_Stok_List.FieldByName('KODU').AsString;
    Bunu:= '';
    if FileExists(MyConcatPaths(PIC_Path, st_KODU +'.jpg'))then begin
     Bunu := MyConcatPaths(PIC_Path, st_KODU +'.jpg')
    end else begin
      if FileExists(MyConcatPaths(PIC_Path, st_KODU +'.bmp'))then
       Bunu := MyConcatPaths(PIC_Path, st_KODU +'.bmp');
    end;
LBL_.Caption:= Bunu; // path in değiştiğini kotrol etmek için. ve çalışıyor, yani değişiyor
    if(Trim(Bunu)='')and
      (IMG_.Picture.Bitmap<>nil)then begin
     IMG_.Picture.Assign(nil)
    end else IMG_.Picture.LoadFromFile(Bunu);
end;

Label içeriği doğru çalışıyor, yani Bunu adlı değişken içeriği doğru olarak çalışıyor. ama İmage güncellemiyor kendisini. Forma bir button ekledim, yukarıdaki kodun basmadığı resmi button click e eklediğim aşağıdaki kod ile basıyor. Buradaki sıkıntı nedir ?

procedure TFRM_Stok_List.BTN_Click(Sender: TObject);
var Bunu : string;
begin
  Bunu:= MyConcatPaths(PIC_Path, DM.Q_Stok_List.FieldByName('KODU').AsString+'.jpg');
    if(Trim(Bunu)='')and
      (IMG_.Picture.Bitmap<>nil)then begin
     IMG_.Picture.Assign(nil)
    end else IMG_.Picture.LoadFromFile(Bunu);
end;
Link to comment
Share on other sites

  • 3 years later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...