AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Zwei Fragen zu Komponentenentwicklung
Thema durchsuchen
Ansicht
Themen-Optionen

Zwei Fragen zu Komponentenentwicklung

Ein Thema von DGL-luke · begonnen am 8. Jun 2005 · letzter Beitrag vom 11. Jun 2005
Antwort Antwort
Seite 2 von 3     12 3      
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#11

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 8. Jun 2005, 21:24
Hallo,

ich muss mich korrigieren, TComponent hat kein Parent, das gibt's erst bei TControl .
Zitat von DGL-luke:
wie greif ich dann darauf zu, und wie zwinge ich den progger, dass er ein canvas als parent nimmt?
oder soll ich schauen, ob das parent ein canvas hat?
Auf welchen Canvas möchtest Du zeichnen?
Da Du von TComponent ableitest, hat Deine Komponente keinen Canvas und keine Paint-Mathode zum Überschreiben.
Du solltest also von TGraphicControl ableiten, da hast Du einen Canvas und eine Paint-Methode.
Ich hab mal Dein Zeug etwas überarbeitet, fehlt aber noch Werteüberprüfung.

@Hansa: Natürlich erkennt der OI ein TColor, wenn die Eigenschaft als Published deklariert ist.

Gruß
xaromz
Angehängte Dateien
Dateityp: pas u_canvasbar_900.pas (3,6 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 8. Jun 2005, 21:32
@xaromz: der clou des ganzen ist ja, dass die komponente sich nicht selbst zeichnet, sondern auf das parent-canvas gezeichnet wird.

den code werd ich mir aber morgen erst zu gemüte führen.

@Hansa: es käme mir wirklich extrem dumm vor, wenn der OI nicht wüsste, wohin er die werte schreiben soll, wenn ich ihm sowohl read als auch write definiert habe.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 8. Jun 2005, 21:40
Zitat von DGL-luke:
@xaromz: der clou des ganzen ist ja, dass die komponente sich nicht selbst zeichnet, sondern auf das parent-canvas gezeichnet wird.
Du wirst es nicht glauben, aber afaik ist das auch so, wenn du überhaupt nichs machst

(Nur muss es halt nicht mit Canvas passieren, sondern kann auch etwas effizienter sein )
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#14

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 8. Jun 2005, 22:15
Zitat von xaromz:
@Hansa: Natürlich erkennt der OI ein TColor, wenn die Eigenschaft als Published deklariert ist.
Das brauchst du mir nicht zu sagen. Allerdings halte ich nicht viel von fertigen Lösungen. 8) Das ist nicht gut und hält manchen nur davon ab, sich selber was beizubringen, obwohl Defizite offensichtlich und auch genügend Hinweise da sind. Wo kommen wir denn hin, wenn jeder, der einem anderen helfen will, dem Fragesteller, der was lernen will, komplett die Arbeit abnimmt ?
Gruß
Hansa
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#15

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 8. Jun 2005, 23:32
Hallo,

Zitat von Hansa:
Allerdings halte ich nicht viel von fertigen Lösungen. 8) Das ist nicht gut und hält manchen nur davon ab, sich selber was beizubringen, obwohl Defizite offensichtlich und auch genügend Hinweise da sind. Wo kommen wir denn hin, wenn jeder, der einem anderen helfen will, dem Fragesteller, der was lernen will, komplett die Arbeit abnimmt ?
ich will ja hier niemandem die Arbeit abnehmen; ich denke aber, wenn man zeigt, wie es besser geht (ohne jetzt komplette Lösungen zu präsentieren), kann man schon eine Menge lernen. Auch ich habe, wie viele andere sicher auch, einen großen Teil meines Wissens erworben, indem ich mir fertige Lösungen angeschaut und analysiert habe. Wer meine Überarbeitung mit dem oben Geposteten vergleicht und die Unterschiede untersucht, wird vielleicht was lernen, und wenn er was nicht versteht, kann er ja fragen. Wie Du schon erkannt hast, gibt es hier einige Defizite, und ich kann ja nicht alles auf einmal erklären. Also soll er sich meine Version anschauen und dann gezielte Fragen stellen. Ich denke, das bringt mehr.

Zitat von DGL-luke:
der clou des ganzen ist ja, dass die komponente sich nicht selbst zeichnet, sondern auf das parent-canvas gezeichnet wird.
Wozu ist eine graphische Komponente gut, wenn Sie nicht auf eine eigene Zeichenoberfläche zugreifen kann? Außer etwas Ressourcenschonung fällt mir da kein Grund ein. Insbesondere bei einer Progressbar scheint mir das etwas sinnlos.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 9. Jun 2005, 16:23
@Ressourcen: ich verweise mal auf den thread http://www.delphipraxis.net/internal...ct.php?t=54673 , wo sich jemand über meine ressourcenfressenden 128 RBProgressbars beschwert hatte:

Zitat von Velgreyer:
Nur so als Tipp: Benutz Canvas und zeichne eine komplette Oberfläche mit der Auswertung, und nicht 127 Progressbars. Ich seh ja immer wie sich das ganze aufbaut wenn ich das Fenster in den Vordergrund nehme
Und das hier wollte ich eben als lösung des ganzen ausprobieren.

@Hansa: Du meinst also, wenn ich schon (Deiner meinung nach) absoluter Noob bin, darf man mir nicht wohlmeinend ein beispiel zeigen?
(Mir fällt auch sonst öfters auf, dass zu, sagen wir mal, ziemlich extreme Meinungen äusserst. vielleicht solltest du dir überlegen, ob du deinen ton nicht manchmal etwas mäßigen willst. Denn ein noob wie ich wird von so etwas wie "das behaupten einige andere auch und scheitern erbärmlich." eher abgeschreckt als wermutigtm, sich richtig reinzuhängen.)
Und ausserdem, wenn ich mich schon nicht von der meinung "wenn ich eine property mit read und write zugriff habe, kann der OI immer darauf zugreifen" abbringen lasse, hilft doch eigentlich nur noh quelltext, der das gegenteil beweist. Fakten fakten fakten!

jetz schau ich mir aber erstmal den anhang von xaromz an.

EDIT: ich sehe, das ist jetzt von TGraphicControl abgeleitet. muss das denn sein? und auf welches canvas zeichnet es denn jetzt?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#17

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 9. Jun 2005, 18:03
Zitat von Hansa:
Zitat von DGL-luke:
TColor ist TColor. Und der OI soll das dann gefälligst nach meinen einstellungen anpassen.
könnte es sein, daß sich die "Position" einstellen läßt ? Wenn dem so ist, dann gucke dir mal alles damit zusammenhängende neu an. Auch in dem Tuto.
Das war ein Top-Hinweis, ohne für dich die ganze Arbeit zu machen. Völlig ausreichend um weiterzukommen. Mit Verweis auf vorhandenen Source. Wenn du allerdings fertigen Source haben willst, dann sage das doch gleich vorher und beschwere dich nicht noch über Leute, die dir geholfen haben. 8)

P.S.: ehe ichs vergesse : die Frage wurde gestellt, ohne eine einzige Zeile Code dazu zu liefern ! Als Antwort erwartest du aber kompletten Code ?
Gruß
Hansa
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#18

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 9. Jun 2005, 18:44
Hallo,

Zitat von DGL-luke:
@Ressourcen: ich verweise mal auf den thread http://www.delphipraxis.net/internal...ct.php?t=54673 , wo sich jemand über meine ressourcenfressenden 128 RBProgressbars beschwert hatte:

Zitat von Velgreyer:
Nur so als Tipp: Benutz Canvas und zeichne eine komplette Oberfläche mit der Auswertung, und nicht 127 Progressbars. Ich seh ja immer wie sich das ganze aufbaut wenn ich das Fenster in den Vordergrund nehme
Und das hier wollte ich eben als lösung des ganzen ausprobieren.
Jetzt kann ich das Ganze auch einordnen. Schneller wird der Bildaufbau mit meiner Lösung wohl nicht. Allerdings stellt sich die Frage, warum man das unbedingt beschleunigen muss, ich hab da schon schlimmeres gesehen. Die paar Millisekunden sollten egal sein.
Als Möglichkeit für Deine Bedürfnisse wäre evtl. eine Komponente (wieder von TGraphicControl) geeignet, die alle Werte aufnehmen und auf einmal anzeigen kann. Für das bisschen Zeitgewinn wäre das aber Overkill.

Zitat von DGL-luke:
EDIT: ich sehe, das ist jetzt von TGraphicControl abgeleitet. muss das denn sein? und auf welches canvas zeichnet es denn jetzt?
Mit TGraphicControl hat die Komponente ihren eigenen Canvas. Sie malt quasi auf sich selbst.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#19

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 10. Jun 2005, 22:07
ja so hatt ich mir das gedacht. werde das ganze dann bei gelegenheit(hoffentlich noch dieses we) fertig proggen.

Hansa: Ein "top tip"? Du wirfst mir den brocken "position" hin, mit verweis auf ein tutorial, und das soll dann ein "top tip" sein? nein danke. im übrigen hab ich nie fertigen code verlangt, sondern zwei grundsätzliche, allgemeine und fast schon abstrakte fragen gestellt:

- wie lasse ich das paint-ereignis automatisch auslösen? Antwort: Paint überschreiben, fertig.
- wie bringe ich es so hin, dass ich die werte im OI einstellen kann? Antwort: ein wenig rumgedruckse, ein bisschen äusserst hinterfotzige ironie(war es ironie? so etwas sieht man in einem forum leider verdammt schlecht), aber sonst kaum etwas. nimm bitte nochmal alleine hierzu stellung:

"wenn ich eine property deklariere und mit read and write zugriff versehe, wie setze ich dann standardwerte? ich hatte das bis jetzt im konstruktor, wo es ja eigentlich auch hingehört, das scheint aber das, was ich im OI setze, zu überschreiben?"

mag sein, dass das im tutorial steht, aufgrund eines kleinen missgeschickes meinerseits(ja ich gebs ja zu) hab ich das aber nicht gelesen, obwohl ich selbiges vermeinte. ich werde es jetzt lesen, und vielleicht weiss ich dann schon weiter. ich würde es aber schon gerne noch sehen, dass du eine 1. eindeutige 2. anständige 3. hilfreiche antwort darauf zustande bringst. ansonsten würde es sich bei mir bestätigen, dass du gerne die anderen user ein wenig verarschst und oft postest ohne wirklich nachzudenken was genau du da postest.

([/@hansa])

EDIT: entweder bin ich schon zu müde, oder in dem tut steht wirklich nicht, wie ich standardwerte mache...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#20

Re: Zwei Fragen zu Komponentenentwicklung

  Alt 11. Jun 2005, 11:24
Standartwerte setzt du in dem du sie im Constructor überschreibst. Angenommen du hast eine selbst erstellte property Namens Padding, dann sieht der Code für die Compo so aus:

Delphi-Quellcode:

unit MyControl;

interface

uses
  Windows, SysUtils, Classes, Controls, Messages, Graphics;

type
  TMyControl= class(TCustomControl)
  private
    { Private-Deklarationen }
    fPadding: Integer;
  protected
    { Protected-Deklarationen }
    //procedure Paint; override;
  public
    { Public-Deklarationen }
    constructor Create(aOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published-Deklarationen }
    property Padding: Integer read fPadding write fPadding;
    // Vererbte Properties
    property Align;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Standard', [TMyControl]);
end;

constructor TMyControl.Create(aOwner: TComponent);
begin
  inherited Create(aOwner);
  fPadding := 5; //Hier wird der Inhalt der Variable geändert
  Align := alLeft; //Properties die du nicht selbst erstellt(vererbt) hast
                     //kannst du wie üblich ändern
end;

destructor TMyControl.Destroy;
begin
  inherited Destroy;
  fBackground.Free;
end;


(*
procedure TMyControl.Paint;
begin
  inherited Paint;
end;*)


end.
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 13:44 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