delphi lisans hatası
“Borland License information was found, but it is not valid for delphi
You can not run delphi without this information. “ hatasını verirse aşağıdaki işlemleri yaparak çözebilirsiniz.
1-) “C:\documents and settings\username\ .borland \registry.slm” dosyasını siliniz
2-) “C:\program files\borland\delphi7\bin\D7Reg.exe” çalıştırınız.
3-) D7Reg.exe kurulumu bitirdikten sonra Delphi7’yi çalıştırınız.
delphi uygulamayı başlangıca atma (Windows StartUp)
uses Registry; procedure writeStartUp; var fRegistry: TRegistry; begin fRegistry:=TRegistry.Create; try // Geçerli kullanıcı için HKEY_CURRENT_USER // Bilgisayar için HKEY_LOCAL_MACHINE fRegistry.RootKey := HKEY_CURRENT_USER; fRegistry.OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); fRegistry.WriteString('Uygulamam','C:\Project1.exe'); fRegistry.CloseKey; finally fRegistry.Free; end; end;
delphi procedure,function bildirimleri(overload,forward)
forward:
Bazı durumlarda bir procedür veya bir fonksiyonu çağırmadan önce o procedure/function varlığını derleyiciye bildirmemiz gerekir.Tanımlandığı yerden daha önce çağrılıyorsa Undeclared Identifier hatasını verir.Basit bir örnekle açıklarsak: iki procedürümüz olsun.(procedure d1, procedure d2)
procedure d1;
begin
…
end;
procedure d2;
begin
…
end;
Böyle bir tanımlamada d2 procedüründen d1 çağrılabilir ama d1 procedüründen d2 çağrılamaz.Bu sorunu çözmek için aşağıdaki şekilde tanımlama yaparak çözeriz.
procedure d2; forward;
procedure d1;
begin
d2;
end;
procedure d2;
begin
d1;
end;
overload : Overload olayına aynı procedure/funtion ‘da farklı parametreler girmemiz veya aynı olay için farklı sayıda parametre girmemiz gibi durumlar meydana geldiğinde ihtiyaç duyulur.
örnek tanımlama ise:
procedure appmessage(metin: string; adet: integer); overload
procedure appmessage(metin: string); overload
delphi convert bmptojpg
uses Jpeg,Graphics; procedure Convert(); var Bitmap : TBitmap; JpegImg : TJpegImage; begin Bitmap := TBitmap.Create; try Bitmap.LoadFromFile('c:\a.bmp'); JpegImg := TJpegImage.Create; try JpegImg.Assign(Bitmap); JpegImg.SaveToFile('c:\a.jpg'); finally JpegImg.Free; end; finally Bitmap.Free; end; end;
delphi inifile kullanımı
Örnek ini dosyamız aşağıdaki gibi olsun:
[FORMLISTE] GENEL_BASLIK=DENEMEE GENEL_LOGO=Logo1.png GENEL_ACILIS=1 FormCaption=Form1 [LISTE] Kisi1=AD-SOYAD1 Kisi2=AD-SOYAD2 Kisi3=AD-SOYAD3 Kisi4=AD-SOYAD4 [Transfer] Transfer_Onay=1 Transfer_Kisi_ID=2
Inifile işlemleri için basit bir örnek:
uses IniFiles; procedure IniIslemleri(); var IniF: TIniFile; begin IniF:=TIniFile.Create('c:\deneme.ini'); try // Yazma İşlemi IniF.WriteString('FORMLISTE','FormCaption',Self.Caption); // Okuma İşlemi ShowMessage(IniF.ReadString('FORMLISTE','FormCaption','Bos Geldi')); // "FORMLISTE" başlığı altındaki genel tanımlamaları getirir. // Dönecek Değerler : GENEL_BASLIK,GENEL_LOGO,GENEL_ACILIS,FormCaption IniF.ReadSection('FORMLISTE',Listbox2.Items); // "Deneme.ini" içindeki genel başlıkları getirir. // Dönecek Değerler : FORMLISTE,LISTE,Transfer IniF.ReadSections(ListBox1.Items); // "FORMLISTE" başlığı altındaki genel tanımlamaları ve değerlerini getirir // Dönecek Değerler : // -------------------- // GENEL_BASLIK=DENEMEE // GENEL_LOGO=Logo1.png // GENEL_ACILIS=1 // FormCaption=Form1 IniF.ReadSectionValues('FORMLISTE',ListBox3.Items); // "TRANSFER" başlığı altındaki Title1 değerini siler. IniF.DeleteKey('TRANSFER','Title1'); finally IniF.Free; end; end;
delphi xml kullanım örneği
XML kullanabilmemiz için XMLDocument nesnesi ile işlem yapmamız gerekiyor.Elimizdeki xml örneği aşağıdaki gibi olsun:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <channels> <channel> <item> <title>Title1</title> <description>desc1</description> <link>link1</link> </item> <item> <title>Title2</title> <description>desc2</description> <link>link2</link> </item> <item> <title>Title3</title> <description>desc3</description> <link>link3</link> </item> </channel> </channels>
Aşağıdaki program da başlık.link ve açıklama alanını listbox’a atan basit bir örnektir.
procedure XMLOku; var StartItemNode, ANode : IXMLNode; sTitle, sDesc, sLink : widestring; begin XMLDocument1.Active:=False; XMLDocument1.FileName := 'c:\read.xml'; XMLDocument1.Active:=True; StartItemNode := XMLDocument1.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item'); ANode := StartItemNode; repeat sTitle := UTF8Decode(ANode.ChildNodes['title'].Text); sLink := UTF8Decode(ANode.ChildNodes['link'].Text); sDesc := UTF8Decode(ANode.ChildNodes['description'].Text); ListBox1.Items.Add(sTitle+' - '+sLink +' - '+sDesc); ANode := ANode.NextSibling; until ANode = nil; end;
delphi blob alanki resmi bilgisayara kaydetme
Oracle blob alandaki resmi bilgisayara kayıt edebilmemiz için LOBLocator nesnesini kullanacağız.Oracle query nesnesi ile sql scripti çalıştırıldıktan sonra lobfield özelliği ile LOBLocator nesnesini set edeceğiz.LOBLocator nesnesi set edildikten sonra SaveToFile özelliği ile bilgisayara kayıt edeceğiz.
procedure LogoyuKaydet(); var oraclquery : TOracleQuery; aLob : TLOBLocator; begin oraclquery:=TOracleQuery.Create(nil); try oraclquery.Session:=OracleSession; oraclquery.SQL.Text:='select sabit_logo from sabitler'; oraclquery.Execute; aLob:=oraclquery.LOBField('sabit_logo'); aLob.SaveToFile(ExtractFilePath(Application.ExeName)+'sabitlogo.jpg'); finally oraclquery.Free; end; end;
delphi grid filter root
QGrid ‘te label ‘daki isme göre yada runtime’da istenilen bir string ‘ e göre filterelemesini istiyorsak filter root özelliğini kullanabiliriz.Filter root özelliği bilgiler çekildikten sonra istenilen string’e göre tekrar filtreleme yapar.Örneğin aşağıdaki örnek’te tüm sabit bilgiler çekildikten sonra kolon1 ‘ de gözüken verilerden sadece “Turkey” olanları listelenir.
TableView1.DataController.Filter.Clear; TableView1.DataController.Filter.Root.BoolOperatorKind:=fboOr; TableView1.DataController.Filter.Root.AddItem(TableView1Column1,foLike,'Turkey',''); TableView1.DataController.Filter.Active:=True;