Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
char AnsiChar hatası
#1
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
Cevapla
#2
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...
There's no place like 127.0.0.1
WWW
Cevapla
#3
Smile Teşekkür ederim.
Cevapla
#4
@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
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#5
(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.
Cevapla
#6
Esas soruyu kimse sormamış. Neden Delphi'nin yerleşik veri türünü (Char) yeni bir tip tanımı yaparak ezmeye çalışıyorsunuz ?
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#7
(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)
Cevapla
#8
(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.
Yazılım Topluluğumuz -> Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Kişisel Tanıtım Sitem -> Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
19 y/o, sadece öğrenmeye odaklanmış, insancık..
WWW
Cevapla
#9
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)
There's no place like 127.0.0.1
WWW
Cevapla
#10
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?
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  WSDL - SOAP classes must derive from TRemotable hatası pro_imaj 11 509 22-11-2019, Saat: 23:03
Son Yorum: ismailkocacan
Smile TBCDField,TFMTBCDField , floattostr tip dönüşüm hatası(çözüldü) 41linea41 2 90 22-11-2019, Saat: 20:34
Son Yorum: 41linea41
  HTTP/1.0 302 moved temporarily. hatası erdogan 5 267 07-11-2019, Saat: 17:24
Son Yorum: uparlayan
Photo Stringlist Hatası bkantur 2 139 04-11-2019, Saat: 16:20
Son Yorum: bkantur
  IDE kapanma hatası serdar 8 349 13-10-2019, Saat: 19:19
Son Yorum: serdar



Konuyu Okuyanlar: 1 Ziyaretçi