AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi OI-Einstellung einer Komponente wird nur in Desingmodus geändert
Thema durchsuchen
Ansicht
Themen-Optionen

OI-Einstellung einer Komponente wird nur in Desingmodus geändert

Ein Thema von djmsc · begonnen am 15. Aug 2020 · letzter Beitrag vom 23. Aug 2020
Antwort Antwort
djmsc

Registriert seit: 5. Feb 2005
11 Beiträge
 
#1

AW: OI-Einstellung einer Komponente wird nur in Desingmodus geändert

  Alt 15. Aug 2020, 18:59
Ok danke das probiere ich mal.
  Mit Zitat antworten Zitat
djmsc

Registriert seit: 5. Feb 2005
11 Beiträge
 
#2

AW: OI-Einstellung einer Komponente wird nur in Desingmodus geändert

  Alt 15. Aug 2020, 19:50
Also jetzt funktioniert es
Danke nochmal
Und die OnClick Geschichte werde ich auch noch ändern.

PS: Das Ganze sieht bis jetzt so aus (siehe Anhang) und ich muss noch einiges daran basteln
Angehängte Grafiken
Dateityp: jpg Kalender.jpg (36,6 KB, 30x aufgerufen)

Geändert von djmsc (15. Aug 2020 um 19:56 Uhr)
  Mit Zitat antworten Zitat
djmsc

Registriert seit: 5. Feb 2005
11 Beiträge
 
#3

AW: OI-Einstellung einer Komponente wird nur in Desingmodus geändert

  Alt 22. Aug 2020, 23:13
Ich habe ein weiteres kleines Problem mit meiner Komponente.

Nach dem ich alles angepasst, kompiliert und die Kompo auf eine Form gezogen habe kam folgende Fehlermeldung

Fehlermeldung

Ich habe herausgefunden, dass es an der Caption vom Button liegt (siehe Code-Schnipsel).

Code:
constructor TKalender.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  FBackButton := TMyButton.Create(self);
  with FBackButton do begin
       Parent := self;
       SetSubComponent(true);
       left := 8;
       top := 8;
       width := 25;
       height := 25;
       //Caption := 'b';        Fehlermeldung wenn aktiv
       visible := true;
       OnClick := BackButtonClick;
  end;
Nur kapiere ich das nicht ganz, warum sich die Caption nicht ändern lässt.

PS: Wenn die Kompo schon auf einer Form ist und ich etwas ändere kommt die Fehlermeldung nicht nur wenn ich sie auf einer leeren Form hinzufüge.
Angehängte Grafiken
Dateityp: jpg FehlerDelphi.jpg (11,4 KB, 13x aufgerufen)

Geändert von djmsc (22. Aug 2020 um 23:17 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.400 Beiträge
 
Delphi 12 Athens
 
#4

AW: OI-Einstellung einer Komponente wird nur in Desingmodus geändert

  Alt 22. Aug 2020, 23:49
Liegt zu dem Zeitpunkt die Komponente auf einer sichtbaren Form? (Parent)

SetCaption wird ein Repaint auslösen und dafür muß ein aktiver Canvas zur Verfügung stehen.
Versuche mal den Parent deines Buttons zuletzt zu setzen, bzw. sieh nach was der Setter vom Caption so alles macht.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Aug 2020 um 23:52 Uhr)
  Mit Zitat antworten Zitat
djmsc

Registriert seit: 5. Feb 2005
11 Beiträge
 
#5

AW: OI-Einstellung einer Komponente wird nur in Desingmodus geändert

  Alt 22. Aug 2020, 23:55
Wie ich schon im PS geschrieben habe. Wenn die Kompo bereits auf einer sichtbaren Form liegt und ich Änderungen vornehme gibt es keine Fehlermeldungen. Nur wenn ich die Kompo mit den Änderungen auf eine leere Form ziehe gibt es die Fehlermeldung bei aktivierter Caption.

himitsu schrieb:
Versuche mal den Parent deines Buttons zuletzt zu setzen, bzw. sieh nach was der Setter vom Caption so alles macht.

Werde ich mal testen und nachsehen

Geändert von djmsc (22. Aug 2020 um 23:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.400 Beiträge
 
Delphi 12 Athens
 
#6

AW: OI-Einstellung einer Komponente wird nur in Desingmodus geändert

  Alt 23. Aug 2020, 00:11
Im Constructor ist die Komponente noch nicht auf der Form.

Parent deines TKalender wird erst nach dem Constructor zugewiesen.

Delphi-Quellcode:
inherited Create(AOwner);
if AOwner is TWinControl then
  Parent := TWinControl(AOwner);
"Normaler Weise" wird/sollte bei Änderungen von Eigenschaften kein Repaint oder Dergleichen ausgelöst werden (von dir), wenn es noch noch nichts zum Zeichnen gibt.
Man kann z.B. auf HandleAllocated prüfen, bevor man auf Handle oder Canvas zugreift oder etwas machen will, was Diese benötigt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (23. Aug 2020 um 00:15 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz