AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Brauche Hilfe bei Komponentenentwicklung allgemein

Brauche Hilfe bei Komponentenentwicklung allgemein

Ein Thema von 3_of_8 · begonnen am 19. Jul 2005 · letzter Beitrag vom 24. Jul 2005
Antwort Antwort
Seite 2 von 2     12
barf00s
(Gast)

n/a Beiträge
 
#11

Re: Brauche Hilfe bei Komponentenentwicklung allgemein

  Alt 22. Jul 2005, 18:10
und versuchs mal so wie ich dir bereits geraten habe deinen roboter zu "malen" in dem du die procedure Paint überschreibst, und nicht erst extra son olles TImage benützt
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: Brauche Hilfe bei Komponentenentwicklung allgemein

  Alt 22. Jul 2005, 18:21
@barf00s:

1. Beitrag: Ich habe das inherited schon, ich meine, ob ich für die Property Synedit noch einen Konstruktor aufrufen muss.

2. Beitrag: Weil ich vor allem die Möglichkeiten einer WinControl brauche (Maus- und Tastaturereignisse). Die Procedures selber zu schreiben ist mehr Arbeit, als ein TImage einzubauen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: Brauche Hilfe bei Komponentenentwicklung allgemein

  Alt 22. Jul 2005, 18:40
Nein - aber vorher prüfen obs <> nil ist auf jeden Fall ...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Brauche Hilfe bei Komponentenentwicklung allgemein

  Alt 22. Jul 2005, 19:04
wenn du uns nicht deinen wirklichen Source postest sondern nur den ungefähren wird es schwer mit helfen. Wie du mitbekommen hast wurde ja das mit dem inherited geschrieben was ja aber im richtigen Source drin zu sein scheint. Und wenn du dich jetzt in unsere lage versetzt kannst du vielleicht auch verstehen das einem da etwas die lust zum helfen vergeht wenn jemand etwas anderes postest als womit er eigentlichen einen Fehler hat.
Desweiteren kann es ja gut möglich sein das du den eigentlichen Fehler gar nicht mit postest weil es ein tippfehler etc. ist und dann wird dieser fehler auch nicht gefunden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: Brauche Hilfe bei Komponentenentwicklung allgemein

  Alt 24. Jul 2005, 11:09
Ein anderes Beispiel: Ich habe eine Komponente: (Ist wie gesagt nur ein Beispiel, das aber gut zeigt, was ich will.)

Delphi-Quellcode:
//...

type
  TCompo1 = class(TComponent)
  protected
    FTimer: TTimer;
  public
    constructor Create(AOwner: TComponent);
    destructor Destroy;
  published
    property Timer: TTimer read Timer write Timer;
  end;

//...

constructor TCompo1.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  //So, was jetzt? Wie kann ich auf Timer zugreifen, ohne eine AV zu verursachen?
  //Etwa FTimer:=TTimer.Create(AOwner)? Oder FTimer:=TTimer.Create(Self)? Oder gar nichts?
end;

destructor TCompo1.Destroy;
begin
  inherited Destroy;
  FTimer:=nil; //Ist das richtig so?
end;

end.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#16

Re: Brauche Hilfe bei Komponentenentwicklung allgemein

  Alt 24. Jul 2005, 11:21
Nach VCL-Standard sollte das etwa so aussehen:
Delphi-Quellcode:
TFoo = class(TComponent)
protected
  FTimer: TTimer;
  procedure SetTimer(AValue: TTimer);
public
  constructor Create(AOwner: TComponent);
  destructor Destroy; override;
  property Timer: TTimer read FTimer write SetTimer;
end;

[...]

implementation

constructor ...
begin
  inherited;
  FTimer := TTimer.Create(Self); // Hier musst du dich selbst um die Freigabe kümmern
  // FTimer := TTimer.Create(AOwner); // Hier kümmert sich das Formular/... darum
end;

destructor ...
begin
  FTimer.Free; // bei Create(Self)
  inherited;
end;

procedure SetTimer(AValue: TTimer);
begin
  FTimer.Assign(AValue);
end;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#17

Re: Brauche Hilfe bei Komponentenentwicklung allgemein

  Alt 24. Jul 2005, 11:30
Juhuu!!! Endlich hat jemand verstanden, was ich wissen wollte!!!

Du kommst in die Credits. (Ich werde wohl dort der ganzen DP danken, aber manchen Leuten wohl ganz besonders.)
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: Brauche Hilfe bei Komponentenentwicklung allgemein

  Alt 24. Jul 2005, 11:53
So, hier eine einfache Kompo mit einem Timerfeld:

Soll heißen, ser wird nicht erstellt, sondern der User kann einen zuweisen, er kanns aber auch lassen

Sinn macht das z.B. mit einem Memo, wo du z.B. reinschreibst, was gerade gemacht wird
Delphi-Quellcode:
unit Unit2;

interface

uses
   Classes, ExtCtrls;

type
   TCompo1 = class(TComponent)
   protected
      FTimer: TTimer;
   public
      constructor Create (AOwner: TComponent); override;
      destructor Destroy; override;

      function GetInterval: Integer;
   published
      property Timer: TTimer read FTimer write FTimer;
   end;

   procedure Register;

implementation

{ TCompo1 }

procedure Register;
begin
   RegisterComponents('Eigene Komponenten', [TCompo1]);
end;

constructor TCompo1.Create (AOwner: TComponent);
begin
   inherited;
end;

destructor TCompo1.Destroy;
begin
   inherited;
end;

function TCompo1.GetInterval: Integer;
begin
   if Timer <> nil then
      Result := Timer.Interval
   else
      Result := -1;
end;

end.
P.S. Nein, der rote Kasten war tot, und ja, ich habe eine Zeit gebraucht, bis ich auf "Antworten" geklickt habe ...
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Brauche Hilfe bei Komponentenentwicklung allgemein

  Alt 24. Jul 2005, 12:23
?

Sowas in der Art habe ich auch gemacht, und alles was ich bekommen habe war eine *TROMMELWIRBEL*

AV!!!

Ich werde bald mal etwas Source posten, dann sehen wir weiter.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 09:31 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