AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Fehlermeldung nach Installation einer neuen Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung nach Installation einer neuen Komponente

Ein Thema von BAMatze · begonnen am 19. Mär 2009 · letzter Beitrag vom 19. Mär 2009
 
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#1

Fehlermeldung nach Installation einer neuen Komponente

  Alt 19. Mär 2009, 10:01
Hallo nochmal,

bin immer noch mit Problemen beschäftigt, die sich bei der Erstellung einer Komponente ergeben. Kurz für die, die sich die letzten beiden Beiträge nicht angeschaut haben. konstruiere mir gerade eine Composite Komponente. Habe sie auch fertig gestellt und per Package wurde sie in RAD installiert. Wenn ich mir die Komponente aber jetzt auf die Form ziehen möchte, tritt ein Fehler auf:

Zitat:
Zugriffsverletzung bei Adresse 0F6B1CE6 in Modul 'Package1.bpl'. Lesen von Adresse 00000000.
Hier mal der Quellcode für meine Komponente:
Delphi-Quellcode:
unit WinControl1;

interface

uses
  SysUtils, Classes, Controls, ComCtrls, Windows, StdCtrls, Graphics;

type
  TWinControl1 = class(TWinControl)
  private
    FLblContainerCaption, FLblTrackBar: TLabel;
    FEdPositionsEingabe: TEdit;
    FTrckBarTischposition: TTrackBar;
    FButtonEditEingabe: TButton;
    FCombBoxTischauswahl: TComboBox;
    fdTischposition: double;
    procedure SetContainerCaption(Value: string);
    procedure SetTischPosition(Value: double);
    function GetTischPosition: double;
    function CreatestaticLabel: TLabel;
    function CreatedynamicLAbel: TLabel;
    function CreateTrackBar: TTrackBar;
    function CreateEdit: TEdit;
    function CreateButton: TButton;
    function CreateComboBox: TComboBox;
    procedure Trackbarbewegung(Sender: TObject);
    procedure Position_ansteuern(Sender: TObject);
    procedure Edit_leeren(Sender: TObject);
  protected
    procedure CreateWnd; override;
  public
    constructor create(AOwner: TComponent);
    property ContainerCaption : string write SetContainerCaption;
    property Tischposition: double read GetTischPosition write SetTischposition;
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TWinControl1]);
end;

constructor TWinControl1.create(AOwner: TComponent);
begin
  inherited create(AOwner);
  Controlstyle := Controlstyle - [csAcceptsControls]; // Der Componente wird nicht erlaubt
                                                      // andere Componenten aufzunehmen,
                                                      // als die, die durch den Programmierer
                                                      // hier einprogrammiert werden.
  Visible := true;
  width := 300;
  height := 200;

  // TestLabel initialisieren
  FLblContainerCaption := CreatestaticLabel;
  FTrckBarTischposition := CreateTrackBar;
  FLblTrackBar := CreatedynamicLabel;
  FEdPositionsEingabe := CreateEdit;
  FButtonEditEingabe := CreateButton;
  FCombBoxTischauswahl := CreateComboBox;
end;

function TWinControl1.CreatestaticLabel: TLabel;
begin
  result := TLabel.Create(Self);
  result.Parent := Self;
  result.Left := 18;
  result.Top := 10;
end;

function TWinControl1.CreatedynamicLabel: TLabel;
begin
  result := TLabel.Create(Self);
  result.Parent := Self;
  result.Left := 10 + round((320000/700000)*200);;
  result.Top := 85;
  result.Caption := '0,00 mm';
end;

function TWinControl1.CreateTrackBar: TTrackBar;
begin
  result := TTrackbar.Create(Self);
  result.Parent := Self;
  result.Left := 10;
  result.Top := 100;
  result.Height := 20;
  result.Width := 200;
  result.Max := 640000;
  result.Position := 320000;
  result.OnChange := TrackBarBewegung;
end;

function TWinControl1.CreateEdit: TEdit;
begin
  result := TEdit.Create(Self);
  result.Parent := Self;
  result.Left := 17;
  result.Top := 150;
  result.Height := 20;
  result.Width := 100;
  result.Text := 'Wert eingeben';
  result.OnEnter := Edit_leeren;
end;

function TWinControl1.CreateButton;
begin
  result := TButton.Create(Self);
  result.Parent := Self;
  result.Left := 130;
  result.Top := 145;
  result.Caption := 'Position ansteuern';
  result.Height := 30;
  result.Width := 120;
  result.OnClick := Position_ansteuern;
end;

function TWinControl1.CreateComboBox: TComboBox;
begin
  result := TComboBox.Create(Self);
  result.Left := 17;
  result.Top := 30;
  result.Height := 20;
  result.Width := 200;
end;

procedure TWinControl1.Trackbarbewegung(Sender: TObject);
begin
  fLblTrackBar.Left := 10 + round((FTrckBarTischposition.Position/700000)*200);
  fLblTrackBar.Caption := floattostr((FTrckBarTischposition.Position/6400)- 50) + ' mm';
  fdTischposition := FTrckBarTischposition.Position/6400;
end;

procedure TWinControl1.Edit_leeren(Sender: TObject);
begin
  fEdPositionsEingabe.Clear;
end;

// Procedure fehlerhaft, wenn Edit leer ist
procedure TWinControl1.Position_ansteuern(Sender: TObject);
begin
  try
    fdTischposition := strtofloat(FEdPositionsEingabe.Text)+50;
    FTrckBarTischposition.Position := round(fdTischposition*6400)
  except

  end;
end;

procedure TWinControl1.SetContainerCaption(Value: string);
begin
  FLblContainerCaption.Caption := Value;
end;

procedure TWinControl1.SetTischPosition(Value: Double);
begin
  fdTischposition := Value;
  FTrckBarTischposition.Position := round(fdTischposition*6400);
end;

function TWinControl1.GetTischPosition: double;
begin
  result := fdTischposition;
end;

procedure TWinControl1.CreateWnd;
begin
  inherited createWnd;
  FCombBoxTischauswahl.Parent := self;
  FCombBoxTischauswahl.Clear;
  FCombBoxTischauswahl.Items.Add('Verschiebetisch Referenzfaser');
  FCombBoxTischauswahl.Items.Add('Verschiebetisch Kamera/ Spleißgerät');
  FCombBoxTischauswahl.Items.Add('Piezoverschiebetisch');
  FCombBoxTischauswahl.ItemIndex := 0;
end;


end.
Beim Quellcode wird wie gesagt nichts beanstandet. Ich weiß, dass dieser auch noch nicht bis ins kleinste ausgereift ist, ich wollte erstmal alle Schritte mit diesem Beispiel durch gehen, damit ich Gewissheit habe, dass alles so läuft wie ich will.

Sieht jemand eventuell einen Fehler, der zu dem oben angegebenen Fehler führt?

Vielen Dank
BAMatze

Ps.: hier noch der Link zum vorletzten Beitrag (http://www.delphipraxis.net/internal...t.php?t=154378)
  Mit Zitat antworten Zitat
 


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 14:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz