Şehir: İstanbul
Gümrükleme, Dış Ticaret ve Lojistik sektörünün öncü kuruluşu SOLMAZ,
büyüyen iş hacmine paralel olarak ve yeni sektörlerdeki yapılanmalarını
desteklemek amacıyla, Yazılım Geliştirme Departmanı`nda görevlendirmek üzere;
* Bilgisayar Mühendisliği ya da Bilgisayar Programcılığı bölümlerinden mezun
* Nesne Yönelimli (object oriented) programlama mantığına hakim
(Delphi, C# ya da Java dillerinden birini iyi kullanan, tercihen Delphi)
* İlişkisel veritabanları, SQL kullanımı bilgisine sahip
* Tercihen 3 yıl ve üzeri tecrübeye sahip
* Tercihen ERP, gümrükleme, depolama, taşımacılık, dış ticaret, muhasebe/finansman uygulamalarından herhangi biri hakkında tecrübeli
* En az teknik dokümanları okuyabilecek düzeyde İngilizce bilen
* Araştırmacı, kendini geliştirebilen, program yazmayı seven ve takım çalışmasına yatkın
Yazılım Uzmanları arıyor.
Erkek adayların askerliğini yapmış olması ya da en az 2 sene askerlikle ilişkisi olmaması tercih nedenidir.
*** ÇALIŞMA YERİ İSTANBUL ZİNCİRLİKUYU'daki YENİ OFİSİMİZ OLACAKTIR***
İŞ TANIMI
* desktop uygulamaları
* mobil uygulamalar
* web / internet uygulamaları
* web servisleri
* yapay zeka, machine learning, big data uygulamaları
* uygulamalar arası veri aktarımı, sistem entegrasyonları, eBusiness, B2B, B2C işlemleri
* otomatik raporlama ve bilgilendirmeler
* gümrükleme, depolama, taşımacılık, kargo, lojistik, serbest bölge, sigorta, back office, vb. sektörel uygulamalar
* yönetim raporları, BI raporlamaları
* SQL sorguları, stored procedure, trigger, view, tablo vb. veritabanı tasarımı
İlan Kaynağı: https://www.kariyer.net/is-ilani/solmaz-gumruk-musavirligi-a-s-yazilim-uzmani-1899070
Kişisel web adresimdeki bloğuma gelen saldırılar sebebi ile kapatmış bulunmaktayım. Oradaki bütün paylaşımlarımı bu bloğuma tek tek ekledim ve paylaşımlarıma kendi çapımda buradan devam ediyorum.. Takip edenlere teşekkürler bilgi paylaştıkça çoğalır..
iOs etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
iOs etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
24 Nisan 2018 Salı
31 Temmuz 2014 Perşembe
Formun handle ile eventini yakalama
Merhabalar,
Kolay bi olay fakat her zaman ki gibi unutup tekrar aramamak için bloğumda yayınlıyorum :)
Olayımız delphinin bize sunduğu eventler haricinde eventleri yakalamaktır.
XE5 ile test ettim sorunsuz çalışmakta. Eğer ekli değilse "Winapi.Windows, Winapi.Messages" Kütüphanelerini eklemenizi rica edicem.
Sizlere "SC_MINIMIZE" haricinde kontrol edebileceğiniz eventleri aşağıda yazmış bulunmaktayım artık gerisi amaca hizmet edecek olan kodlardır.
Kolay bi olay fakat her zaman ki gibi unutup tekrar aramamak için bloğumda yayınlıyorum :)
Olayımız delphinin bize sunduğu eventler haricinde eventleri yakalamaktır.
XE5 ile test ettim sorunsuz çalışmakta. Eğer ekli değilse "Winapi.Windows, Winapi.Messages" Kütüphanelerini eklemenizi rica edicem.
//Tanımlanması gereken procedure procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND; procedure TMainForm.WMSysCommand(var Msg: TWMSysCommand); begin if (Msg.CmdType = SC_MINIMIZE) then begin //Burası eğer küçültme işlemi yapılırsa ne yapmak istediğiniz. end; DefaultHandler(Msg) ; end;
Sizlere "SC_MINIMIZE" haricinde kontrol edebileceğiniz eventleri aşağıda yazmış bulunmaktayım artık gerisi amaca hizmet edecek olan kodlardır.
SC_SIZE = 61440; SC_MOVE = 61456; SC_MINIMIZE = 61472; SC_MAXIMIZE = 61488; SC_NEXTWINDOW = 61504; SC_PREVWINDOW = 61520; SC_CLOSE = 61536; SC_VSCROLL = 61552; SC_HSCROLL = 61568; SC_MOUSEMENU = 61584; SC_KEYMENU = 61696; SC_ARRANGE = 61712; SC_RESTORE = 61728; SC_TASKLIST = 61744; SC_SCREENSAVE = 61760; SC_HOTKEY = 61776; SC_DEFAULT = 61792; SC_MONITORPOWER = 61808; SC_CONTEXTHELP = 61824; SC_SEPARATOR = 61455;
17 Temmuz 2014 Perşembe
Delphi android Kameradan ve galeriden resim çekme ve paylaşma
Merhabalar,
Birazdan bahsedeceğim olay embarcaderonun sitesinde mevcuttur ve bende ilk olarak oradan yararlanmıştım. 1-2 Arkadaşımın tekrar tekrar sorması üzerine türkçe bir yazıda elimizde bulunması açısından birşeyler yazmaya karar verdim.
Projeye başlayalım:
İlk olarak boş bir proje açıyoruz.
Projeye en temel olarak 1 adet TImage ve 1 adet TButton koymanız kafidir. Gerisi süslemeye girer ve maksat ekran güzel gözüksün hemen gerekli objeleri ekleyelim.
Eklenenler:
ToolBar = ToolBar
KameraBut = TButton
Align = alRight
StyleLookup= 'cameratoolbutton'
KameraResim = TImage
Align = alClient
ActionList1 = TActionList
Objelerin yerleşimleri bitirdiğinizde sıradaki işlemimiz butonumuza bir action tanımlamak ve kısa yoldan nasıl yapılacağını resim ile göstereceğim.
"Image" nesesi actiondan dönen TBitmap yani seçilen veya çekilen resimdir.
Birazdan bahsedeceğim olay embarcaderonun sitesinde mevcuttur ve bende ilk olarak oradan yararlanmıştım. 1-2 Arkadaşımın tekrar tekrar sorması üzerine türkçe bir yazıda elimizde bulunması açısından birşeyler yazmaya karar verdim.
Projeye başlayalım:
İlk olarak boş bir proje açıyoruz.
Projeye en temel olarak 1 adet TImage ve 1 adet TButton koymanız kafidir. Gerisi süslemeye girer ve maksat ekran güzel gözüksün hemen gerekli objeleri ekleyelim.
Eklenenler:
ToolBar = ToolBar
KameraBut = TButton
Align = alRight
StyleLookup= 'cameratoolbutton'
KameraResim = TImage
Align = alClient
ActionList1 = TActionList
Şuandaki işlemimiz resimleri projemize almak olduğuna göre:
1-) TTakePhotoFromLibraryAction = Galeriden foto alma
2-) TTakePhotoFromCameraAction = Kameradan foto alma
Hangi seçeneği uygulamak isterseniz tıklayınca o action tanımlansın.
Tanımlama işleminden sonra yine Event sekmesinden "Action" eventinin sol tarafındaki "+" artı işaretine tıklayarak genişletiniz.
OnDidFinishTaking eventi içerisine aşağıdaki kodu yazarak kameradan çekilen veya galeriden seçilen resimi TImage nesnemize alıyoruz.
procedure TKameraScreen.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap); begin KameraResim.Bitmap.Assign(Image); end;
"Image" nesesi actiondan dönen TBitmap yani seçilen veya çekilen resimdir.
İlk Görünüm:
Resim çekme anı:
Çekilen resimin TImage içerisine Assign olmuş hali:
Sosyal Paylaşım Butonu:
Tanımlama işleminden sonra yine Event sekmesinden "Action" eventinin sol tarafındaki "+" artı işaretine tıklayarak genişletiniz.
OnBeforeExecute eventi içerisine aşağıdaki kodu yazarak TImage nesnemiz içerisindeki resmi sosyal resim paylaşma eventi ile alıcı uygulamalara gönderiyoruz.
procedure TKameraScreen.ShowShareSheetAction1BeforeExecute(Sender: TObject); begin ShowShareSheetAction1.Bitmap.Assign(KameraResim.Bitmap); end;
Etiketler:
Android,
android resim çekme,
android resim paylaşma,
android share picture,
android take picture,
Barış atalay,
delphi android resim,
delphi IOS,
iOs,
RAD Studio XE6
25 Haziran 2014 Çarşamba
Delphi Android ve IOS Mac adresi bulma
Örnek Resim
ANDROID:
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wInfo = wifiManager.getConnectionInfo(); String macAddress = wInfo.getMacAddress();
IOS:
Uses
{$IFDEF IOS}
iOSApi.UIKit;
{$ENDIF}
var
{$IFDEF IOS}
Device : UIDevice;
{$ENDIF}
begin
{$IFDEF IOS}
Device := TUIDevice.Wrap(TUIDevice.OCClass.currentDevice);
ShowMessage(Device.uniqueIdentifier.UTF8String);
ShowMessage(Device.identifierForVendor.UUIDString.UTF8String);
{$ENDIF}
end;
23 Haziran 2014 Pazartesi
X-SuperObject
Günümüz teknolojisi ile gelişen Delphi'de bir çoğumuzun JSON kullandığı ve bunu en güzel bir biçimde SuperObject ile yaptığı aşikardır.
Rad Studio'nun son versiyonu olan XE5 ile artık IOS yanında Android platformunada el atmış bulunmaktayız. Ne yazıkki SuperObject bu yeni platformlarda çalışmamasından dolayı DBXJson kullanmak istemeyenler için bizim şirketten bir abimin hazırladığı X-SuperObject'i Delphi'de IOS, Android, MacOS, Windows platformlarının hepsinde hiç bir sorun yaşamadan kullanabilirsiniz.
Örnekleri inceleyerek nasıl kullanıldığı hakkında bilgi edinebilirsiniz.
Link X-SuperObject için Tıklayınız.
Örnek JSON
Link X-SuperObject için Tıklayınız.
Örnek JSON
{
"name": "Barış ATALAY",
"vip": true,
"telephones": ["000000000", "111111111111"],
"age": 24,
"size": 1.72,
"adresses": [
{
"adress": "blabla",
"city": "Antalya",
"pc": 7160
},
{
"adress": "blabla",
"city": "Adana",
"pc": 1170
}
]
}
Delphi Code
var
X: ISuperObject;
begin
X := TSuperObject.Create('{}');
X.S['name'] := 'Barış ATALAY';
X.B['vip'] := true;
with X.A['telephones'] do
begin
Add('000000000');
Add('111111111111');
end;
X.I['age'] := 24;
X.F['size'] := 1.72;
with X.A['adresses'].O[0] {Auto Create} do
begin
S['adress'] := 'blabla';
S['city'] := 'Antalya';
I['pc'] := 7160;
end;
// or
X.A['adresses'].O[1].S['adress'] := 'blabla';
X.A['adresses'].O[1].S['city'] := 'Adana';
X.A['adresses'].O[1].I['pc'] := 1170;
Super Expression
const
JSON = '{ "o": { '+
' "1234567890": {'+
' "last use date": "2010-10-17T01:23:20",'+
' "create date": "2010-10-17T01:23:20",'+
' "name": "iPhone 8s"'+
' }'+
' },'+
' "Index": 0, '+
' "Data": {"Index2": 1}, '+
' "a": [{'+
' "last use date": "2010-10-17T01:23:20",'+
' "create date": "2010-11-17T01:23:20",'+
' "name": "iPhone 8s",'+
' "arr": [1,2,3] '+
' }, '+
' {'+
' message: "hello"'+
' }]'+
'}';
var
X: ISuperObject;
NewJSon: ISuperObject;
NewArray: ISuperArray;
begin
X := SO(JSON);
ShowMessage( X['o."1234567890"."last use date"'].AsString );
ShowMessage( X['a[Index]."create date"'].AsString );
ShowMessage( X['a[Data.Index2].message'].AsString );
X['a[0].arr'].AsArray.Add('test1');
// -----
NewJSON := X['{a: a[Index], b: a[Data.Index2].message, c: o."1234567890".name, d: 4, e: a[0].arr[2], f: " :) "}'].AsObject;
NewArray := X['[a[Index], a[Data.Index2].message, Data.Index2, Index, 1, "1", "test"]'].AsArray;
end;
Variant
var
X: ISuperObject;
begin
X := TSuperObject.Create;
X.V['A'] := 1;
X.V['B'] := '2';
X.V['C'] := 1.3;
X.V['D'] := False;
X.V['E'] := Null;
Memo1.Lines.Add(X.AsJSON);
end;
Output
{"A":1,"B":"2","C":1.3,"D":false,"E":null}
Sample 2
const
JSN = '{ '+
' "adresses": [ '+
' { '+
' "adress": "blabla", '+
' "city": "Antalya", '+
' "pc": 7160 '+
' },'+
' { '+
' "adress": "blabla", '+
' "city": "Adana", '+
' "pc": 1170 '+
' } '+
' ] '+
'}';
var
X, Obj: ISuperObject;
J: Integer;
begin
X := TSuperObject.Create(JSN);
with X.A['adresses'] do
for J := 0 to Lenght -1 do
begin
Obj := O[J];
Obj.First;
while not Obj.EoF do
begin
Memo1.Lines.Add( Obj.CurrentKey + ' = ' + VarToStr(Obj.CurrentValue.AsVariant));
Obj.Next;
end;
Memo1.Lines.Add('------');
end;
end;
OR (Enumerator)
var
X: ISuperObject;
AMember,
OMember: IMember;
begin
X := TSuperObject.Create(JSN);
for AMember in X.A['adresses'] do
begin
for OMember in AMember.AsObject do
Memo1.Lines.Add(OMember.Name + ' = ' + OMember.ToString);
Memo1.Lines.Add('------');
end;
Output
adress = blabla
city = Antalya
pc = 7160
------
adress = blabla
city = Adana
pc = 1170
Marshalling
type
TTestSet = (ttA, ttB, ttC);
TTestSets = set of TTestSet;
TSubRec = record
A: Integer;
B: String;
end;
TSubObj = class
A: Integer;
B: Integer;
end;
TTest = class // Field, Property Support
private
FB: String;
FSubObj: TSubObj;
FSubRec: TSubRec;
FTestSets: TTestSets;
public
A: Integer;
B: TTestSet;
C: Boolean;
property D: String read FB write FB;
property E: TSubRec read FSubRec write FSubRec;
property F: TSubObj read FSubObj write FSubObj;
property G: TTestSets read FTestSets write FTestSets;
end;
TTestRec = record // Only Field Support
A: Integer;
B: TTestSet;
C: Boolean;
D: String;
E: TSubRec;
F: TSubObj;
G: TTestSets;
end;
implementation
...
var
Parse: TTest; // For Class;
S: String;
begin
Parse := TTest.FromJSON('{"A": 1, "B": 0, "C": true, "D": "Hello", "E":{"A": 3, "B": "Delphi"}, "F": {"A": 4, "B": 5}, "G": [0,2]}');
S := Parse.AsJSON;
end;
...
var
Parse: TTestRec; // For Record;
S: String;
begin
Parse := TSuperRecord.FromJSON('{"A": 1, "B": 0, "C": true, "D": "Hello", "E":{"A": 3, "B": "Delphi"}, "F": {"A": 4, "B": 5}, "G": [0,2]}');
S := TSuperRecord.AsJSON(Parse);
end;
Etiketler:
Android,
Delphi,
Delphi XE5 - XE6,
FireMonkey,
iOs,
Mobil Uygulama,
RAD Studio,
superobject,
x-superobject,
xe5,
xe6
Delphi CxGrid koşula göre hücre renklendirme işlemi
Herkese iyi çalışmalar..
Son zamanlarda dikkatime takılan bu konunun bir çok yerde sorulması ve parça parça cevaplar verilmesinden dolayı tek bir başlıkta ayrıntılı anlatmak istedim bu olayı.
Başlıktan da anlaşıldığı gibi satır renklendirme değil çoğu arkadaşımızın kullandığı hücre renklendirme olayından bahsedeceğiz.
İlk olarak hangi sütunumuzda bu hücre renklendirme olayını gerçekleştireceksek o sütuna tıklayıp "EVENTS" bölümünden "OnCustomDrawCell" bölümüne çift tıklayarak kod kısmına geçiyoruz ve başlıyoruz.
Son zamanlarda dikkatime takılan bu konunun bir çok yerde sorulması ve parça parça cevaplar verilmesinden dolayı tek bir başlıkta ayrıntılı anlatmak istedim bu olayı.
Başlıktan da anlaşıldığı gibi satır renklendirme değil çoğu arkadaşımızın kullandığı hücre renklendirme olayından bahsedeceğiz.
İlk olarak hangi sütunumuzda bu hücre renklendirme olayını gerçekleştireceksek o sütuna tıklayıp "EVENTS" bölümünden "OnCustomDrawCell" bölümüne çift tıklayarak kod kısmına geçiyoruz ve başlıyoruz.
if AViewInfo.GridRecord.Values[Buraya koşulun aranacak olduğu sütunun index değeri] = 'Virman' then begin ACanvas.Brush.Color := clRed; //Burası koşulumuz sağlanırsa hücre içerisinin arka plan rengi ACanvas.Font.Color := clWhite;//Burası koşulumuz sağlanırsa hücre içerisinin yazı rengi end;Yukarıdaki örnekte 1 sütundaki string koşul var ise hücre biçimlendirmeyi yaptık şimdiki küçük canlı örneğimizde rengarenk hücreleri yapacağız.
if AViewInfo.GridRecord.Values[BankaHareketTabloQryBAS.Index] = 'Borç' then begin ACanvas.Brush.Color := clRed; ACanvas.Font.Color := clWhite; end else if AViewInfo.GridRecord.Values[BankaHareketTabloQryBAS.Index] = 'Alacak' then begin ACanvas.Brush.Color := clGreen; ACanvas.Font.Color := clWhite; end else if AViewInfo.GridRecord.Values[BankaHareketTabloQryBAS.Index] = 'Sıfır' then begin ACanvas.Brush.Color := $0080A9FF; ACanvas.Font.Color := clBlack; end;
Etiketler:
Android,
cxgrid,
cxgrid hücre,
Delphi,
FireMonkey,
iOs,
Mobil Uygulama,
RAD Studio,
xe5
Kaydol:
Kayıtlar (Atom)







