| Autor |
Beitrag |
NOS
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Fr 09.05.08 17:24
Hallo zusammen,
ich habe mir eine Komponente von TPanel abgeleitet und möchte in der Create routine die Farbe des Panels setzen ... leider gelingt das nicht ... alignment ist kein problem ... caption etc sind kein problem ... aber die farbe des panels kriege ich nicht hin ....
woran kann das liegen ?
Gruße,
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Fr 09.05.08 18:11
Du hast doch selber gesagt, dass das am Create liegt.  Beseitige den Fehler und fertig.  Was da genau in der Prozedur steht, das kann keiner wissen.
_________________ Gruß
Hansa
|
|
NOS 
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Fr 09.05.08 18:27
hansa hat folgendes geschrieben: | Du hast doch selber gesagt, dass das am Create liegt. Beseitige den Fehler und fertig. Was da genau in der Prozedur steht, das kann keiner wissen. |
Hi,
tja ... da muss ich dir recht geben ... wenns aber so einfach wäre würde ich ja nicht posten  ... ich finde das problem echt nicht ... aber hier mal ein code snippet
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| constructor TTemplateObjectPanel.Create(AOwner: TComponent); begin inherited Create(AOwner); Caption := 'TEMPLATEOBJECTPANEL'; AutoSize := false; Align := alClient; BevelInner := bvNone; BevelOuter := bvNone; BevelKinde := bkNone; Color := clRED; ProjectChanged := true; end; |
Vielleicht ist es mit dem Snippet doch eine Spur besser das zu beurteilen
Grüße,
Andreas
Moderiert von AXMD: Delphi-Tags hinzugefügt
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: Fr 09.05.08 18:33
Vielleicht hilft es, wenn du nach dem Ändern der Farbe bzw. am Ende des Konstruktors Invalidate aufrufst, damit das Panel neu gezeichnet wird?
AXMD
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Fr 09.05.08 18:34
NOS hat folgendes geschrieben: | Vielleicht ist es mit dem Snippet doch eine Spur besser das zu beurteilen .. |
Nicht vielleicht. Das ist nur dadurch EVENTUELL zu finden ! Auf Anhieb sehe ich mal nichts. Du hats nicht mal gesagt, welche Farbe MOMENTAN angezeigt wird.
_________________ Gruß
Hansa
|
|
NOS 
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Fr 09.05.08 18:45
AXMD hat folgendes geschrieben: | Vielleicht hilft es, wenn du nach dem Ändern der Farbe bzw. am Ende des Konstruktors Invalidate aufrufst, damit das Panel neu gezeichnet wird?
AXMD |
Hi,
ein Invalidate hilft nicht ... hatteich temporär schon einmalö drin und grad noch einmal gecheckt
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
NOS 
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Fr 09.05.08 18:46
hansa hat folgendes geschrieben: | NOS hat folgendes geschrieben: | Vielleicht ist es mit dem Snippet doch eine Spur besser das zu beurteilen .. |
Nicht vielleicht. Das ist nur dadurch EVENTUELL zu finden ! Auf Anhieb sehe ich mal nichts. Du hats nicht mal gesagt, welche Farbe MOMENTAN angezeigt wird. |
Hi Hansa,
die momentane Farbe ist clWhite wie der Parent auch ... Parentcolor auf false hilft aber auch nicht um das mal vorweg zu nehmen ...
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Fr 09.05.08 18:59
Bei mir geht das auf Anhieb. Wie sieht denn die Deklaration des Create aus ? Man muss offensichtlich jede Zeile einzeln anmahnen.  So was schadet dir selber am meisten !!
_________________ Gruß
Hansa
|
|
NOS 
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Fr 09.05.08 19:04
hansa hat folgendes geschrieben: | Bei mir geht das auf Anhieb. Wie sieht denn die Deklaration des Create aus ? Man muss offensichtlich jede Zeile einzeln anmahnen. So was schadet dir selber am meisten !! |
Sorry Hansa,
aber ich hatte es irgendwo mal in erinnerung das man nicht sofort alles mit postet ... werde mich aber in zukunft bessern ... aus mehr besteht die unitschon kaum noch da ich alles rausgenommen habe was schaden könnte
achja .. um es noch vorweg zu nehmen ... ich nutze delphi 2007 pro deutsch mit aktuellen updates auf einem vista ultimate 64 bit falls das was dazu beiträgt
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| interface
uses uTemplateConstants, uTemplateStructures, Controls, Classes, ExtCtrls, Graphics;
type TTemplateObjectPanel = class(TPanel) private protected public ProjectChanged : boolean; constructor Create(AOwner: TComponent); override; procedure CreateBasicTemplate(TemplateType : integer); published end; |
Andreas
Moderiert von Narses: Delphi-Tags hinzugefügt
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Fr 09.05.08 19:27
Wird das ganze Package überhaupt compiliert ?
_________________ Gruß
Hansa
|
|
NOS 
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Fr 09.05.08 19:29
hansa hat folgendes geschrieben: | | Wird das ganze Package überhaupt compiliert ? |
es ist ja eine unit die von der main unit genutzt wird ... compiliert wird sie auf jeden fall ... es ist kein package mit einer komponente ...
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Fr 09.05.08 19:41
Was soll dann diese Ausgangsfrage ?
NOS hat folgendes geschrieben: | | ich habe mir eine Komponente von TPanel abgeleitet und möchte in der Create routine die Farbe des Panels setzen ... |
Lerne erst mal, was eine Komponente ist. 
_________________ Gruß
Hansa
|
|
NOS 
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Fr 09.05.08 19:43
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Fr 09.05.08 19:53
NOS hat folgendes geschrieben: | | Was hat das eine mit dem anderen zu tun ? ... |
Eben nichts ! So, Nachhilfestunde für heute beendet.  Soll sonstwer weitermachen. Deklaration fehlt immer noch usw. So gehts jedenfalls :
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| type TTestPanel = class (TPanel) private constructor Create(AOwner: TComponent); override; end;
procedure Register;
implementation
constructor TTestPanel.Create(AOwner: TComponent); begin inherited; Color := clRed; end;
procedure Register; begin RegisterComponents('Eigene', [TTestPanel]); end; |
Quasi eine einzige Zeile !
_________________ Gruß
Hansa
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Fr 09.05.08 19:56
Hi! Versuche doch mal, die Unit Graphics einzubinden, denn da sind die ganzen Farbkonstanten wie clRed usw. definiert. So müsste es mit hexadezimalen Werten wzb. $000000FF für rot klappen.
|
|
NOS 
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Fr 09.05.08 20:15
Jakob_Ullmann hat folgendes geschrieben: | | Hi! Versuche doch mal, die Unit Graphics einzubinden, denn da sind die ganzen Farbkonstanten wie clRed usw. definiert. So müsste es mit hexadezimalen Werten wzb. $000000FF für rot klappen. |
Hi,
und vielen Dank ... aber das ist auch nicht das problem ... was mich stutzig macht ist das alles geht nur die farbe nicht ...
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
Jakob_Ullmann
      
