| Autor |
Beitrag |
elcomportal
      
Beiträge: 48
Win XP home
D5 standard
|
Verfasst: So 01.01.06 22:14
Hi, hier ich schon wieder.
Kurze Frage, weiss jemand wie man in Editfeldern und in SpinEdit die Schrift in der Höhe zentrieren kann. Das ist immer alles oben links in der Ecke aufgehängt. Das gefällt mir nicht.
Jemand 'ne Idee? Danke.
Mfg
Torsten
_________________ Starkstrom macht klein und hässlich
|
|
JayK
      
Beiträge: 1013
|
Verfasst: So 01.01.06 23:14
Es gibt da eine Property, die das Regelt  mir fällt aber grad nich ein welche  Delphi kann ich jetzt nicht nochmal anmachen, such mal ganz gründlich im Objektinspektor, vllt finds es ja, ansonsten schaue ich morgen mal 
|
|
elcomportal 
      
Beiträge: 48
Win XP home
D5 standard
|
Verfasst: Mo 02.01.06 17:43
Hi,
dat müsste ja unter Font sein, da is aber nischt. Hmm, wo is der Kram?
Mfg
Torsten
_________________ Starkstrom macht klein und hässlich
|
|
JayK
      
Beiträge: 1013
|
Verfasst: Mo 02.01.06 18:17
Nee unter Font isses nich.
irgendwas mit Justify haben die Werte (nicht die Property!) im Namen.
ich muss mal nachgucken...
|EDIT: Mist, das was ich meinte ist Alignment mit dem Justify, aber das is horizontal
ich finde jetzt auch nix passendes  ich war mir so sicher... tut mir Leid.
Zuletzt bearbeitet von JayK am Mo 02.01.06 18:29, insgesamt 1-mal bearbeitet
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Mo 02.01.06 18:26
Hallo
dafür gibt es keine Standardproperty. Weder für das eine noch das andere.
für das horizontale findest zu edit viele Bsp.
für das vertikale: hilft dir EM_SETRECTNP weiter, autosize des Edits auf false, sonst lohnt sich nicht.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button10Click(Sender: TObject); var Arect: TRect; h:integer; begin with SpinEdit1 do begin h:=form1.Canvas.TextHeight(SpinEdit1.Text); SendMessage(Spinedit1.Handle,EM_GETRECT,0,LongInt(@Arect)); Arect.Bottom := ClientHeight + 1; Arect.Right := ClientWidth - 20; Arect.Top := (ClientHeight-h) div 2; Arect.Left := 1; SendMessage(Handle,EM_SETRECTNP,0,LongInt(@arect)); repaint; end; end; |
aber das ist auch nur eine halbe Sache, bei jeder Größenänderung wir Seteditrect aufgerufen, und macht dir die Einstellung wieder zunichte. Seteditrect ist private und die kannst du nicht überschreiben. Du kannst dir aber ein eigenes Spinedit erstellen und den source "kopieren". Der Source fürs Spinedit ist unabhängig der sonstigen VCL-codes auch bei den kleinen Delphis dabei.
Mfg Frank
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Zuletzt bearbeitet von Keldorn am Mo 02.01.06 18:28, insgesamt 1-mal bearbeitet
|
|
elcomportal 
      
Beiträge: 48
Win XP home
D5 standard
|
Verfasst: Mo 02.01.06 19:32
Wie, bei einer Grössenänderung? Man kann das Ding zur Laufzeit doch nicht in der Grösse ändern?! Und wie und was müsste ich einbinden wenn ich mein eigenes SpinEdit mache? Ich habe keine Ahnung wie das geht. Ich verstehe Deinen Code nicht, dafür programmiere ich zu selten, mache sonst mehr mint Controller und Hardware...
Mfg
Torsten
_________________ Starkstrom macht klein und hässlich
|
|
elcomportal 
      
Beiträge: 48
Win XP home
D5 standard
|
Verfasst: Mo 02.01.06 19:42
ich habe mir grad den Code vom Spinedit angeguckt, aber was ich nicht verstehe ist, wo steht wie das Ding aussiht? Nicht wie gross, sondern das die Buttons Dreiecke drin haben und rechts sind. Und wie könnte man ein Eingabefeld machen, dass ganz anders aussieht, z. B. mal 6-eckig oder so?
Mfg
Torsten
_________________ Starkstrom macht klein und hässlich
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Mo 02.01.06 19:46
elcomportal hat folgendes geschrieben: | | Wie, bei einer Grössenänderung? Man kann das Ding zur Laufzeit doch nicht in der Grösse ändern?! |
in dem du align oder anchors setzt und das Edit sich in der Größe ändert, wie z.B. die Form.
elcomportal hat folgendes geschrieben: | | Und wie und was müsste ich einbinden wenn ich mein eigenes SpinEdit mache? Ich habe keine Ahnung wie das geht. |
Da gugg mal lieber bei Torry ( www.torry.net), ob du nicht gleich was fertiges findest.
| Zitat: |
Ich verstehe Deinen Code nicht, |
was genau verstehs du denn nicht?
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Mo 02.01.06 19:50
elcomportal hat folgendes geschrieben: | ich habe mir grad den Code vom Spinedit angeguckt, aber was ich nicht verstehe ist, wo steht wie das Ding aussiht? Nicht wie gross, sondern das die Buttons Dreiecke drin haben und rechts sind. Und wie könnte man ein Eingabefeld machen, dass ganz anders aussieht, z. B. mal 6-eckig oder so?
Mfg
Torsten |
das sind die Spinbuttons. Du kannst auch eigen Bildchen setzen. Spinedit->up und downglyphs-eigenschaft.
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|
elcomportal 
      
Beiträge: 48
Win XP home
D5 standard
|
Verfasst: Mo 02.01.06 20:05
Die Zeilen mit dem Handle:
Delphi-Quelltext 1: 2: 3:
| SendMessage(Spinedit1.Handle,EM_GETRECT,0,LongInt(@Arect));
SendMessage(Handle,EM_SETRECTNP,0,LongInt(@arect)); |
Dieses Handle muss doch irgendwo festgelegt werden...
und die Ausdrücke EM_SETRECTNP... , gibt es da irgendwo ne Übersicht? Sind das die API Funktionen? oder was ist das?
MFg
Torsten
_________________ Starkstrom macht klein und hässlich
|
|
Keldorn
      
Beiträge: 2266
Erhaltene Danke: 4
Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
|
Verfasst: Mo 02.01.06 20:23
Hallo
in der erste zeile kannst du dir dass Spinedit sparen, hatte erst danach das with drumgezogen, sorry. Damit ist durch das with immer das Handle des spinedits gemeint.
einfach bei em_??? auf f1 drücken. dort hast du dann auch eine groupübersicht, was noch alles so geht.
_________________ Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
|
|