AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Checkbox Eigenschaft "Top" ändern / Komponente ableiten

Checkbox Eigenschaft "Top" ändern / Komponente ableiten

Ein Thema von Grisu2000 · begonnen am 3. Jan 2014 · letzter Beitrag vom 3. Jan 2014
Antwort Antwort
Grisu2000

Registriert seit: 3. Jan 2014
6 Beiträge
 
#1

Checkbox Eigenschaft "Top" ändern / Komponente ableiten

  Alt 3. Jan 2014, 00:22
Hallo,
die Eigenschaft Top einer Checkbox ist ein Integer-Wert. Ist es möglich diesen Wert auf longint zu ändern?

Folgendes Problem:
Ich habe auf einem Scrollbox Images (TImages) und jeweils eine Checkbox (Tcheckbox) zur Auswahl zugeordnet.
Diese werden zur Laufzeit in Abhängigkeit der Bilderzahl erzeugt. Funktioniert auch alles soweit, solange der Wert für die Eigenschaft "Top" bei den Checkboxen unter 32000 bleibt. Bei den Images dagegen kann die Eigenschaft "Top" größere Werte annehmen und diese werden daher auch korrekt dargestellt.

Kann ich hierzu die Komponente TCheckbox ableiten und dem Top einen erweiterten Bereich zuordnen? Und wenn ja, wie sieht sowas aus?

Ich nutze Delphi7.

Schon mal Danke im voraus

Gruß
Hanns-Dieter
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

AW: Checkbox Eigenschaft "Top" ändern / Komponente ableiten

  Alt 3. Jan 2014, 01:15
TCheckBox und TImage sind Nachfahren von TControl und erben von dort die Eigenschaft Top, die als Integer definiert ist. Es gibt dort daher keine Unterscheidung in Bezug auf den Typ von Top.

Sofern die Checkboxen untereinander liegen sollen, könnte das Setzen von Align := alTop helfen. Die Komponenten ordnen sich dann von alleine untereinander an.

Wobei am Rande, nur aus Neugier: 32000 als Top, dies hieße ja über 1200 Checkboxen in der Scrollbox. Wie kann man damit noch sinnvoll arbeiten?
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.380 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Checkbox Eigenschaft "Top" ändern / Komponente ableiten

  Alt 3. Jan 2014, 01:17
TCheckBox erbt die Eigenschaft Top von TControl. Die kann man nicht verändern. Ist meines Wissen in D7 aber bereits ein 32 bit integer, also bis etwa 2^31.
  Mit Zitat antworten Zitat
Grisu2000

Registriert seit: 3. Jan 2014
6 Beiträge
 
#4

AW: Checkbox Eigenschaft "Top" ändern / Komponente ableiten

  Alt 3. Jan 2014, 04:26
Danke schon mal für die Antwort.
Es sind tatsächlich über 1200 Checkboxen (je nach Anzahl Bilder im Verzeichnis durchaus auch noch mehr). Es werden alle Bilder als Vorschau mit 200x200 Pixel dargestellt, und am Rand jedes Bildes die Checkboxen zur Auswahlmöglichkeit für die Bilder.
Da geht das Arbeiten damit eigentlich ganz gut.
Die Bilder stehen nicht alle untereinander, sonder je nach Bildschirmbreite sind ca. 6 bis 8 Bilder (und damit Checkboxen) nebeneinander.

Wenn man den Wert nicht ändern kann, muss ich mir was anderes überlegen, um eine Markierung für ausgewählte Bilder zu bekommen.
Kann man Bilder farbig umranden?

Gruß
Hanns-Dieter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.607 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Checkbox Eigenschaft "Top" ändern / Komponente ableiten

  Alt 3. Jan 2014, 05:17
Es sind dennoch mindestens 30 Bildschirme in der Höhe.

Nimm besser einen Grid ListView und mach es ordentlich.

Dort hast du dann auch Multiselekt, sortieren, filtern usw.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: Checkbox Eigenschaft "Top" ändern / Komponente ableiten

  Alt 3. Jan 2014, 17:57
Das "Problem" liegt nicht am Datentyp von Top bei Checkboxen. Folgender (erstmal sinnfreier) Quelltext funktioniert unter Delphi 7:
Delphi-Quellcode:
  CheckBox1.Top := MaxInt;
  CheckBox1.Caption := Format('Top: %d - MaxInt: %d',[CheckBox1.Top,MaxInt]);
  ShowMessage(CheckBox1.Caption);
Heraus kommt aber: Top: 32767 - MaxInt: 2147483647
D. H.: Der Typ von Top ist schon ok, aber "irgendwer" ist der Meinung, dass 32767 ausreichend sein dürfte.
Habe mir nicht die Mühe gemacht in den Tiefen der Delphisourcen oder von Windows nachzuforschen, wo diese "Einschränkung" vergraben ist.

Der "Effekt" tritt auch bei Buttons auf, weitere Komponenten hab' ich nicht ausprobert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.607 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Checkbox Eigenschaft "Top" ändern / Komponente ableiten

  Alt 3. Jan 2014, 18:04
Man könnte jetzt natürlich nachsehn, was .Top intern nutzt.

http://msdn.microsoft.com/en-us/libr.../ms632631.aspx
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 3. Jan 2014 um 18:06 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 06:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf