Autor Beitrag
malibu85
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Fr 07.12.07 14:33 
Hallo ich wollte mich ein bisschen in sachen Units schulen. Ich habe erfahren, dass ich in einer seperaten Unit alle Funktionen, Prozeduren, Variablen etc schreiben kann, die ich für ein gesamtes Programm benötige.

Auf gehts dachte ich mir und erstellte ein Formular+Unit und eine extra Unit (Unit2)

Ich habe die folgende Funktion in der Unit2 deklariert:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
unit Unit2;

interface
function FinC: real;

implementation

function FinC : real;
   begin
     FinC:=3.7676;
   end;

end.


wie man sieht ist die Funktion vom Typ real, da die zahl ja auch eine gebrochene Zahl ist
Nach dem Schlüsselwort implementation habe ich die Funktion als Schnittstelle für andere Programmteile angegeben.
Nun öffne ich die Unit1 und schreibe in Unit1 mit dem Schlüsselwort uses Unit2, dass die Unit2 mitverwendet werden soll und gebe auch an, dass das Label den Inhalt der Funktion ausgeben soll, die ich in der Unit2 geschrieben habe.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, System.ComponentModel, Borland.Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation
{$R *.nfm}
uses Unit2;


procedure TForm1.Button1Click(Sender: TObject);
begin
label1.caption:=FinC;

end;

end.


Beim klicken des Buttons soll das label den Inhalt der Funktion wiedergeben. Doc leider wird das Programm aufgrund der Fehlermeldung [Pascal Fehler] Unit1.pas(30): E2010 Inkompatible Typen: 'string' und 'Double'

nicht compiliert. Der Fehlerzeiger steht in der Unit 1 auf Zeile 30 :label1.caption:=FinC;

Kann mir jemand sagen, warum es Probleme mit den Datentypen gibt?


Moderiert von user profile iconTino: Topic aus Sonstiges (Delphi) verschoben am Fr 07.12.2007 um 13:52
Agawain
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 460

win xp
D5, MySQL, devxpress
BeitragVerfasst: Fr 07.12.07 14:48 
hi

bevor du die Datentypen real, oder integer in einem Label ausgeben willst, mußt Du sie erst in einen String konvertieren.
FloatToStr(FinC)

_________________
Gruß Aga
malibu85 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Fr 07.12.07 14:53 
ups...ja na klar...manchmal denke ich echt nur von 12 bis mittag :lol: