AGB  ·  Datenschutz  ·  Impressum  







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

TPanel: Height überschreiben

Ein Thema von Helmi · begonnen am 4. Aug 2009 · letzter Beitrag vom 5. Aug 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#1

TPanel: Height überschreiben

  Alt 4. Aug 2009, 21:51
Hallo,

ich habe eine Komponente die von TPanel abgeleitet ist.
Nun möchte ich gerne das Height überschreiben.

Wie mach ich das am Einfachsten?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: TPanel: Height überschreiben

  Alt 4. Aug 2009, 21:57
schonmal versucht es einfach neu zu definieren?

und um auf das "alte" Property zuzugreifen, gibt es auch da das gute alte Inherited.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#3

Re: TPanel: Height überschreiben

  Alt 4. Aug 2009, 22:02
ich habs so propiert:

Delphi-Quellcode:
private
  FHeight: Integer;
  procedure SetHeight(Value: Integer);

puplished
    property Height: Integer read FHeight write SetHeight;

{ ... }

procedure TMaskFrame.SetHeight(Value: Integer);
begin
  If FHeight <> Value then
    begin
      FHeight := Value;

      self.Height := Value + 30;
    end;
end;
Zur Erklärung, egal was eingegeben wird als Height, es soll immer 30 dazu gerechnet werden.

Wenn ich das ausführe, bekomm ich einen Stack-Überlauf.
Sprich, ne Endlosschleife.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Satty67

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

Re: TPanel: Height überschreiben

  Alt 4. Aug 2009, 22:13
Du rufst mit self.heigth auch permanent SetHeight auf.

Schreib einfach FHeight := Value +30;
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#5

Re: TPanel: Height überschreiben

  Alt 4. Aug 2009, 22:16
Hab ich ausprobiert.

Aber dann wird die Höhe nicht geändert....
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: TPanel: Height überschreiben

  Alt 4. Aug 2009, 22:25
und so?
Delphi-Quellcode:
private
  function GetHeight: Integer;
  procedure SetHeight(Value: Integer);

puplished
    property Height: Integer read GetHeight write SetHeight;

{ ... }

function TMaskFrame.GetHeight: Integer;
begin
  Result := inherited Height - 30;
end;

procedure TMaskFrame.SetHeight(Value: Integer);
begin
  inherited Height := Value + 30;
end;
$2B or not $2B
  Mit Zitat antworten Zitat
Satty67

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

Re: TPanel: Height überschreiben

  Alt 4. Aug 2009, 22:30
Ach OK, man sollte alles lesen. Geht ja um eine TPanel Ableitung...

/killed
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#8

Re: TPanel: Height überschreiben

  Alt 4. Aug 2009, 22:33
Zitat von himitsu:
und so?
ja genau so

Danke - das hat funktioniert!
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: TPanel: Height überschreiben

  Alt 4. Aug 2009, 22:46
PS: dein Weg wäre vermutlich auch gegangen, allergings mit einer Änderung
Delphi-Quellcode:
procedure TMaskFrame.SetHeight(Value: Integer);
begin
  If FHeight <> Value then
    begin
      FHeight := Value;
      inherited Height := Value + 30;
    end;
end;
und es wäre FHeight sozusagen doppelt vorhanden, einmal bei dir und in den Vorfahren
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#10

Re: TPanel: Height überschreiben

  Alt 5. Aug 2009, 05:55
Zitat von himitsu:
PS: dein Weg wäre vermutlich auch gegangen, allergings mit einer Änderung
Delphi-Quellcode:
procedure TMaskFrame.SetHeight(Value: Integer);
begin
  If FHeight <> Value then
    begin
      FHeight := Value;
      inherited Height := Value + 30;
    end;
end;
und es wäre FHeight sozusagen doppelt vorhanden, einmal bei dir und in den Vorfahren
Hallo Himitsu,

deine Änderung klingt gut! - Ich werde das heute nachmittag/abend mal ausprobieren.
Jetzt gehts nicht, weil ich schon der Arbeit bin...

Ich hab das inherited vor der If-Anweisung gehabt (so wie z. b. bei einem constructor).

Mit deiner Änderung hätte ich mein eigenes FHeight für weitere Zwecke im Code vorhanden.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:45 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