Hoşgeldin, Ziyaretçi
Sitemizden yararlanabilmek için Kayıt olmalısınız.

Kullanıcı Adınız:
  

Şifreniz:
  





Forumda Ara

(Gelişmiş Arama)

Forum İstatistikleri
» Toplam Üyeler: 1.803
» Son Üye: Bartolomeo17
» Toplam Konular: 3.616
» Toplam Yorumlar: 29.521

Detaylı İstatistikler

Son Aktiviteler
Delphinin Geleceği
Forum: Muhabbet Olsun
Son Yorum:

mustafaozpinar
3 saat önce
» Yorumlar: 6
» Okunma: 214
combobox veriyi edit text...
Forum: Genel Programlama
Son Yorum:

HuseyinF
Dün, Saat: 16:47
» Yorumlar: 5
» Okunma: 287
Super Tombala (Bingo) v1....
Forum: Program Tanıtımı
Son Yorum:

Super Tombala
Dün, Saat: 10:28
» Yorumlar: 0
» Okunma: 58
edit1 change işlem yapma
Forum: Genel Programlama
Son Yorum:

erdogan
Dün, Saat: 10:25
» Yorumlar: 10
» Okunma: 121
Auth foksiyonunu çevirece...
Forum: Uygulama Yazdırma
Son Yorum:

seci20
Dün, Saat: 06:51
» Yorumlar: 8
» Okunma: 344
Oyun kartı için fikir ve ...
Forum: Genel Programlama
Son Yorum:

Super Tombala
22-08-2019, Saat: 23:32
» Yorumlar: 19
» Okunma: 1.575
FMX Örnek Projeler
Forum: Açık Kaynaklar
Son Yorum:

SimaWB
22-08-2019, Saat: 23:12
» Yorumlar: 0
» Okunma: 54
vlc den yayın yapmak
Forum: Genel Programlama
Son Yorum:

Kerembacioglu
22-08-2019, Saat: 18:35
» Yorumlar: 2
» Okunma: 81
Android ile PC Arasında d...
Forum: Mobil Platform - FireMonkey (FMX)
Son Yorum:

bsogulcan
22-08-2019, Saat: 16:03
» Yorumlar: 3
» Okunma: 132
Delphi 10.3.2 için BTG Tü...
Forum: Muhabbet Olsun
Son Yorum:

edo
22-08-2019, Saat: 14:16
» Yorumlar: 12
» Okunma: 365

 
  Android Klavyenin Açılma Durumu
Yazar: Emrah Karagöz - 30-07-2019, Saat: 14:57 - Forum: Mobil Platform - FireMonkey (FMX) - Yorum Yok

Merhaba Fmx ile bir saha satış uygulaması üzerinde çalışıyorum
bir stok tanıtım formu yaptım listbox'da alt alta TEdit'ler var
formu kaydırmak için dokunup kaydırmaya başlamadan önce hemen klavye açılıyor
Marketten indirip test ettiğim diğer programlarda bu şekilde olmuyor
Editlere dokunur dokunmaz klavye açılmıyor 
kısa süre  dokunup çekince açılıyor kaydırma durumunda da açılmıyor

Tam Anlatabildim mi bilmiyorum ama Fmx de bu durumu nasıl değiştirebilirim ,
Yani Dokununca değil çekince açılsın
Aynı Durum comboboxlarda da var

Bu konuyu yazdır

  Sanal makine de Delphi ?
Yazar: Mr.Developer - 30-07-2019, Saat: 11:00 - Forum: Muhabbet Olsun - Yorumlar (8)

Günaydın,

Bilgisayarıma bir linux Sürümü kurmak istiyorum fakat tek engel Delphi olduğu için hep vazgeçtim kurmaktan.
ve aklıma delphi'yi sanal makine de kullanma fikri geldi fakat bu sefer de nasıl bir performans alırım, ne gibi sorunlar çıkar bilmiyorum. 
bende sizlere sorayım dedim.

Bilgisayar da linux üzerindeki sanal makinede kurulu olan Windows'da Delphi kullanmak ne kadar mantıklı bir iştir ?

Bu konuyu yazdır

  Fiyatlar çok cazip
Yazar: ahmetb - 29-07-2019, Saat: 23:52 - Forum: Merakımdan Soruyorum - Yorumlar (4)

Merhaba;

Bir şeye bakarken buldum bu uygulamaların fiyatları çok cazip değil mi?


Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Bu konuyu yazdır

  ZLib ve Webservis
Yazar: narkotik - 29-07-2019, Saat: 16:16 - Forum: Genel Programlama - Yorum Yok

Merhaba, 
Aşağıdaki kod ile ZLib string veri sıkıştırma işlemi yapıyorum. Delphi ile yazdığım WebServisten bu sıkıştırılmış veriyi geriye döndürüyorum. Fakat get metodu ile alırken "Metin içeriğinde geçersiz karakter bulundu" hatası alıyorum. Çünkü sıkıştırılmış veride unicode karakterler var. Sıkıştırılmış veriyi Base64'e convert edip geriye döndürürsem herhangi bir sorunum kalmıyor. Buradaki sorunum Base64'e dönüştürürsem sıkıştırma 40/1 'den 20/1'e düşüyor. Base64 convert etmeden bu işlemi nasıl gerçekleştirebiliriz?

uses ZLib;
function ZLibCompress(const AValue:String):String;
Var
 xCompressor : TZCompressionStream;
 xIn,xOut    : TStringStream;
begin
 Result := '';
 xIn    := TStringStream.Create(AValue);
 xOut   := TStringStream.Create;
 try
   xCompressor := TZCompressionStream.Create(clMax,xOut);
   try
     xCompressor.CopyFrom(xIn,xIn.Size);
   finally
     FreeAndNil(xCompressor);
   end;
   Result := xOut.DataString;
 finally
   FreeAndNil(xOut);
   FreeAndNil(xIn);
 end;
end;

Bu konuyu yazdır

  Orta Düzeyde Delphi Geliştiricileri Aranıyor
Yazar: bajerli - 29-07-2019, Saat: 15:35 - Forum: Uygulama Yazdırma - Yorum Yok

Merhabalar Geliştirmiş olduğumuz bir proje için ara ara destek verip uyuglama nın çeşitli bölümlerini geliştiricek orta düzeyde mssql ve delphi bilgisine sahip uzamanlar aramktayız.Mall of istanbul da olan ofisimizde kendi bilgisayarlarımızda geliştirme yapılacaktır.ilgilenenler lütfen mkrhan@gmail.com veya murat.karahan@leafind.org adresine mail atınız.

İstanbul avrupa yakası tercihimzidir.
Saygılarımla

Bu konuyu yazdır

  Sp ornegi ariyorum
Yazar: 41linea41 - 29-07-2019, Saat: 13:34 - Forum: FireBird - Yorumlar (4)

Merhaba

Surekli olarak syntax hatasi aliyorum ve cozemedim.
Basit bir sp nizin ddl kismini ornek olarak verebilir misiniz.
Select ve update olarak.
Noktalama hatasi yapiyorum sanirim.fb 3.0 kullaniyorum

İyi calismalar.

Bu konuyu yazdır

  PostgreSQL Veri Tabanı Erişimi için katı Güvenlik
Yazar: 3ddark - 29-07-2019, Saat: 11:19 - Forum: PostgreSQL - Yorumlar (3)

Güvenliği arttırmak için yazdığınız uygulamanın veri tabanına sadece belirli ip adreslerinin dışında erişim yapılmasını engellemek istiyorsanız.
PostgreSQL bunun için kolayca uygulayabileceğiniz bir ayar sunuyor.

PostgreSQL kurulu olduğu dizin içinde pg_hba.conf dosyası mevcut. Bu dosya içinde hangi veri tabanlarına hangi ip adresi/adresleri/ip blokları bağlantı kursun burada belirte biliyoruz. 
Daha fazla ayrıntılı bilgi bu dosya içinde mevcut.

Aşağıdaki ilk satırda 162.168.1 ile başlayan tüm ip adresleri bağlanabilir.
ikinci satırda ise sadece 192.168.1.25 ip adresi bağlantı kurabilir şeklinde tanımla yapılmış durumda. Buna ilave olarak app1 ve app2 veri tabanlarına bağlantı sağlanabiliyor.

# TYPE  DATABASE        USER                                      ADDRESS               METHOD
host    my_app_db       baglanti_kuracak_db_user_name             192.168.1.0/24        md5
host    app1, app2      baglanti_kuracak_db_user_name             192.168.1.25/32       md5

