Hakan Can yazdı:Bence OnGetText'le falan uğraşma. İşini iyice karıştıracaksın.
Şöyle bir yöntem izleyebilirsin:
LookupCombox kullan (zaten tavsiye edilmiş). İstediğin kadar kolonu gösterebiliyorsun. Daha birçok özelliği var.
Eğer kullanıcının lookup tablonun tamamını görmesini istiyorsan OnInitPopup eventine şuna benzer bir kod yazarsın:İyi çalışmalar.Kod: Tümünü seç
procedure TMainLookupDataModule.cxEdtRep1LookupComboBoxItemMAINPropertiesInitPopup(Sender: TObject); begin if GetKeyState(VK_LMENU) >= 0 then Exit; //Eğer sol ALT tuşuna basmamışsa normal lookupcombobox görünecek with TcxLookupComboBox(Sender) do try //Burada ilgili formu gösterip istediğiniz işlemleri yaptırırsınız // // finally Abort; //Lookupcombobox'ın görünmemesini sağlamak için end; end;
CXGrid String & DB Grid olarak ayni anda kullanabilme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Hakan bey teşekkür ederim cevabınız için ancak lookupı kullanamıyorum ben neden diyeceksiniz lookupa ButtonEdit koyamıyorum. Lookup işimi tam olara göremiyor çünkü açılacak 2. tabloda dünya kadar bilgi var.. yani kişi sadece görmek değil seçerken değiştirmek de isteyebilir yani o bakımdan mutlaka benim buttonEdit kullanmam lazim..
SONUNDA HALLETTIM 
Malzemeler.
2 Kilo Unbound Kolon (Button Edit olacak)
1 Kilo Lookup Kolon ( InVisible olacak)
Tarifi aşağıda hohohoy
Deneme tabi asagidaki ama iste ayni mantik oldugundan cozulebiliyor..

Malzemeler.
2 Kilo Unbound Kolon (Button Edit olacak)
1 Kilo Lookup Kolon ( InVisible olacak)
Tarifi aşağıda hohohoy

Kod: Tümünü seç
procedure TForm1.UnBoundKoduGetDataText(Sender: TcxCustomGridTableItem;
ARecordIndex: Integer; var AText: String);
var
s : string;
begin
if BandedTableView.DataController.DisplayTexts[ARecordIndex,OgrKodu.index] <> null then
Atext := BandedTableView.DataController.DisplayTexts[ARecordIndex,OgrKodu.index];
end;
procedure TForm1.UnBoundKoduGetDisplayText(Sender: TcxCustomGridTableItem;
ARecord: TcxCustomGridRecord; var AText: String);
begin
if BandedTableView.DataController.DisplayTexts[ARecord.Index,OgrKodu.index] <> null then
Atext := BandedTableView.DataController.DisplayTexts[ARecord.Index,OgrKodu.index];
end;
procedure TForm1.UnBoundKoduPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
begin
ADOQuery1.Close;
AdoQuery1.SQL.Clear;
ADOQuery1.SQL.Text := 'SELECT REFNO FROM ogretmen WHERE KODU = :KODU';
adoquery1.Parameters.ParamByName('KODU').value := DisplayValue;
Adoquery1.Active := true;
if AdoQuery1.RecordCount > 0 then
begin
ogretmen.Close;
ListeQuery.Edit;
ListeQueryogretmenrefno.AsInteger := ADOQuery1.Fieldbyname('REFNO').AsInteger;
ogretmen.Open;
end else
begin
ErrorText := 'öğretmen bulunamadı';
Error := True;
end;
end;