Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Resim Çizme Programı
#1
Merhaba kod severler , daha önceleri bi uygulama üzerinden geliştirme yaparken bir şekilde kenarda köşede kalmış uygulamamı güncellemek istiyorum fakat iyice kafam karıştı çoğu yerde derlerken hata veriyor  ( telefona yüklerken ) ayrıca ;
Nasıl çizerim - Hayvan kısmında TGIF Image componentini kullanarak yaptığım kodlar doğru mu sizce ordan mı ilerlemeliyim değiştirmem ve geliştirmem gereken nereler var inceleyip bir yorum yapabilirmisiniz ?
Teşekkürler.



unit frmdrawmaindemo1;
interface
uses
 System.IOUtils, System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,MyPaintBox,
 FMX.StdCtrls, FMX.Colors, FMX.ExtCtrls, FMX.ListBox, FMX.ListView.Types,
 FMX.ListView, FMX.Layouts, FMX.Objects, FMX.Edit, System.Actions,
 FMX.ActnList, FMX.StdActns, FMX.MediaLibrary.Actions, FMX.EditBox,
 FMX.SpinBox, FMX.Controls.Presentation, FMX.TabControl,
 FMX.ListView.Appearances, FMX.ListView.Adapters.Base, FMX.WebBrowser,
 FMX.Effects, FMX.Media, FMX.GIFImage;
type
 Tdrawmaindemo1frm = class(TForm)
   tbdraw: TToolBar;
   cbfg: TComboColorBox;
   cbbg: TComboColorBox;
   lbdraw: TListBox;
   idrawnone: TListBoxItem;
   idrawline: TListBoxItem;
   idrawrectangle: TListBoxItem;
   idrawellipse: TListBoxItem;
   idrawfill: TListBoxItem;
   imgf: TImage;
   idrawpen: TListBoxItem;
   sbthickmess: TSpinBox;
   chknofill: TCheckBox;
   idrawbitmap: TListBoxItem;
   actionall: TActionList;
   sbimgselect: TSpeedButton;
   actloadbmpstamp: TAction;
   TabControl1: TTabControl;
   TabItem1: TTabItem;
   TabItem2: TTabItem;
   TabItem3: TTabItem;
   SpeedButton1: TSpeedButton;
   SpeedButton2: TSpeedButton;
   TabControl2: TTabControl;
   TabItem4: TTabItem;
   TabItem5: TTabItem;
   TabItem6: TTabItem;
   SpeedButton3: TSpeedButton;
   SpeedButton4: TSpeedButton;
   SpeedButton5: TSpeedButton;
   ComboBox1: TComboBox;
   ToolBar1: TToolBar;
   SpeedButton6: TSpeedButton;
   SpeedButton7: TSpeedButton;
   SpeedButton8: TSpeedButton;
   Image1: TImage;
   ListView1: TListView;
   ShowShareSheetAction1: TShowShareSheetAction;
   StyleBook1: TStyleBook;
   InnerGlowEffect1: TInnerGlowEffect;
   InnerGlowEffect2: TInnerGlowEffect;
   InnerGlowEffect3: TInnerGlowEffect;
   InnerGlowEffect4: TInnerGlowEffect;
   InnerGlowEffect5: TInnerGlowEffect;
   InnerGlowEffect6: TInnerGlowEffect;
   InnerGlowEffect7: TInnerGlowEffect;
   InnerGlowEffect8: TInnerGlowEffect;
   InnerGlowEffect9: TInnerGlowEffect;
   InnerGlowEffect10: TInnerGlowEffect;
   InnerGlowEffect11: TInnerGlowEffect;
   InnerGlowEffect12: TInnerGlowEffect;
   ComboBox2: TComboBox;
   ComboBox3: TComboBox;
   MediaPlayer1: TMediaPlayer;
   SpeedButton9: TSpeedButton;
   InnerGlowEffect13: TInnerGlowEffect;
   GIFImage1: TGIFImage;
   GIFImage12: TGIFImage;
   GIFImage22: TGIFImage;
   GIFImage27: TGIFImage;
   GIFImage44: TGIFImage;
   GIFImage45: TGIFImage;
   GIFImage49: TGIFImage;
   GIFImage42: TGIFImage;
   GIFImage41: TGIFImage;
   GIFImage2: TGIFImage;
   GIFImage3: TGIFImage;
   GIFImage4: TGIFImage;
   GIFImage5: TGIFImage;
   GIFImage6: TGIFImage;
   GIFImage7: TGIFImage;
   GIFImage8: TGIFImage;
   GIFImage9: TGIFImage;
   GIFImage11: TGIFImage;
   GIFImage10: TGIFImage;
   GIFImage13: TGIFImage;
   GIFImage15: TGIFImage;
   GIFImage14: TGIFImage;
   GIFImage16: TGIFImage;
   GIFImage17: TGIFImage;
   GIFImage18: TGIFImage;
   GIFImage19: TGIFImage;
   GIFImage20: TGIFImage;
   GIFImage21: TGIFImage;
   GIFImage23: TGIFImage;
   GIFImage25: TGIFImage;
   GIFImage24: TGIFImage;
   GIFImage26: TGIFImage;
   GIFImage28: TGIFImage;
   GIFImage29: TGIFImage;
   GIFImage30: TGIFImage;
   GIFImage31: TGIFImage;
   GIFImage32: TGIFImage;
   GIFImage33: TGIFImage;
   GIFImage35: TGIFImage;
   GIFImage36: TGIFImage;
   GIFImage37: TGIFImage;
   GIFImage38: TGIFImage;
   GIFImage39: TGIFImage;
   GIFImage40: TGIFImage;
   GIFImage46: TGIFImage;
   GIFImage47: TGIFImage;
   GIFImage48: TGIFImage;
   GIFImage43: TGIFImage;
   Bitki1: TGIFImage;
   Bitki2: TGIFImage;
   Bitki3: TGIFImage;
   Bitki4: TGIFImage;
   Bitki5: TGIFImage;
   Bitki6: TGIFImage;
   Bitki7: TGIFImage;
   Esya1: TGIFImage;
   Esya2: TGIFImage;
   Esya3: TGIFImage;
   Esya4: TGIFImage;
   Panel1: TPanel;
   SpeedButton10: TSpeedButton;
   Panel2: TPanel;
   SpeedButton11: TSpeedButton;
   Panel3: TPanel;
   SpeedButton12: TSpeedButton;
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure cbbgChange(Sender: TObject);
   procedure cbfgChange(Sender: TObject);
   procedure SpeedButton1Click(Sender: TObject);
   procedure imgfClick(Sender: TObject);
   procedure lbdrawChange(Sender: TObject);
   procedure sbthickmessChange(Sender: TObject);
   procedure SpeedButton2Click(Sender: TObject);
   procedure chknofillChange(Sender: TObject);
   procedure sbimgselectClick(Sender: TObject);
   procedure SpeedButton3Click(Sender: TObject);
   procedure SpeedButton4Click(Sender: TObject);
   procedure SpeedButton5Click(Sender: TObject);
   procedure SpeedButton7Click(Sender: TObject);
   procedure SpeedButton8Click(Sender: TObject);
   procedure ShowShareSheetAction1BeforeExecute(Sender: TObject);
   procedure ListView1ItemClick(const Sender: TObject;
     const AItem: TListViewItem);
   procedure SpeedButton9Click(Sender: TObject);
   procedure ComboBox1Change(Sender: TObject);
   procedure SpeedButton10Click(Sender: TObject);

 private
   { Private declarations }
   fdrawbox:TMyPaintBox;
 public
   { Public declarations }
 end;
var
 drawmaindemo1frm: Tdrawmaindemo1frm;
 GIFImages: array of TGIFImage;

implementation
uses frmSelectBmp,
Fmx.DialogService;
{$R *.fmx}
procedure Tdrawmaindemo1frm.cbbgChange(Sender: TObject);
begin
 fdrawbox.BackgroundColor:=cbbg.Color;
end;
procedure Tdrawmaindemo1frm.cbfgChange(Sender: TObject);
begin
 fdrawbox.ForegroundColor:=cbfg.Color;
end;
procedure Tdrawmaindemo1frm.chknofillChange(Sender: TObject);
begin
 fdrawbox.NoFill:=chknofill.IsChecked;
end;



procedure Tdrawmaindemo1frm.ComboBox1Change(Sender: TObject);
var
 SelectedIndex: Integer;
 i: Integer;
begin
 // ComboBox'tan seçili olan öğenin indeksini alın
 SelectedIndex := ComboBox1.ItemIndex;

 // Tüm GIF'leri durdurun
 for i := 0 to High(GIFImages) do
   GIFImages[i].Stop ;
   GIFImages[i].Free ;

 // Seçilen GIF'i oynatın
 if (SelectedIndex >= 0) and (SelectedIndex < Length(GIFImages)) then
 begin
   GIFImages[SelectedIndex].play ;
 end;
end;

procedure Tdrawmaindemo1frm.FormCreate(Sender: TObject);
begin
 speedbutton1.Visible:=true;
 speedbutton9.Visible:=false;
 MediaPlayer1.FileName := GetHomePath + PathDelim + 'resim.mp3';
 mediaplayer1.Play;
 fdrawbox:=TMyPaintBox.Create(self);
 fdrawbox.Parent := TabItem1;  // Tüm app TabItem1'in içinde yer aldığı için DrawBox'ta orada olacak.
 fdrawbox.ForegroundColor:=cbfg.Color;
 fdrawbox.BackgroundColor:=cbbg.Color;
 imgf.Bitmap:=lbdraw.Selected.ItemData.Bitmap;
 lbdraw.BringToFront;
 tbdraw.BringToFront;
end;
procedure Tdrawmaindemo1frm.FormDestroy(Sender: TObject);
begin
 if assigned(fdrawbox) then
   fdrawbox.Free;
end;

procedure Tdrawmaindemo1frm.imgfClick(Sender: TObject);
begin
 lbdraw.Visible:=not lbdraw.Visible;
end;
procedure Tdrawmaindemo1frm.lbdrawChange(Sender: TObject);
begin
 imgf.Bitmap:=lbdraw.Selected.ItemData.Bitmap;
 lbdraw.Visible:=false;
 if assigned(fdrawbox) then
 begin
   fdrawbox.FuncDraw:=TFunctionDraw(lbdraw.ItemIndex);
 end;
end;
procedure Tdrawmaindemo1frm.ListView1ItemClick(const Sender: TObject;
 const AItem: TListViewItem);
begin
 Image1.Bitmap.LoadFromFile(ListView1.Items[ListView1.ItemIndex].Detail);
end;

procedure Tdrawmaindemo1frm.sbimgselectClick(Sender: TObject);
begin
{$IF Defined(ANDROID)}
   SelectBmpfrm.ShowModal( procedure(ModalResult: TModalResult)
   begin
     if ModalResult = mrOK then
   if assigned(SelectBmpfrm.fbmp) then
   begin
     fdrawbox.BitmapStamp:=SelectBmpfrm.fbmp;
   end;
   end);
{$ELSE}
 if SelectBmpfrm.ShowModal=mrOK then
   if assigned(SelectBmpfrm.fbmp) then
   begin
     fdrawbox.BitmapStamp:=SelectBmpfrm.fbmp;
   end;
{$ENDIF}

end;
procedure Tdrawmaindemo1frm.sbthickmessChange(Sender: TObject);
begin
 if assigned(fdrawbox) then
   fdrawbox.Thickness:=sbthickmess.Value;
end;
procedure Tdrawmaindemo1frm.ShowShareSheetAction1BeforeExecute(Sender: TObject);
begin
     { show the share sheet }
 ShowShareSheetAction1.Bitmap.Assign(image1.Bitmap);

end;

procedure Tdrawmaindemo1frm.SpeedButton10Click(Sender: TObject);
var
 SelectedIndex: Integer;
 i: Integer;
begin
GIFImages[SelectedIndex].play ;
end;

procedure Tdrawmaindemo1frm.SpeedButton1Click(Sender: TObject);
begin
mediaplayer1.Stop;
speedbutton9.Visible:=true;
speedbutton1.Visible:=false;
end;
procedure Tdrawmaindemo1frm.SpeedButton2Click(Sender: TObject);
var
sfile: string;
fs: TFileStream;
begin
TDialogService.InputQuery('Dosya Kaydetme İşlemi', ['Dosya Adı'],
  ['ResimOgretmenim.png'],
  procedure(const AResult: TModalResult; const AValues: array of string)
  begin
    case AResult of
      mrOK:
        begin
          if (AValues[0].Trim <> '') then
          begin
            sfile := System.IOUtils.TPath.Combine
              (System.IOUtils.TPath.GetPicturesPath(), AValues[0]);
            fs := TFileStream.Create(sfile, fmCreate);
            try
              fdrawbox.SaveToJPEGStream(fs);
            finally
              fs.DisposeOf;
            end;
          end;
        end;
    end;
  end);