Belirtmeyi unuttum ayrıca bu ayarların aktif olması için postgres servisinin yeniden başlatılması gerekiyor. Servis başlarken bu dosyayı bir kere okuyor.
Linux ve Windows tarafında yeniden başlatılmak zorunda.

Bu konuyu yazdır

  PostgreSQL Audit Yedekleme (Tablolardaki yapılan işlemlerin kayıt altına alınması)
Yazar: 3ddark - 29-07-2019, Saat: 11:06 - Forum: PostgreSQL - Yorum Yok

Sırayı karışık yazdım. Önce trigger fonksiyonları tanımla daha sonra audit tablosu daha sonrada tablolardaki trigger çağırma kodlarını tanımlarsan doğru olacaktır.

Öncelikle audit yani log tablosunda hangi bilgileri tutacaksan buraya ekleyeceksin. Ben aşağıda yazdığım bilgileri tuttuyorum.

  • username (veri tabanı bağlantısı kurulan kullanıcının adı), 
  • ip (bağlantının sağlandığı IP adresi),
  • table_name (işlem yapılan tablonun adı), 
  • row_id (tablodaki tanımlı ID bilgisi Tüm tablolarında tek bir isimde tanımlı olmak zorunda aksi halde hata alabilirsin),
  • access_type (erişim tipi yani insert, update, delete burada belirtiliyor),
  • time_of_change (işlemin yapıldığı tarih saat),
  • old_val (update işleminde update yapılmadan önceki değeri belirtir veya delete işleminde silinen bilgiyi gösterir),
  • new_val (insert işleminde girilen kaydın bilgilerini verir, update işleminde girilen yeni değeri verir)

audit tablosu aşağıda
CREATE TABLE public.audit
(
 id serial,
 username character varying(16) NOT NULL,
 ip character varying(32) NOT NULL,
 table_name character varying(36) NOT NULL,
 row_id integer NOT NULL,
 access_type character varying(16) NOT NULL,
 time_of_change timestamp without time zone NOT NULL,
 old_val text,
 new_val text,
 CONSTRAINT audit_pkey PRIMARY KEY (id)
)WITH (OIDS=FALSE);
ALTER TABLE public.audit OWNER TO postgres;

--aşağıdaki kod ile de eğer audit tablosundan silme güncelleme işlemi yapılırsa onunda kaydının tutulması sağlanıyor. Yani loglara hiç bir şekilde müdahale edilmesin.
CREATE TRIGGER shield BEFORE UPDATE OR DELETE ON public.audit FOR EACH ROW EXECUTE PROCEDURE public.shield();

Audit trigger fonksiyonun
CREATE OR REPLACE FUNCTION public.audit()
 RETURNS trigger AS
$BODY$
DECLARE
old_data TEXT;
new_data TEXT;
BEGIN
IF (TG_OP = 'DELETE') THEN
old_data := ROW(OLD.*);
INSERT INTO audit (username, ip, table_name, row_id, access_type, time_of_change, old_val) VALUES (upper(session_user), inet_client_addr(), TG_TABLE_NAME, OLD.id, TG_OP, now(), old_data);
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
old_data := ROW(OLD.*);
new_data := ROW(NEW.*);
IF old_data <> new_data THEN
INSERT INTO audit (username, ip, table_name, row_id, access_type, time_of_change, old_val, new_val) VALUES (upper(session_user), inet_client_addr(), TG_TABLE_NAME, OLD.id, TG_OP, now(), old_data, new_data);
RETURN NEW;
END IF;
ELSIF (TG_OP = 'INSERT') THEN
new_data := ROW(NEW.*);
INSERT INTO audit (username, ip, table_name, row_id, access_type, time_of_change, new_val) VALUES(upper(session_user), inet_client_addr(), TG_TABLE_NAME, NEW.id, TG_OP, now(), new_data);
RETURN NEW;
END IF;

RETURN NULL;
END;
$BODY$
 LANGUAGE plpgsql VOLATILE SECURITY DEFINER
 COST 100;
ALTER FUNCTION public.audit() OWNER TO postgres;
GRANT EXECUTE ON FUNCTION public.audit() TO postgres;

Audit için koruma trigger fonksiyonun
Eğer audit tablosundan silme güncelleme işlemi yapılırsa onunda kaydının tutulması sağlanıyor. Yani loglara hiç bir şekilde müdahale edilmesin.
CREATE OR REPLACE FUNCTION public.shield()
  RETURNS trigger AS
$BODY$
BEGIN
  IF (TG_OP = 'DELETE') THEN
    INSERT INTO audit (username, ip, table_name, row_id, access_type, time_of_change, client_username)
    VALUES(OLD.username,  OLD.ip, OLD.table_name, OLD.row_id, OLD.access_type, OLD.time_of_change, OLD.client_username);
    RETURN OLD;
  ELSIF (TG_OP = 'UPDATE') THEN
    INSERT INTO audit (username, ip, table_name, row_id, access_type, time_of_change, client_username)
    VALUES(OLD.username,  OLD.ip, OLD.table_name, OLD.row_id, OLD.access_type, OLD.time_of_change, OLD.client_username);
    RETURN NEW;
  END IF;
  RETURN NEW;
END;$BODY$
  LANGUAGE plpgsql VOLATILE SECURITY DEFINER
  COST 100;
ALTER FUNCTION public.shield() OWNER TO postgres;
GRANT EXECUTE ON FUNCTION public.shield() TO postgres;


Buda xxx tablon ve tabloda en altta yazan trigger fonksiyonu var bu şekilde trigger aktif edilmiş ve log tutulmuş oluyor.
CREATE TABLE public.xxx_tablo
(
 id serial,
 bilgi varchar(32) not null,
 tarih date NOT NULL,
 PRIMARY KEY (id),
 UNIQUE (bilgi)
)WITH (OIDS=FALSE);
ALTER TABLE public.xxx_tablo OWNER TO postgres;
GRANT ALL ON TABLE public.xxx_tablo TO postgres;

CREATE TRIGGER audit AFTER INSERT OR UPDATE OR DELETE ON public.xxx_tablo FOR EACH ROW EXECUTE PROCEDURE public.audit();

1234; 'POSTGRES'; '192.168.xx.xxx/32'; 'xxx_tablo'; 22614; 'UPDATE'; '2019-07-29 10:56:46.364599'; '(3,"ALİ VELİ","2019-07-29")';'(3,"MEHMET FERHAT","2019-07-30")'

Bu konuyu yazdır

  listview resim çekme
Yazar: theercan - 29-07-2019, Saat: 10:48 - Forum: Mobil Platform - FireMonkey (FMX) - Yorum Yok

Arkadaşlar merhabalar kolay gelsin. veritabanından resim verisi çekip listviewin image sine dolduruyorum. örneğin 50 kayıt var. ben bunu 5 er 5 er almak istiyorum. listviewin scrollunun sonunda +5 kayıt olarak eklemek istiyorum yani. bunu nasıl yapabilirim. sql kod kısmını halletim. fakat listviewin scrol sonunda kodu tetiklemek için bir event bulamadım. sadece scrollchange eventi var oda her harket ettirdiğimde kodu çalıştırıyor ve program kasıyor. yardımcı olabilirseniz çok sevinirim.

Bu konuyu yazdır

  FMX Android Adaptive Icons kullanabilir miyiz?
Yazar: egeven - 28-07-2019, Saat: 21:55 - Forum: Mobil Platform - FireMonkey (FMX) - Yorum Yok

Merhaba,

Öncelikle Android Adaptive Icons nedir :
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Delphi Firemonkey uygulamarında Android Adaptive Icons kullanabilir miyiz?

NB_Icon_Mask_Shapes_Ext_01.gifNB_Icon_Mask_Shapes_Ext_02.gif


bir kaç deneme yaptım fakat başarılı olmadı.

1-ilk olarak android studio'da foreground ve background layerlerini oluşturdum, res/mipmap klasörü otomatik olarak oluştu   
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

2-oluşan mipmap klasörünü delphi deploy bölümüne ekledim ve Remote Path ayarlarını yaptım

3-manifest dosyasında android:icon değerini android:icon="@mipmap/ic_launcher" olarak güncelledim

sonuç olumsuz, varsayılan android iconu geliyor.

Derleyici
Delphi Rio 10.3.2, SKD 25.2.5 (SDK API-Level:android:28)

Test edilen cihaz
Android 9


Android SDK 25 fakat api level 28, Android SDK Manager ile kontrol ettiğimde SDK Tools son sürümü 25.2.5 gözüküyor ve herhangi bir güncelleme yok, SDK Tool güncellemesi mi yapılmalı veya başka neler yapabiliriz? teşekkürler.

Bu konuyu yazdır