24-07-2023, Saat: 11:35
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.
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.