Neue Klasse wird nicht gefunden

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

Neue Klasse wird nicht gefunden

Beitragvon Levario » 14. Okt 2018, 08:06 Neue Klasse wird nicht gefunden

Hallo ich versuche im Moment das Prinzip der Klassen zu versehen.

Ich habe ein Form1 und eine Unit. Das programm findet die Unit nicht

unit uversion;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, IBConnection, sqldb, dbconnect;

type { TUVersion1 }
TUVersion1 = class(TObject)
private
public
procedure getVersion;
end;

implementation
uses sysdokustartu1;

procedure TUVersion1.getVersion;
begin
Form1.caption := 'Hallo';
end;
end.


Unit2

unit sysdokustartu1;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, DividerBevel, ExtendedNotebook, Forms, Controls,
Graphics, Dialogs, ComCtrls, StdCtrls, Menus, Buttons, ExtCtrls, aboutusu,
IBConnection, sqldb, dbconnect, uversion;

type

{ TForm1 }

TForm1 = class(TForm)
BitBtn1: TBitBtn;
BitBtn10: TBitBtn;
DividerBevel1: TDividerBevel;
DividerBevel4: TDividerBevel;
Edit1: TEdit;
Edit2: TEdit;
IBConnection1: TIBConnection;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ListView1: TListView;
ListView2: TListView;
MainMenu1: TMainMenu;
MenuItem1: TMenuItem;
MenuItem10: TMenuItem;
MenuItem11: TMenuItem;
MenuItem12: TMenuItem;
MenuItem13: TMenuItem;
MenuItem14: TMenuItem;
MenuItem15: TMenuItem;
MenuItem16: TMenuItem;
MenuItem17: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
MenuItem5: TMenuItem;
MenuItem6: TMenuItem;
MenuItem7: TMenuItem;
MenuItem8: TMenuItem;
MenuItem9: TMenuItem;
PageControl1: TPageControl;
PageControl2: TPageControl;
PageControl3: TPageControl;
Panel1: TPanel;
Panel2: TPanel;
SQLQuery1: TSQLQuery;
SQLTransaction1: TSQLTransaction;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
procedure FormShow(Sender: TObject);
procedure MenuItem15Click(Sender: TObject);
private

public
end;

var
Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.MenuItem15Click(Sender: TObject);
begin
form2.show;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
UVersion1.getVersion; //Hier kommt dann der Fehler! Er findet den Verweis auf die Klasse nicht.
end;

end.


Wäre über eure Hilfe Dankbar!
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).
Levario
 
Beiträge: 26
Registriert: 1. Sep 2014, 13:32
Wohnort: Gladbeck
OS, Lazarus, FPC: Windows 7 Laptop (Lazarus 1.8.0 FPC 3.0.4) | 
CPU-Target: 64 Bit
Nach oben

Beitragvon Niesi » 14. Okt 2018, 09:56 Re: Neue Klasse wird nicht gefunden

Wo wird das Objekt mit z. B.

Code: Alles auswählen
 
begin
  UVersion := TUVersion1.Create;
end;
 


erstellt?

Gar nicht, nehme ich im Moment an. Liege ich da richtig?

Die Klasse ist der Bauplan für ein Objekt, Du musst das Objekt in eEinem Programm erstellen ...
Niesi
 
Beiträge: 64
Registriert: 26. Jun 2016, 18:44

Beitragvon charlytango » 14. Okt 2018, 09:58 Re: Neue Klasse wird nicht gefunden

Levario hat geschrieben:procedure TForm1.FormShow(Sender: TObject);
begin
UVersion1.getVersion; //Hier kommt dann der Fehler! Er findet den Verweis auf die Klasse nicht.
end;

end.


Eine Klasse ist der Bauplan für ein Objekt das du erst zum Leben erwecken (=erzeugen =create) musst, um damit arbeiten zu können
Du greifst auf eine Methode eines zu diesem Moment nicht existierenden Objektes zu.

Unter http://michael-puff.de/Programmierung/Delphi/Tutorials/Klassen_in_Delphi.pdf im Abschnitt "Demos" Kapitel "Einfache Klasse" findest du was du brauchst.


Code: Alles auswählen
procedure TForm1.FormShow(Sender: TObject);
var
   einObjekt:TUVersion1;
begin
  einObjekt:=TUVersion1.Create;
  einObjekt.getVersion;
  einObjekt.free;
end;


einige andere Quellen zu Objekten in Pascal, die der Gockel https://www.google.com/search?q=lazarus+klassen übrigens zuhauf ausspuckt :

http://wiki.freepascal.org/Object_Oriented_Programming_with_Free_Pascal_and_Lazarus
http://www.martinjakobs.de/pages/objektorientierte-programmierung.php
https://www.youtube.com/watch?v=Lvxc37ZHB04
https://www.oszhandel.de/gymnasium/faecher/informatik/lazarus/aufgaben/bmi_person.html
charlytango
 
Beiträge: 126
Registriert: 12. Sep 2015, 11:10
Wohnort: Wien
OS, Lazarus, FPC: Laz 1.8 | 
CPU-Target: Win 32Bit, 64bit
Nach oben

Beitragvon Levario » 14. Okt 2018, 11:12 Re: Neue Klasse wird nicht gefunden

Hallo und vielen dank für die Info und die gute Quelle. Ihr bdeie habt mir sehr geholfen. Problem gelöst.
Der Weg ist das Ziel... Aber bitte nicht vergessen los zu laufen :).
Levario
 
Beiträge: 26
Registriert: 1. Sep 2014, 13:32
Wohnort: Gladbeck
OS, Lazarus, FPC: Windows 7 Laptop (Lazarus 1.8.0 FPC 3.0.4) | 
CPU-Target: 64 Bit
Nach oben

Beitragvon Niesi » 14. Okt 2018, 11:31 Re: Neue Klasse wird nicht gefunden

charlytango hat geschrieben:
Levario hat geschrieben:procedure TForm1.FormShow(Sender: TObject);
begin
UVersion1.getVersion; //Hier kommt dann der Fehler! Er findet den Verweis auf die Klasse nicht.
end;

end.


Eine Klasse ist der Bauplan für ein Objekt das du erst zum Leben erwecken (=erzeugen =create) musst, um damit arbeiten zu können
Du greifst auf eine Methode eines zu diesem Moment nicht existierenden Objektes zu.

Unter http://michael-puff.de/Programmierung/Delphi/Tutorials/Klassen_in_Delphi.pdf im Abschnitt "Demos" Kapitel "Einfache Klasse" findest du was du brauchst.


Code: Alles auswählen
procedure TForm1.FormShow(Sender: TObject);
var
   einObjekt:TUVersion1;
begin
  einObjekt:=TUVersion1.Create;
  einObjekt.getVersion;
  einObjekt.free;
end;


einige andere Quellen zu Objekten in Pascal, die der Gockel https://www.google.com/search?q=lazarus+klassen übrigens zuhauf ausspuckt :

http://wiki.freepascal.org/Object_Oriented_Programming_with_Free_Pascal_and_Lazarus
http://www.martinjakobs.de/pages/objektorientierte-programmierung.php
https://www.youtube.com/watch?v=Lvxc37ZHB04
https://www.oszhandel.de/gymnasium/faecher/informatik/lazarus/aufgaben/bmi_person.html



Hey - gute Links!
Besonders der

http://www.martinjakobs.de/pages/objektorientierte-programmierung.php

bietet sehr interessante Beispiele - was ich jetzt so auf die Schnelle sehe ...

D A N K E !
Niesi
 
Beiträge: 64
Registriert: 26. Jun 2016, 18:44

• Themenende •

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried