AGB  ·  Datenschutz  ·  Impressum  







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

Record an Funktion weitergeben

Ein Thema von Jeff93 · begonnen am 4. Jun 2008 · letzter Beitrag vom 17. Jun 2008
Antwort Antwort
Jeff93

Registriert seit: 25. Mär 2008
Ort: Luxemburg
58 Beiträge
 
Turbo Delphi für Win32
 
#1

Record an Funktion weitergeben

  Alt 4. Jun 2008, 18:03
Hallo,

wollte ein Programm zur Umrechnung von Geschwindigkeiten (z.Bsp: 36km/h = 10m/s) und um ein paar Daten zusammenzufassen habe ich einen Record benutzt. Nun zeigt mit Delphi einen Fehler an.
Delphi-Quellcode:
  TSpeed = record
    Edit : TEdit;
(*das Edit-Feld in dem der Wert steht (zb. 36)*)
    Value : Double;
(*der Wert im Edit-Feld in double*)
    Combobox : TCombobox;
(*Eine Combobox in der sich die Einheit befindet (zb.: 'km')*)
    ValueofCBItems : array of Integer;
(*Hier das zweite Item der Combox z.Bsp. hat den Wert 1000,
  da man 36 muss mit 1000 multipl. um auf Meter zu kommen*)

  end;
Hier wird InputRoute definiert

Delphi-Quellcode:
 InputRoute.Edit := Form1.ed_RouteInput;
 InputRoute.Combobox := Form1.cb_RouteUnitInput;
 Setlength(InputRoute.ValueofCBItems, 2);
 InputRoute.ValueofCBItems[0] := 1;
 InputRoute.ValueofCBItems[1] := 1000;

 InputRoute := Convert(InputRoute);

 InputRoute := CalculateValue(InputRoute);
Und hier die Funktion.

Delphi-Quellcode:
  function CalculateValue(Speed : TSpeed) : TSpeed;
  begin
    if Speed.Combobox.Items[Speed.Combobox.ItemIndex] = Speed.Combobox.Text then //hier wird der Fehler gemeldet
      Speed.Value := Speed.Value * Speed.ValueofCBItems[Speed.Combobox.ItemIndex]
      else
      Speed.Combobox.ItemIndex := 0;
    result := Speed;
  end;
Hoffe ihr könnt mir helfen, danke im Voraus.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Record an Funktion weitergeben

  Alt 4. Jun 2008, 18:05
Zitat:
Nun zeigt mit Delphi einen Fehler an.
Welchen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Jeff93

Registriert seit: 25. Mär 2008
Ort: Luxemburg
58 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Record an Funktion weitergeben

  Alt 4. Jun 2008, 18:15
Eine Exeption der Klasse EAccessViolation, Zugriffsverletzung bei Addresse 0045E44C.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Record an Funktion weitergeben

  Alt 4. Jun 2008, 18:18
Delphi-Quellcode:
TSpeed = record
    Edit : TEdit;
(*das Edit-Feld in dem der Wert steht (zb. 36)*)
    Value : Double;
(*der Wert im Edit-Feld in double*)
    Combobox : TCombobox;
(*Eine Combobox in der sich die Einheit befindet (zb.: 'km')*)
    ValueofCBItems : array of Integer;
(*Hier das zweite Item der Combox z.Bsp. hat den Wert 1000,
  da man 36 muss mit 1000 multipl. um auf Meter zu kommen*)

  end;
Hast Du die Edit und Combobox erstellt (instantiiert)?
Wäre es nicht besser aus Edit einen String oder Integer zu machen und
aus Combobox ebenso?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Record an Funktion weitergeben

  Alt 4. Jun 2008, 18:19
Combobox.ItemIndex hat nicht zufällig den Wert -1 (nichts markiert)?
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Jeff93

Registriert seit: 25. Mär 2008
Ort: Luxemburg
58 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Record an Funktion weitergeben

  Alt 4. Jun 2008, 18:26
Sry, hab den Fehler gefunden, habe an der falschen Stelle gesucht, in der funktion Convert wurde der Record nicht ganz zurückgegeben. Also hatte Combobox den Wert nil und alle anderen auch! Danke dass ihr mich auf diesen Fehler aufmerksam gemacht habt.
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Record an Funktion weitergeben

  Alt 4. Jun 2008, 18:42
Hi Jeff93

Records mit Objekten finde ich etwas seltsam. Ich denke das kann man in jedem Fall anders und vorallem eleganter lösen. Wie Klaus01 schon sagte:

Zitat von Klaus01:
Wäre es nicht besser aus Edit einen String oder Integer zu machen und
aus Combobox ebenso?
Michael
  Mit Zitat antworten Zitat
Jeff93

Registriert seit: 25. Mär 2008
Ort: Luxemburg
58 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Record an Funktion weitergeben

  Alt 17. Jun 2008, 13:07
Nein in meiner Funktion muss ich auch auf noch andere Eigenschaften der Combobox zugreifen, im Edit ebenfalls.
Delphi-Quellcode:
Try
zahl := StrToFloat(Edit1.Text);
Except
Edit1.Text := '1';
zahl := 1;
End;
PS: Sry für die späte Antwort^^
  Mit Zitat antworten Zitat
DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#9

Re: Record an Funktion weitergeben

  Alt 17. Jun 2008, 14:49
// EDIT: Sorry meine Vorredner hatten das ja auch schon erwähnt

mmh,

weiß zwar nicht warum die die Editfeld / Combobox Objekte übergibst und nicht die Werte,
aber kenne deinen genauen Anwendungsfall ja auch nicht.

Aber generell würde ich nicht ein TEdit übergeben, wenn ich vielleicht nur den Wert (also die Caption) brauche.

Viele Grüße
DM
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Record an Funktion weitergeben

  Alt 17. Jun 2008, 15:46
Sowas schreit übrigens geradezu nach objektorientierter Programmierung...
  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 13:00 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