AGB  ·  Datenschutz  ·  Impressum  







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

Frage zur Komponentenerstellung graphisch

Ein Thema von thomas274 · begonnen am 22. Sep 2010 · letzter Beitrag vom 24. Sep 2010
Antwort Antwort
Seite 3 von 3     123   
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#21

AW: Frage zur Komponentenerstellung graphisch

  Alt 23. Sep 2010, 21:51
Besser, entferne aus der Basisklasse TGeoForm Paint komplett. (Also Deklaration Paint, virtual und die fast leere Methode, in der nur inherited steht)

Dann setze in TOval die Koordinaten in den sichtbaren Bereich:
Delphi-Quellcode:
  x1:=0;
  y1:=0;
  x2:=Width;
  y2:=Height;
Zum verschieben, verschiebst Du dann nicht das Oval in deiner Klasse, sondern die ganze Klasse durch ändern von Top und Left.

***

Grundsätzliches:

Dein Oval füllt Deine Komponente TOval ganz aus. Deshalb könnte man in TOval.Paint gleich
Canvas.Ellipse(0, 0, width, height); .
Dann wird das Oval größer, wenn die Komponente größer wird. x1,x2,y1,y2 kann man sich dann ganz sparen!

Verschoben wird dann wie gesagt nicht das Oval in der Komponente, sondern die ganze Komponente durch ändern von Top und Left.

Geändert von Satty67 (23. Sep 2010 um 22:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli
Online

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Frage zur Komponentenerstellung graphisch

  Alt 23. Sep 2010, 22:03
Delphi-Quellcode:
  with Canvas do
  begin
    Brush.Color := clRed;
    FillRect(GetClientRect);
    Pen.Style := psSolid;
    Pen.Color := clBlue;
    Pen.Style := psDot;
    Rectangle(GetClientRect);
  end;
sollte doch etwas zeichnen.

Setze mal auch noch Oval.Left und Oval.Top.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#23

AW: Frage zur Komponentenerstellung graphisch

  Alt 23. Sep 2010, 22:08
Ich würde ja das sinnlose Paint aus der Basisklasse TGeoForm entfernen.

TOval.Paint braucht auch keine lokalen variablen, das kann ganz übersichtlich bleiben:
Delphi-Quellcode:
procedure TOval.Paint();
begin
  Canvas.Brush.Color := self.Fuellfarbe;
  Canvas.Pen.Color := self.Randfarbe;
  Canvas.Pen.Width := 3;
  Canvas.Ellipse(0, 0, width, height);
end;
Setze mal auch noch Oval.Left und Oval.Top.
Die Bounds sind in der Basisklasse schon gesetzt worden.
Miniaturansicht angehängter Grafiken
alles-oval-hier.png  

Geändert von Satty67 (23. Sep 2010 um 22:11 Uhr)
  Mit Zitat antworten Zitat
thomas274

Registriert seit: 22. Sep 2010
10 Beiträge
 
#24

AW: Frage zur Komponentenerstellung graphisch

  Alt 23. Sep 2010, 22:12
Momentan will es ja noch gar nicht gezeichnet werden.

Ich verstehe jetzt bloß nicht warum ich das Paint aus der Klasse TGeoform entfernen soll ? Die Methode Paint ist ja nur abstrakt vorher und hat damit keinerlei Implementation meine ich.

Habe das mit den Koordinaten mal in den Constructor geschrieben, will aber auch nicht klappen.

Edit @ stahli

will auch nicht klappen. das top und left ist ja im constructor von tgeoform gesetzt und wird beim inherited aufgerufen.

Ich werde morgen in der schule mal konkret nachfragen und hier dann das Ergebnis posten, bin jetzt erstmal schlafen

Aber schonmal vielen Dank für die ganze Hilfe, die mich schon ein ganzes stück weiter gebracht hat (bei anderen foren erlebt man es ja manchmal, dass neuen mitgliedern nicht so schnell geholfen wird oder einfach auf die tutorials verwiesen wird)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#25

AW: Frage zur Komponentenerstellung graphisch

  Alt 23. Sep 2010, 22:15
Jo, und weil Sie in der Basisklasse ohne Funktion ist, dort unnötig. (Wenn Du es machst wird auch gezeichnet)

Wie Du am Bild (#23) siehst, fehlt nicht viel (#21) Aber muss ja nicht heute alles klappen...

Geändert von Satty67 (23. Sep 2010 um 22:23 Uhr)
  Mit Zitat antworten Zitat
thomas274

Registriert seit: 22. Sep 2010
10 Beiträge
 
#26

AW: Frage zur Komponentenerstellung graphisch

  Alt 24. Sep 2010, 23:46
Hallo nochmal,

nachdem ich den Code jetzt nochmal sauber in neue Units geschrieben habe, klappt es
war wohl irgendwo wieder ein kleiner Fehler drin
Aber vielen Dank für die Hilfe
  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 10:24 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