end;

procedure Tdrawmaindemo1frm.SpeedButton3Click(Sender: TObject);
begin
   //

end;

procedure Tdrawmaindemo1frm.SpeedButton4Click(Sender: TObject);
begin
  //

end;

procedure Tdrawmaindemo1frm.SpeedButton5Click(Sender: TObject);
var
 SelectedIndex: Integer;
 i: Integer;
begin
GIFImages[SelectedIndex].stop;
end;

procedure Tdrawmaindemo1frm.SpeedButton7Click(Sender: TObject);
var
sfile: string;
begin
TDialogService.MessageDialog('Kaydı silmek istediğinize emin misiniz?',
  TMsgDlgType.mtConfirmation, FMX.Dialogs.mbYesNo, TMsgDlgBtn.mbNo, 0,
  procedure(const AResult: TModalResult)
  begin
    case AResult of
      mrYes:
        begin

          if ListView1.ItemIndex > -1 then
          begin
            // sfile := TPath.Combine(TPath.GetDocumentsPath(), ListView1.Items[ListView1.Selected.Index].Text); //ListView Text'inde dosya adı olduğunu varsayıyorum.
            sfile := System.IOUtils.TPath.Combine
              (System.IOUtils.TPath.GetPicturesPath(),
              ListView1.Items[ListView1.Selected.Index].Text);
            if fileexists(sfile) then
            begin
              try
                deletefile(sfile);
                ListView1.Items.Delete(ListView1.Selected.Index);
                // Kayıt Silme kodlarınız
                ShowMessage('Kayıt silindi!');
              except
                ShowMessage('Bir hatadan dolayı silme işlemi iptal edildi!');
              end;
            end;
          end;
        end;
      mrNo:
        ShowMessage('Kayıt silme işlemi iptal edildi!');

    end
  end);
end;



procedure Tdrawmaindemo1frm.SpeedButton8Click(Sender: TObject);
var
 Konum: string;
 AramaSecenegi: TSearchOption;
 begin
 Konum :=System.IOUtils.TPath.GetPicturesPath  ;
   if not TDirectory.Exists(Konum) then
 begin
   ShowMessage('Belirtilen konum bulunamadı');
   Exit;
 end;
 { ilk Klasörden başlayarak en iç klasöre kadar ardaşık tüm dosyaları sıralar. }
 AramaSecenegi := TSearchOption.soAllDirectories;

 ListView1.Items.Clear;

for Konum in TDirectory.GetFiles(Konum, '*.png', AramaSecenegi) do

   With ListView1.Items.Add do
   begin
     Text := System.IOUtils.TPath.GetFileName(Konum)  ;
     Detail := Konum;
end;
 end;




procedure Tdrawmaindemo1frm.SpeedButton9Click(Sender: TObject);
begin
  mediaplayer1.Play;
  speedbutton1.Visible:=true;
  speedbutton9.Visible:=false;
end;

end.


Ek Dosyalar Resimler
   
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [Çözüldü] FMX Android uygulaması ile sunucuya resim yükleme Mesut 2 522 25-07-2023, Saat: 00:40
Son Yorum: Mesut
  Galerinden resim eklediğim zaman yönünün değişmesi codder71 4 880 24-07-2023, Saat: 18:32
Son Yorum: codder71
  IOS galeriden resim veya video seçme hakkında Mr.X 6 1.154 11-05-2023, Saat: 06:54
Son Yorum: emozgun
  FCM Push Notification Resim Ekleme vedat33 0 514 15-12-2022, Saat: 13:56
Son Yorum: vedat33
  Telefondan Telefona Bas Konuş Tarzı Chat Programı Jakarta2 5 1.457 21-11-2022, Saat: 21:54
Son Yorum: Jakarta2



Konuyu Okuyanlar: 1 Ziyaretçi