AGB  ·  Datenschutz  ·  Impressum  







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

Wie Höhe festschreiben?

Ein Thema von Mattze · begonnen am 19. Jun 2011 · letzter Beitrag vom 20. Jun 2011
Antwort Antwort
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

Wie Höhe festschreiben?

  Alt 19. Jun 2011, 17:52
Hi,

ich versuche mich gerade mal wieder an einer Komponente.
Nun bin ich auf eine Frage gestoßen, die ich nicht beantworten kann:
Die Combobox von Delphi hat eine vorab festgelegte Höhe. (Ich glaube 21.)
Wenn ich sie höher auf mein Formular ziehe, wird sie sofort wieder auf dies Standardhöhe verringert.
Wie macht man denn sowas?
Ich kriege bisher nur hin, dass die Komponente zur Laufzeit wieder zusammenschrumpelt, was natürlich überhaupt kein Problem ist.
Bei manchen Dinge ist das aber zur Designtime durchaus gut, z. Bsp. bei TEdit usw.

Gruß
Mattze
  Mit Zitat antworten Zitat
fui-tak

Registriert seit: 24. Okt 2008
117 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Wie Höhe festschreiben?

  Alt 19. Jun 2011, 18:00
Man könnte die Schriftgröße der Combobox ändern... aber sonst hab ich jetzt keine Idee
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#3

AW: Wie Höhe festschreiben?

  Alt 19. Jun 2011, 18:34
hi,

da hast Du meine Frage nicht richtig verstanden oder ich habe sie missverständlich formuliert.
Es geht NICHT darum, wie man eine Combobox höher kriegt.
Es geht darum, wie man bei einer selbstgeschriebenen Komponente die Höhe "unveränderbar" schon zur Designtime festlegt.

Bsp. (!!!): Combobox. Wenn man die auf ein Formular zieht und sie da höher als 21 macht, schrumpelt sie sofort wieder auf die 21.
DAS will ich in einer EIGENEN Komponente nachmachen und weiß nicht wie. In den Quellen habe ich es nicht gefunden. (Ich habe D7 pro.)

Gruß
Mattze
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Wie Höhe festschreiben?

  Alt 19. Jun 2011, 20:20
In dem Du Deiner eigene Komponente maxheight maxwitdh usw mit dazu gibst als Eigenschaft und dies Protected machst.
Oder das Canvas fixierst.

Gruss alfold
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Wie Höhe festschreiben?

  Alt 19. Jun 2011, 20:58
Du kannst auch einfach SetBounds überschreiben. Das wird nämlich beim Setzen der Höhe usw. aufgerufen.
Delphi-Quellcode:
    procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer); override;
    // Dummyzeile, da der Highlighter im Forum ne Macke hat^^
Dort kannst du den Wert verändern bevor du ihn an die geerbte Methode weitergibst.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#6

AW: Wie Höhe festschreiben?

  Alt 20. Jun 2011, 11:17
Hi,

also ich packe es nicht.
Bei SetBounds funktioniert es nicht. Vielleicht muss ich erst eine "Zwischenkomponente" ableiten, bei der ich das setbounds überschreibe und kann dann erst die eigentliche Komponente basteln? (Vorfahr ist bei mir TCustomControl.)

Min-und MaxHeight laufen offenbar auf das selbe hinaus. Irgendwie muss man sie ja in die Komponente einbauen und das wird wohl nur durch Methodenüberschreiben gehen. Bleibt die Frage, welche das sein müssten.

Wie gesagt, zur Laufzeit ist das natürlich alles kein Problem mit der Höhe. Und richtig nötig zur Designtime wäre das eigentlich auch nicht.
Aber schön wäre es, würde einiges einfacher machen und wie üblich, fragt man sich oft, wie die das gemacht haben.
(Es wäre ja auch Ziel der Oberfläche, dass man das so auf dem Formular anordnen kann, wie es zur Laufzeit aussieht. Kann man ja, aber da muss man eben doch genau gucken. Das kann man sich bei der automatischen Höhe sparen.)

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Wie Höhe festschreiben?

  Alt 20. Jun 2011, 11:42
Wie hast Du es denn versucht? SetBounds sollte nämlich schon funktionieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

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

AW: Wie Höhe festschreiben?

  Alt 20. Jun 2011, 12:31
Welche Delphi-Version hast Du denn?
Evtl. musst Du Dein Package noch neu installieren. Es könnte evtl. sein, dass zur Laufzeit deine neue Kompo erzeugt wird aber in der IDE noch Deine alte (installierte).
Ändere mal testweise die Farbe oder Standardtext um zu sehen, welche Kompoversion in der IDE installiert wird.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#9

AW: Wie Höhe festschreiben?

  Alt 20. Jun 2011, 18:06
Hi,

jetzt geht es mit SetBounds. Da war bei mir nur 'ne kleine Schwarzblende.
Ich habe das NACH inherited festgelegt, was natürlich nicht gehen kann.

Also vielen Dank!

Gruß
Mattze
  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 19:37 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