Beiträge: 1747
Erhaltene Danke: 15
Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
|
Verfasst: Fr 09.05.08 20:47
Hast du es schon damit probiert? Welchen Error gibt es? Oder hast du mal selbst etwas am Panel verändert (also in der Orginal-Unit)?
|
|
NOS 
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Fr 09.05.08 21:53
Jakob_Ullmann hat folgendes geschrieben: | | Hast du es schon damit probiert? Welchen Error gibt es? Oder hast du mal selbst etwas am Panel verändert (also in der Orginal-Unit)? |
Hi,
ich habe das ganze jetzt noch einmal umgebastelt sodas ich ein package habe mit einer komponente ... diese funktioniert super im designtime modus ... also in diesem falle droppe ich im designtime mode ein client aligned rotes panel mit entsprechernder caption auf mein form ... wenn ich das zur runtime mache geht es einfach nicht ...
anbei der source der unit sowie der source des erzeugens
unit :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111:
| unit uTemplateObjectPanel;
interface
uses SysUtils, Classes, Controls, ExtCtrls, Graphics;
type TTemplateObjectPanel = class(TPanel) private protected public ProjectChanged : boolean; constructor Create(AOwner : TComponent); override; destructor Destroy; override; procedure CreateBasicTemplate(TemplateType : integer); published end;
procedure Register;
implementation
procedure Register; begin RegisterComponents('AnSoTeC', [TTemplateObjectPanel]); end;
constructor TTemplateObjectPanel.Create(AOwner: TComponent); begin inherited Create(AOwner); Align := alClient; Color := clRed; Caption := 'TemplateObjectPanel - ' + DateTimeToStr(now); end;
procedure TTemplateObjectPanel.CreateBasicTemplate(TemplateType : integer); begin case TemplateType of 0 : begin end; 1 : begin end; 2 : begin end; 3 : begin end; 4 : begin end; 5 : begin end; 6 : begin end; 7 : begin end; 8 : begin end; 9 : begin end; 10 : begin end; 11 : begin end; 12 : begin end; 13 : begin end; 14 : begin end; 15 : begin end; 16 : begin end; 17 : begin end; end; end;
destructor TTemplateObjectPanel.Destroy; begin
inherited; end;
end. |
Erzeugen des panels:
Delphi-Quelltext 1: 2: 3: 4:
| TemplateObjectPanel := TTemplateObjectPanel.Create(WorkPanel); TemplateObjectPanel.Parent := WorkPanel; TemplateObjectPanel.CreateBasicTemplate(TemplateType); |
WorkPanel ist das ParentPanel auf dem Form und vom Typ TPanel
VIelleicht gibt das alle Informationen die man zur Lösung benötigt ...
Grüße,
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
NOS 
      
Beiträge: 183
Erhaltene Danke: 2
Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 19.4 - Sydney
|
Verfasst: Mi 21.05.08 21:00
Titel: Es geht immer noch nicht :-(
Hallo zusammen,
ich habe es noch ein paar mal versucht und bin eigentlich der ansicht das es nur eine kleinigkeit sein kann ... aber ich finde das problem nicht warum ein manuelles erzeugen zur runtime nicht das gleiche produziert wie das droppen in der ide zur designtime ... die sourcen sind auf dem stand meines letzten postings.
Please help !!!!
Grüße,
_________________ Ich liebe es wenn ein Plan funktioniert ! Aber teilweise sind es die Pläne der Anderen, die besser funktionieren
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mi 21.05.08 21:10
Hast du zufällig den XPman eingebunden?
Also den XP-Stil von der Palette Win32 auf das Formular gezogen?
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|