Form1 Resim Ekleme [Çözüldü]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Form1 Resim Ekleme [Çözüldü]

Mesaj gönderen ozcank »

Arkadaşlar Merhaba; Veri tabanına kayıt ettiğim öğrencilerin vesikalık resimlerini de kaydetmek istiyorum form da araştırdım ama kullanıcının rahatlıkla kaydedebileceği bir kod veya uygulama bulamadım bunu nasıl halledebilirim yardımcı olabilecek misiniz?
En son ozcank tarafından 28 Kas 2016 08:18 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: Form1 Resim Ekleme

Mesaj gönderen yhackup »

Kod: Tümünü seç

var
    MyQuery1453: TMyQuery;
  begin
    if OpenDialog1.Execute then
    begin
      Image1.Picture.LoadFromFile(OpenDialog1.filename);
      MyQuery1453 := TMyQuery.Create(self);
      MyQuery1453.Connection := ycon;
      try
        with MyQuery1453 do
        begin
          Close;
          sql.Clear;
          sql.Add('INSERT INTO uzaks (s1,jpeg) VALUES (:s1,:jp)');
          ParamByName('s1').AsString := GetUserFromWindows;
          ParamByName('jp').LoadFromFile(OpenDialog1.filename, ftBlob);
          Execute;
        end;
      finally
        MyQuery1453.Free;
      end;
    end;
  end;
Çaylak Delphici :D

Yakup ULUTAŞ
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Form1 Resim Ekleme

Mesaj gönderen ozcank »

yhackup gönderdiğin kodu uyarlıyorum ama şurda hata veriyor;

Delphi7 Kullanıyorum veri tabanım MSSQL

Kod: Tümünü seç

    try
        with MyQuery1453 do
        begin
          Close;
          SQL.Clear;
          SQL.Add('INSERT INTO MADENKAYIT (MD_YEDEK1,jpeg) VALUES (:s1,:jp)');
          MADENKAYIT.Parameters.ParamByName('S1').Value := GetUserFromWindows;
          MADENKAYIT.Parameters.ParamByName('jp').LoadFromFile(OpenDialog1.filename, ftBlob);
          Execute;
        end;
      finally
[Error] MADENTANIMA.pas(613): Undeclared identifier: 'GetUserFromWindows'
[Error] MADENTANIMA.pas(615): Undeclared identifier: 'Execute'
[Fatal Error] MADENPRJ1.dpr(10): Could not compile used unit 'MADENTANIMA.pas'
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: Form1 Resim Ekleme

Mesaj gönderen yhackup »

ben componet olarak mydac kullanıyorum, sanırım sen başka bir şey kullanıyorsun ve Execute proceduru yok seninkinde,
GetUserFromWindows benim kullandığım bir fonksiyon windows kullanıcı adını döndürür.

Kod: Tümünü seç

  function GetUserFromWindows: string;
  var
    iLen: Cardinal;
  begin
    iLen := 256;
    result := StringOfChar(#0, iLen);
    GetUserName(pcHAR(result), iLen);
    SetLength(result, iLen);
  end;
Kopyala yapıştır yapma içerisinden işine yarayan bölümleri al ;)

sana lazım olacak kilit nokta parametre geçerken kullanman gereken satır bu

Kod: Tümünü seç

ParamByName('jp').LoadFromFile(OpenDialog1.filename, ftBlob);
OpenDialog1.filename seçtiğin dosyanın dizinini veriyor 'C:\yakup\yakup.jpg' gibi ve tablodaki field tipin longblob olmalı.

GetUserFromWindows winapiden geliyor buradan inceleyebilrsin
Resim
Çaylak Delphici :D

Yakup ULUTAŞ
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Form1 Resim Ekleme

Mesaj gönderen ozcank »

Peki bunun boyutunu ayarlayabilir miyim ? İmage1 içerisine tam sığdırmak için.
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: Form1 Resim Ekleme

Mesaj gönderen yhackup »

ozcank yazdı:Peki bunun boyutunu ayarlayabilir miyim ? İmage1 içerisine tam sığdırmak için.

Kod: Tümünü seç

Image1.Stretch := true;
Çaylak Delphici :D

Yakup ULUTAŞ
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Form1 Resim Ekleme

Mesaj gönderen ozcank »

Veri tabanım MSSQL ve ben alanını Image olarak ayarladım
Kaydedeceğim alan da MD_YEDEK1 bir türlü kaydedemedim ?

Kod: Tümünü seç

         MADENKAYIT.Parameters.ParamByName('MD_YEDEK1').LoadFromFile(OpenDialog1.filename, ftBlob);

