AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

verkettungsproblem

Ein Thema von Florian_ · begonnen am 5. Jan 2005 · letzter Beitrag vom 5. Jan 2005
Antwort Antwort
Florian_

Registriert seit: 15. Sep 2004
Ort: Merzig
5 Beiträge
 
#1

verkettungsproblem

  Alt 5. Jan 2005, 17:01
hallo!

bin neu hier, also erst mal hallo

hab aber auch gleich ne frage...
versuche eine record variable mit einem normalen string zu verketten...
ist das überhaupt möglich?gibts da vieleicht ne funktion für?

[Fehler] main.pas(118): Inkompatible Typen: 'String' und 'recordvariable'
vielen dank schon mal
Linux Love:
unzip;strip;touch;finger;mount;fsck;more;yes;unmou nt;sleep
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: verkettungsproblem

  Alt 5. Jan 2005, 17:21
Moin Florian,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Du solltest mal die Deklarationen zeigen, und dann auch mal kommentieren, was Du vorhast, denn so kann man nur sagen:
Wenn die Typen nicht zueinander passen kann man sie auch nicht verknüpfen.
Vielleicht brauchst Du ja nur einen Typecast.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Florian_

Registriert seit: 15. Sep 2004
Ort: Merzig
5 Beiträge
 
#3

Re: verkettungsproblem

  Alt 5. Jan 2005, 17:58
hi!

danke danke

Zitat:
Vielleicht brauchst Du ja nur einen Typecast.
könntest du bitte erklären typecast?

also...

ich habe einen record TFahrzeug und davon eine variable Fahrzeug abgeleitet

desweitern

Code:
list :array[0..8] of string = ('Hersteller', 'Typ', 'Baujahr', 'Farbe',
                                   'Türzahl', 'Motor', 'Hubraum', 'Leistung', 'Preis');


und hier wo ich hänge...


Code:
for i := 0 to 8 do
  begin
  SG_AUSGABE.Cells[i,puffer] := Fahrzeug + list[i];
  end;

mfg florian
Linux Love:
unzip;strip;touch;finger;mount;fsck;more;yes;unmou nt;sleep
  Mit Zitat antworten Zitat
paresy

Registriert seit: 24. Aug 2004
Ort: Lübeck
105 Beiträge
 
Delphi 2007 Professional
 
#4

Re: verkettungsproblem

  Alt 5. Jan 2005, 18:11
wenn ich richtig rate... ist 'Fahrzeug' dein Record TFahrzeug.... wäre auch gut wenn du diese hier mal zeigst.

wenn sie so aufgebaut ist wie dein string array und ich erahne was du suchst:

Delphi-Quellcode:
for i:=0 to 8 do
 case i of
  0: SG_AUSGABE.Cells[i,puffer] := list[i] + Fahrzeug.Hersteller;
  1: SG_AUSGABE.Cells[i,puffer] := list[i] + Fahrzeug.Typ;
...
 end;
war nur soeine idee... paresy
  Mit Zitat antworten Zitat
Florian_

Registriert seit: 15. Sep 2004
Ort: Merzig
5 Beiträge
 
#5

Re: verkettungsproblem

  Alt 5. Jan 2005, 19:26
hoi!

zum verständniss
diese liste

Code:
list :array[0..8] of string = ('Hersteller', 'Typ', 'Baujahr', 'Farbe',
                               'Türzahl', 'Motor', 'Hubraum', 'Leistung', 'Preis');
sollte eigentlich zuerst nur dafür da sein um die stringgridbeschriftung nicht von hand zu fuss zu machen sondern mithilfe einer schleife

Code:
for i := 0 to 8 do
  begin
  SG_AUSGABE.Cells[i,0] := list[i];
  end;
dies sind also die überschriften und werden so übernommen

nun sieht mein record so aus:

Code:
type
  TFahrzeug = record
    Hersteller : string;
    Typ       : string;
    Baujahr   : integer;
    Farbe     : string;
    Tuerzahl  : integer;
    Motor     : string;
    Hubraum   : real;
    Leistung  : real;
    Preis     : real;
  end;

und so gehts weiter

Code:
with Fahrzeug do
  begin
  Hersteller := ED_HER.Text;
  Typ       := ED_TYP.Text;
  Baujahr   := StrToInt(ED_BAU.Text);
  Farbe     := ED_FARB.Text;
  Tuerzahl  := StrToInt(ED_TUER.Text);
  Motor     := ED_MOTOR.Text;
  Hubraum   := StrToFloat(ED_HUB.Text);
  Leistung  := StrToFloat(ED_LEISTUNG.Text);
  Preis     := StrToFloat(ED_PREIS.Text);

da die namen gleich sind (record und liste) wollte ich mir ersparen 9 mal zu schreiben


Code:
SG_AUSGABE.Cells[0,puffer] := Fahrzueg.Hersteller;
SG_AUSGABE.Cells[1,puffer] := Fahrzueg.Typ;
usw.

sondern wollte es mit hilfe einer stringverknüpfung lösen

Code:
for i := 0 to 8 do
  begin
  SG_AUSGABE.Cells[i,puffer] := Fahrzeug + list[i];
  end;
dadurch ist auch der erwähnte fehler verursacht worden der mich zu dem posting gebracht hat
habe jetzt mit hilfe von deiner version paresy folgendes hinbekommen:
Code:
  for i := 0 to 8 do
    begin
    case i of
    0: SG_AUSGABE.Cells[i,puffer] := Hersteller;
    1: SG_AUSGABE.Cells[i,puffer] := Typ;
    2: SG_AUSGABE.Cells[i,puffer] := IntToStr(Baujahr);
    3: SG_AUSGABE.Cells[i,puffer] := Farbe;
    4: SG_AUSGABE.Cells[i,puffer] := IntToStr(Tuerzahl);
    5: SG_AUSGABE.Cells[i,puffer] := Motor;
    6: SG_AUSGABE.Cells[i,puffer] := FloatToStr(Hubraum);
    7: SG_AUSGABE.Cells[i,puffer] := FloatToStr(Leistung);
    8: SG_AUSGABE.Cells[i,puffer] := FloatToStr(Preis);
    end;
funtzt auch ist aber vom schreibaufwand eigentlich genauso wie wenn ich die cells einzeln fülle würde
hoffe das wa jetzt relativ verständlich

mfg
Linux Love:
unzip;strip;touch;finger;mount;fsck;more;yes;unmou nt;sleep
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: verkettungsproblem

  Alt 5. Jan 2005, 22:58
Moin Florian,

geht aber nicht anders, ausser Du nimmst statt Feldnamen, was meiner Meinung nach prinzipiell vorzuziehen ist, ein array of string, wie bei der Konstanten.
Dann müssten natürlich auch die Float-Werte schon als string gespeichert werden.

Typecast meint übrigens Typumwandlung.

Z.B. wird einer Ereignisprozedur ja ein Sender vom Typ TObject übergeben.
TObject ist aber die Basis für alle Objekte.
Willst Du nun, z.B., in einer OnClick Routine eines Button (TButton) an Daten des Button ran, die in TObject nicht deklariert sind, musst Du den Typ umwandeln.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // erst einmal prüfen, ob es sich überhaupt um einen TButton handelt
  if sender is TButton then begin
    ShowMessage((Sender as TButton).Caption); // Typecast von TObject auf TButton
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz