AGB  ·  Datenschutz  ·  Impressum  







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

Laufzeitfehler mit eigenem Typ

Ein Thema von 64Jabor · begonnen am 6. Mai 2009 · letzter Beitrag vom 6. Mai 2009
Antwort Antwort
Seite 3 von 3     123   
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#21

Re: Laufzeitfehler mit eigenem Typ

  Alt 6. Mai 2009, 18:23

Hmm also ich denke ich poste den "gesamten" Code nochmal, eventuell ist im Zusammenhang alles etwas klarer...

Delphi-Quellcode:
constructor TLCComputer.Create(NName, NIP: string; Column, Row: integer; NOwner: TWinControl);
begin
 inherited Create(NOwner);
 Parent := NOwner;

 Width := cComputerWidth;
 Height := cComputerHeight;

 Name := TLabel.Create(self);
 Name.Parent := self;
 Name.Caption := NName;
 Name.Left := Column * (cComputerWidth + cComputerSpaceV);
 Name.Top := Row * (cComputerHeight + cComputerSpaceH);

 IP := TLabel.Create(self);
 IP.Parent := self;
 IP.Caption := NIP;
 IP.Left := Column * (cComputerWidth + cComputerSpaceV);
 IP.Top := Row * (cComputerHeight + cComputerSpaceH) + 10;
end;
Und die Erstellung der Klasseninstanz:
Delphi-Quellcode:
procedure TFrmLC.BtnAddComputerClick(Sender: TObject);
var
 Name, IP: string;
 Column, Row: integer;
begin
 Name := InputBox('Computername', 'Bitte geben Sie einen Computernamen an:', '');
 IP := InputBox('IP-Adresse', 'Bitte geben Sie die IP-Adresse des Computers an:', '');

 SetLength(Computers, Length(Computers) + 1);
 Computers[Length(Computers)-1] := TLCComputer.Create(Name, IP, Column, Row, self);
end;
Keine Laufzeitfehler, keine Compilerfehler, läuft einwandfrei nur passieren tut nix ^^

//edit: mir ist bewusst dass durch fehlende Angabe von Column und Row die Left und Top-Werte der label 0 werden, aber das ist ja nicht schlimm
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Laufzeitfehler mit eigenem Typ

  Alt 6. Mai 2009, 18:31
Und beim Durchsteppen wird auch alles durchlaufen? Hast Du den Konstruktor auch überschrieben?
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 jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#23

Re: Laufzeitfehler mit eigenem Typ

  Alt 6. Mai 2009, 18:35
Ich vermute einfach mal, die Labels sind unsichtbar, weil sie nicht mehr im Ciontrol sind

Du erstellst du Labels und setzt das Parent auf "Self" - das sit gut so, aber die Left und die Top-Eigenschaft des Labels sind nun relativ zur oberen linken Ecke des Parents (= Des neuen Controls)

Proibier mal das so:
Delphi-Quellcode:
constructor TLCComputer.Create(NName, NIP: string; NOwner: TWinControl);
// Column und Row sollten nur in dem Formular eine Rolle spielen
begin
inherited Create(NOwner);
Parent := NOwner;

Width := cComputerWidth; // Sind das globale Variablen?
Height := cComputerHeight;

Name := TLabel.Create(self);
Name.Parent := self;
Name.Caption := NName;
Name.Left := 5;
Name.Top := 5;

IP := TLabel.Create(self);
IP.Parent := self;
IP.Caption := NIP;
IP.Left := 5;
IP.Top := 20;
end;
  Mit Zitat antworten Zitat
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#24

Re: Laufzeitfehler mit eigenem Typ

  Alt 6. Mai 2009, 18:38
Ja auch in Einzelschritten wird alles brav durchlaufen.
Den Konstructor überschrieben?

Delphi-Quellcode:
type
 TLCComputer = class(TWinControl)
  private
   Name, IP: TLabel;
   Column, Row: integer;

  public
   constructor Create(NName, NIP: string; Column, Row: integer; NOwner: TWinControl);
 end;
Den Rest kennst du ja...

//edit:
Wenn ich Left und Top explizit angebe, erscheinen die Labels!

Mit Colum und Row wollte ich die Klasseninstanzen später ansprechen, aber das kann ich ja jetzt auch per OnClick auf das TWinControl, nicht?
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Laufzeitfehler mit eigenem Typ

  Alt 6. Mai 2009, 18:39
Also liegt es an den Koordinaten. Und mit Überschreiben meinte ich das Wörtchen override.
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
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#26

Re: Laufzeitfehler mit eigenem Typ

  Alt 6. Mai 2009, 18:43
Nunja es klappt auch ohne...Soll ich trotzdem verwenden?
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Laufzeitfehler mit eigenem Typ

  Alt 6. Mai 2009, 18:45
Ich würde es tun.
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
64Jabor

Registriert seit: 9. Jan 2008
158 Beiträge
 
Delphi 7 Personal
 
#28

Re: Laufzeitfehler mit eigenem Typ

  Alt 6. Mai 2009, 18:49
Okay, aber es funktioniert jetzt alles wunderbar, ich übergebe die Left und Top-Werte der Computerinstanz und positioniere relativ dazu die beiden Labels, und sie werden angezeigt!

Vielen Dank euch allen!
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 18:55 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