Delphi Can
char AnsiChar hatası - Baskı Önizleme

+- Delphi Can (http://www.delphican.com)
+-- Forum: Delphi (http://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (http://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: char AnsiChar hatası (/showthread.php?tid=3891)

Sayfalar: 1 2


char AnsiChar hatası - Kerembacioglu - 17-08-2019

Merhaba,


Biraz karışık durumla karşı karşıyayım bir unit oluşturdum.


bu unitte
Type
 char = AnsiChar;
var. 

Main forumdaki tedit için Char için hata alıyorum bu sorunu nasıl çözerim?

procedure TMainForm.EditSearchKeyPress(Sender: TObject; var Key: Char);
begin
  Listele(Sender);
end;

[dcc32 Error] Main.pas(2713): E2066 Missing operator or semicolon
[dcc32 Error] Main.pas(2713): E2008 Incompatible types
[dcc32 Fatal Error] Main.pas(2713): E2226 Compilation terminated; too many errors
Failed


char AnsiChar hatası - SimaWB - 18-08-2019

Kullandığınız Delphi versiyonunu belirtmemişsiniz ama genel olarak aynı isimde farklı unit'lerden tipler kullanılmak istendiğinde UnitIsmi.TipIsmi şeklinde kullanılabilir.
Sizin örnekte EditSearchKeyPress'teki Char yerine System.Char yazarak kullanabilirsiniz(Hem interface bölümünde hem de implementation bölümünde bunu yapmalısınız)

Not: Aslında aldığınız ilk hata (E2066) bununla ilgili gibi gözükmüyor. Öncelikle o sorun halledilmeli gibi...


char AnsiChar hatası - Kerembacioglu - 18-08-2019

Smile Teşekkür ederim.


char AnsiChar hatası - adelphiforumz - 19-08-2019

@SimaWB hocamın paylaşımına ilaveten type declerasyonu yaptığınız bir unit te oluşturuabilirsiniz
Böylece projde kullanılan tüm unitler bir yerde olmuş olur ve bazı yazım problemlerinin önünede geçmiş olabilirsiniz


Cvp: char AnsiChar hatası - Kerembacioglu - 19-08-2019

(19-08-2019, Saat: 11:45)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.@SimaWB  hocamın paylaşımına ilaveten type declerasyonu yaptığınız bir unit te oluşturuabilirsiniz
Böylece projde kullanılan tüm unitler bir yerde olmuş olur ve bazı yazım problemlerinin önünede geçmiş olabilirsiniz

Anladım, teşekkür ederim.


char AnsiChar hatası - Tuğrul HELVACI - 20-08-2019

Esas soruyu kimse sormamış. Neden Delphi'nin yerleşik veri türünü (Char) yeni bir tip tanımı yaparak ezmeye çalışıyorsunuz ?


char AnsiChar hatası - serdar - 20-08-2019

(20-08-2019, Saat: 08:43)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Esas soruyu kimse sormamış. Neden Delphi'nin yerleşik veri türünü (Char) yeni bir tip tanımı yaparak ezmeye çalışıyorsunuz ?

Type
char = AnsiChar;

Tugrul hocam haklı char tipini ansichar ile yok etmek üzeresiniz Smile)


Cvp: char AnsiChar hatası - Halil Han Badem - 20-08-2019

(20-08-2019, Saat: 08:43)Tuğrul HELVACI Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Esas soruyu kimse sormamış. Neden Delphi'nin yerleşik veri türünü (Char) yeni bir tip tanımı yaparak ezmeye çalışıyorsunuz ?

Sanırsam isim olarak "char" koymak istenmiş. Char veri türü olduğunu hesap edilmemiş diye tahmin ediyorum.


char AnsiChar hatası - SimaWB - 20-08-2019

Delphi'nin eski versiyonlarında (2009 öncesi) yazılan bazı kütüphaneleri yeni versiyonlarda kullanmak için bu tarz bir dönüşüm ile günü kurtarabiliyoruz. (Tabii ki asıl yapılması gereken ilgili kaynağı unicode'a uygun hale getirmek)


char AnsiChar hatası - mustafaozpinar - 21-08-2019

Esasen Delphi geliştiricileri (Embarcadero) olayın sorun haline gelmesine yol açtı. Eski versiyonlarda Char = AnsiChar iken yeni versiyonlarda (Sanırım XE7'den itibaren) Char = WideChar ve String = WideString (ya da = UnicodeString) oldu. Tabii bu da pek çok kütüphanenin elden geçirilmesini gerektirdi. Eğer 2009 ya da 2010 versiyonunda bunu yapsalardı bu problemler çok daha az yaşanacaktı.
Kerembacioglu'nun sorusuna gelince, aldığı hatayı bir event'in parametrelerinden birini farklı bir tiple tanımlamaya kalkması nedeniyle alıyor. Tuğrul Helvacı'nın sorusu çok yerinde. Standart bir tipi niçin değiştiriyorsunuz?