---------------------------
Debugger Exception Notification
---------------------------
Project MADENPRJ1.exe raised exception class EDatabaseError with message 'MADENKAYIT: Parameter 'MD_YEDEK1' not found'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: Form1 Resim Ekleme

Mesaj gönderen yhackup »

ozcank yazdı:Veri tabanım MSSQL ve ben alanını Image olarak ayarladım
Kaydedeceğim alan da MD_YEDEK1 bir türlü kaydedemedim ?

Kod: Tümünü seç

         MADENKAYIT.Parameters.ParamByName('MD_YEDEK1').LoadFromFile(OpenDialog1.filename, ftBlob);

---------------------------
Debugger Exception Notification
---------------------------
Project MADENPRJ1.exe raised exception class EDatabaseError with message 'MADENKAYIT: Parameter 'MD_YEDEK1' not found'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------


diyor ki MADENKAYIT'a böyle bir parametre geçiyorsun ama, MADENKAYIT sql cümlesinde böyle bir parametre yok

Örneğin
sql.Add('INSERT INTO uzaks (s1) VALUES (:s1)');
ParamByName('s1').AsString := GetUserFromWindows;
ParamByName('jp').LoadFromFile(OpenDialog1.filename, ftBlob);

mesela bunun gibi jp adında parametre geçmişim ama bu parametre sql scriptimde yok
Çaylak Delphici :D

Yakup ULUTAŞ
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Form1 Resim Ekleme

Mesaj gönderen ozcank »

Peki ben TDBImage1 kullandım resmide ekliyorum. Ben ilgili dizin altında RESIM diye klasör açsam ve resimleri oraya kaydetsem bu yolu nasıl veri tabanına kaydedebilirim ?

"c:\maden\resim\resim1.jpg"
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: Form1 Resim Ekleme

Mesaj gönderen yhackup »

ozcank yazdı:Peki ben TDBImage1 kullandım resmide ekliyorum. Ben ilgili dizin altında RESIM diye klasör açsam ve resimleri oraya kaydetsem bu yolu nasıl veri tabanına kaydedebilirim ?

"c:\maden\resim\resim1.jpg"

TFile kullanacaksın.
http://docwiki.embarcadero.com/CodeExam ... s_(Delphi)

Burada basitçe anlatılmış.
Çaylak Delphici :D

Yakup ULUTAŞ
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: Form1 Resim Ekleme

Mesaj gönderen yhackup »

link yönlendirme çalışmadı.

İnternette Tfile diye arat.

Kod: Tümünü seç

procedure TForm1.operations(Sender: TObject);
begin
  try
    { Copy file from source file path to destination file path }
    if Sender = btnCopy then
      TFile.Copy(edSourcePath.Text, edDestinationPath.Text);
 
    { Move file from source file path to destination file path }
    if Sender = btnMove then
      TFile.Move(edSourcePath.Text, edDestinationPath.Text);
 
    { Delete file from source file path }
    if Sender = btnDelete then
      TFile.Delete(edSourcePath.Text);
 
  except
    MessageDlg('Incorrect path', mtError, [mbOK], 0);
    Exit;
  end;
end;
Çaylak Delphici :D

Yakup ULUTAŞ
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Form1 Resim Ekleme

Mesaj gönderen ozcank »

yhackup yardımların için çok teşekkür ederim. Şu şekilde yapmaya uğraşıyorum ;

Kod: Tümünü seç

MADENKAYIT.FieldByName('MD_YEDEK1').Value:= opendialog1.filename;
---------------------------
Debugger Exception Notification
---------------------------
Project MADENPRJ1.exe raised exception class EInvalidGraphic with message 'Bitmap image is not valid'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
bu hatayı aldım.
Kullanıcı avatarı
yhackup
Üye
Mesajlar: 115
Kayıt: 09 Ağu 2014 09:09
İletişim:

Re: Form1 Resim Ekleme

Mesaj gönderen yhackup »

MD_YEDEK1 tablodaki tipi nedir ?
Çaylak Delphici :D

Yakup ULUTAŞ
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: Form1 Resim Ekleme

Mesaj gönderen ozcank »

image sonra onu nvarchar olarak değiştirdim ve yolu kaydetti :) şimdi ilgili öğrenciyi secince resmi nasıl yükleyebilirim?

Resim.Picture.LoadFromFile:=DBGrid2.DataSource.DataSet.FieldByName('MD_YEDEK1').AsString;
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Form1 Resim Ekleme

Mesaj gönderen adelphiforumz »

Fikir vermesi açısından aşağıdaki linki incelemenizi tavsiye ederim.

viewtopic.php?f=2&t=36171&p=195213#p195213
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Cevapla