AGB  ·  Datenschutz  ·  Impressum  







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

Inkompatible typen String und integer

Offene Frage von "NielsHillemeyer"
Ein Thema von NielsHillemeyer · begonnen am 27. Aug 2007 · letzter Beitrag vom 27. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
NielsHillemeyer

Registriert seit: 20. Aug 2007
Ort: Paderborn
5 Beiträge
 
#1

Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:02
Hi ich hab hier mal was zusammengeschreibselt aber delphi weißt mich auf inkompatible typen hin(string und integer).
Kann mir jemand helfen?
In die edit felder soll eine dualzahl eingegeben werden, je eine ziffer pro editfeld.
Bei drücken des Buttons soll die Dualzahl in eine Dezimalzahl umgewandelt und ausgegeben werden.
ohne die Function ist das kein problem, dass hab ich auch schon fertig, aber mein Lehrer besteht auf das procedure....

Delphi-Quellcode:
unit Umrechnung;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    btn_Umrechnen: TButton;
    Edt64: TEdit;
    Edt32: TEdit;
    Edt16: TEdit;
    Edt8: TEdit;
    Edt4: TEdit;
    Edt2: TEdit;
    Edt1: TEdit;
    Edt128: TEdit;
    Label1: TLabel;
    procedure btn_UmrechnenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.btn_UmrechnenClick(Sender: TObject);

 function Umwandeln_und_Addieren(z1,z2,z3,z4,z5,z6,z7,z8:string):string;
Var
  Erg:string;
begin
  Erg:=Strtoint(z1)*128+Strtoint(z2)*64+Strtoint(z3)*32+Strtoint(z4)*16+Strtoint(z5)*8
  +Strtoint(z6)*4+Strtoint(z7)*2+Strtoint(z8)*1;

end;

Var
  z1,z2,z3,z4,z5,z6,z7,z8:string;
  Erg:integer;
begin
  z1:=Edt128.Text;
  z2:=Edt64.Text;
  z3:=Edt32.Text;
  z4:=Edt16.Text;
  z5:=Edt8.Text;
  z6:=Edt4.Text;
  z7:=Edt2.Text;
  z8:=Edt1.Text;
  erg:= Umwandeln_und_addieren(z1,z2,z3,z4,z5,z6,z7,z8);
  erg:=Inttostr(erg);
  Label1.Caption:=erg


end;

end.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:04
Ersetzte mal
Erg:string; mit
Erg:integer;
Markus Kinzler
  Mit Zitat antworten Zitat
SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#3

Re: Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:07
Zitat von mkinzler:
Ersetzte mal...
Dann wird die eine Fehlermeldung weg sein, aber ein Ergebnis liefert die Funktion dann immer noch nicht zurück. Besser wäre

result := StroToInt(..... Und das "Var erg: Integer" kann dann ganz wegfallen.
  Mit Zitat antworten Zitat
Apollonius

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

Re: Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:10
Nein.
result:=inttostr(strtoint( {..........} );
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
s-off
(Gast)

n/a Beiträge
 
#5

Re: Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:12
Zitat von Apollonius:
Nein.
result:=inttostr(strtoint( {..........} );
Nein.
result:=inttostr(strtoint( {..........} ));
  Mit Zitat antworten Zitat
NielsHillemeyer

Registriert seit: 20. Aug 2007
Ort: Paderborn
5 Beiträge
 
#6

Re: Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:20
Geht leider alles iwie nicht...
Ich pack ma das prog in den anhang..
Sry aber ich bin iwie mit proceduren und functionen nich so geschickt...
Angehängte Dateien
Dateityp: rar delphi_141.rar (199,0 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.546 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:30
Ohne zu testen:
Delphi-Quellcode:
procedure TForm1.btn_UmrechnenClick(Sender: TObject);

function Umwandeln_und_Addieren(z1,z2,z3,z4,z5,z6,z7,z8:string):integer;
Var
  Erg:integer;
begin
  Erg:=Strtoint(z1)*128+Strtoint(z2)*64+Strtoint(z3)*32+Strtoint(z4)*16+Strtoint(z5)*8
  +Strtoint(z6)*4+Strtoint(z7)*2+Strtoint(z8)*1;

end;

Var
  z1,z2,z3,z4,z5,z6,z7,z8:string;
begin
  z1:=Edt128.Text;
  z2:=Edt64.Text;
  z3:=Edt32.Text;
  z4:=Edt16.Text;
  z5:=Edt8.Text;
  z6:=Edt4.Text;
  z7:=Edt2.Text;
  z8:=Edt1.Text;
  Label1.Caption:=Inttostr(Umwandeln_und_addieren(z1,z2,z3,z4,z5,z6,z7,z8));


end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
NielsHillemeyer

Registriert seit: 20. Aug 2007
Ort: Paderborn
5 Beiträge
 
#8

Re: Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:37
Das malnehmen ist weggefallen, darf es aber nicht, denn sonst rechnet das programm nicht ins zehnersystem um sondern gibt eine zufalsszahl aus. Wenn ich das multiplizieren wieder anfüge, dann sind die fehler wieder da....
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.546 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:46
Poste mal den aktuellen Quelltext.

//Edit: *Argh* Schreib die Funktion mal eben um:
Delphi-Quellcode:
function Umwandeln_und_Addieren(z1,z2,z3,z4,z5,z6,z7,z8:string):integer;
begin
  Result := Strtoint(z1)*128+Strtoint(z2)*64+Strtoint(z3)*32+Strtoint(z4)*16+Strtoint(z5)*8
  +Strtoint(z6)*4+Strtoint(z7)*2+Strtoint(z8)*1;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

Re: Inkompatible typen String und integer

  Alt 27. Aug 2007, 18:58
Hi,

muss die Zahl denn unbedingt über mehrere Edits verteilt werden? Was machst du, wenn was anderes als 0 oder 1 eingegeben wird, z. B. 123?

Für ein einzelnes Edit gibt es schon jede Menge Lösungen... Hier im Forum suchenBinToInt

Ich würde es ganz spontan so lösen... Natürlich sollte man die Meldungen der Exceptions noch überarbeiten...

Delphi-Quellcode:
function BinToInt{64}(const Bin: String): Integer {Int64};
var
  I, L: Integer;
begin
  L := Length(Bin);
  if L = 0 then
    raise EConvertError.Create('String ist leer!!');
  if L > 32 {64} then
    raise EConvertError.Create('String zu lang!');

  Result := 0;

  for I := 1 to L do
    case Bin[I] of
      '0':;
      '1': Result := Result or (1 shl (L-I));
    else
      raise EConvertError.Create('Nur Ziffern 0 und 1 erlaubt!');
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Label1.Caption := IntToStr(BinToInt(Edit1.Text));
end;
Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:32 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