Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Komponentenprogrammierung, Panel ohne Text
Jakane - Fr 10.05.13 10:06
Titel: Komponentenprogrammierung, Panel ohne Text
Hallo liebe Delphi-Helfer :)
meine Panels sind nicht dazu da Texte wieder zu geben:
Delphi-Quelltext
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:
| unit JPanel;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type TJPanel = class(TCustomPanel) private protected public constructor Create(AOwner: TComponent); override; published property Cursor; property Hint; property Left; property Name; property Tag; property Top; property Visible; end;
procedure Register;
implementation
procedure Register; begin RegisterComponents('Jakane', [TJPanel]); end;
constructor TJPanel.Create(AOwner: TComponent); begin inherited; Text:= ''; end;
end. |
Wenn ich aber die Komponente auf mein Formular lege ist der Text immernoch da :(
Wenn ich das Programm starte ist es weg, aber ich will, das es auch weg ist wenn ichs aufs Formular lege
Wie mach ich das? :)
Danke
Tranx - Fr 10.05.13 10:33
Wundere mich, dass das funktioniert:
Die Eigenschaft, die den Text ausgibt ist nämlich bei TPanel Caption!!
Also schreibe doch statt Text := '', Caption := '', vielleicht geht das.
Jakane - Fr 10.05.13 10:41
Nein geht auch nicht.
Das Create springt nur beim Prorgammstart an, aber nicht wenn ich die Komponente aufs Formular leg
Tranx - Fr 10.05.13 10:57
Vielleicht versuchst Du es mit der Methode Repaint:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Procedure Repaint; override;
procedure TPanel.Repaint; begin Caption := ''; Inherited; end; |
Jakane - Fr 10.05.13 11:17
nein, ist immernoch da :(
Delete - Fr 10.05.13 11:30
Folgender Code funktioniert bei mir (DELPHI 2009):
Delphi-Quelltext
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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type TForm1 = class(TForm) Panel1: TPanel; procedure FormCreate(Sender: TObject); private public end; type TJPanel = class(TCustomPanel) private protected public constructor Create(AOwner: TComponent); override; published property Caption; property Cursor; property Hint; property Left; property Name; property Tag; property Top; property Visible; end;
var Form1: TForm1; Panel2: TJPanel;
implementation
{$R *.dfm}
constructor TJPanel.Create(AOwner: TComponent); begin inherited; left:=50; Top:=50; Height:=100; Width:=100; Color:=clRed; Caption:=''; Visible:=true; Enabled:=true; end;
procedure TForm1.FormCreate(Sender: TObject); begin Panel2 := TJPanel.Create(self); Panel2.Parent := Self; end;
end. |
Jakane - Fr 10.05.13 11:34
ok
das probier ich aus wenn niemand anderen was einfällt ^^ TForm wollte ich nicht unbedingt drin haben
jasocul - Fr 10.05.13 13:01
TForm kommt doch nur aus dem Beispiel-Projekt, damit das überprüft werden kann. Das hat nichts mit der Komponente zu tun.
Bei mir funktioniert das auch, wenn ich Caption einen Leer-String zuweise. Alternativ kannst du auch die Eigenschaft ShowCaption auf False setzen.
Ich habe beides bei mir getestet. Wenn es bei dir nicht funktioniert, bindest du evtl. die falschen/veralteten Units ein. Prüfe mal deine Verzeichnisse und schmeiße alle *.dcu raus, die mit der Kompenente zu tun haben.
WasWeißDennIch - Sa 11.05.13 16:27
Vielleicht noch csSetCaption aus ControlStyle entfernen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| constructor TJPanel.Create(AOwner: TComponent); begin inherited; ... ControlStyle := ControlStyle - [csSetCaption]; end; |
Jakane - Mo 13.05.13 11:56
WasWeißDennIch hat folgendes geschrieben : |
Vielleicht noch csSetCaption aus ControlStyle entfernen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| constructor TJPanel.Create(AOwner: TComponent); begin inherited; ... ControlStyle := ControlStyle - [csSetCaption]; end; | |
sowas hab ich mir gewünscht danke :D
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!