Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   with - Anweisung in C++ (https://www.delphipraxis.net/60520-anweisung-c.html)

BrunoT 8. Jan 2006 12:41


with - Anweisung in C++
 
Hi DP'ler,

ich muss ein bißchen crossover programmieren und einige Sachen aus Delphi in C++ portieren. So auch eine Datenbankanwendung.

Ich habe also ein Datenmodul mit Table und Datasource. wenn ich nun in Delphi darauf zugreifen will geht das ja so:

Delphi-Quellcode:
  with Data.Table1 do
  begin
    Append;
    FieldByName('Name'):='Meier';
    post;
  end;
in C++ schreibe ich bisher so:

Code:
Data->Table1->Append();
Data->Table1->FieldByName("Name")="Meier";
Data->Table1-Post();
bei vielen Feldern ist das nervig und teilweise unübersichtlich. gibt es in C++ auch die Möglichkeit so wie mit einer with - Anweisung zu arbeiten?

sorry, es ist 20Jahre her, dass ich aktiv Ansi-C programmiert habe.

mfg

BrunoT

Oxmyx 8. Jan 2006 12:59

Re: with - Anweisung in C++
 
Nö, gibt's nicht. Du kannst es mit einem neuen Zeiger höchstens etwas kürzer machen:
Code:
Tabelle tab = voellig->umstaendlich->und->lang->diese->ewigen->indirektionen->zur->tabelle;
tab->Append();
...

BrunoT 8. Jan 2006 13:16

Re: with - Anweisung in C++
 
Hi Oxmyx,

danke für die schnelle Antwort, das mit dem extra-Zeiger werde ich mal ausprobieren.

Da gibt es aber noch ein gleichgelagertes Problem, welches ich bisher mit with erschlagen hatte:

Bei TeeChart hatte ich bisher so eine Konstruktion:

Delphi-Quellcode:
  with Serie as TLineSeries do
    Begin
      Serie.Marks.Visible:=false;    
      Serie.YValue[Anz-1]:=p;
    end;
Hier wird ja ein Typ erzwungen, wie bei

Delphi-Quellcode:
with Tcomponent as TButton do
wie löst man das in C++?

(Nicht meckern, wegen neuer Frage- neuer Thread, Ist ja das selbe Problem, sorry)

mfg

BrunoT

Oxmyx 8. Jan 2006 13:34

Re: with - Anweisung in C++
 
Da gibt's mehrere Möglichkeiten.
Code:
static_cast<TLineSeries*>(Serie)
static_cast nimmt keine Typprüfung vor.
Code:
reinterpret_cast<TLineSeries*>(Serie)
reinterpret_cast konvertiert einen Zeiger in einen anderen Zeiger, ist aber ebenfalls nicht typsicher.
Code:
dynamic_cast<TLineSeries*>(Serie)
dynamic_cast nimmt eine Typprüfung vor und ist somit typsicher.

BrunoT 9. Jan 2006 11:39

Re: with - Anweisung in C++
 
Thanks Oxmyx,

habe erst jetzt Zeit gefunden zu antworten. Ich habe mir die Hinweise ausgedruckt und werde dem nachgehen. (ich lobe mir Delphi)

mfg

BrunoT


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf