Entwickler-Ecke
Sonstiges (Delphi) - Button mit senkrechter Schrift
Cash - Mo 17.03.03 21:28
Titel: Button mit senkrechter Schrift
Hi@all
Kurze Frage:
Ich kann die vertikale Schrift erstellen, aber wenn ich meinen Code
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| var i : Integer; begin if not (Sender is TButton) then Exit;
with TButton(Sender) do begin i := GetWindowLong(Handle, GWL_STYLE); SetWindowLong(Handle, GWL_STYLE, i or BS_MULTILINE); Caption := 'B' + #13#10 + 'e' + #13#10 + 'e' + #13#10 + 'n' + #13#10 + 'd' + #13#10 + 'e' + #13#10 + 'n';
Width := 50; Height := 150; end; |
unter FormActivate schreibe, macht er mir keine vertikale Caption mehr auf dem Button. Wie kann ich es machen, dass die vertikale SChrift von Beginn an beim Starten der Form erstellt wird und nicht erst wie bei mir nach dem Clicken auf dem Sender-button.
Kann mir da einer helfen?
Cash - Di 18.03.03 16:00
Kenn mir denn wirklich keiner helfen :(
Tomac - Di 18.03.03 16:14
Schreib den Code z.B. in das OnClick Ereignis des Buttons und ruf bei form.create mit "button1.click" die Prozedur auf. So geht's bei mir.
mfG
Tomac
Cash - Di 18.03.03 16:28
HI,
Hab ich schon ausprobiert, es funtzt aber nicht :(
Und außerdem stehen einige Dinge in diesem Button, die erst beim clicken des Buttons geschehen sollen. So wie du es vorschlägst, würden alle Anweisungen beim Starten geschehen. Das soll es aber nicht.
MKehrer - Di 18.03.03 16:37
also folgender Code funzt bei mir
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin if not (Sender is TButton) then Exit;
with TButton(Sender) do begin i := GetWindowLong(Handle, GWL_STYLE); SetWindowLong(Handle, GWL_STYLE, i or BS_MULTILINE); Caption := 'B' + #13#10 + 'e' + #13#10 + 'e' + #13#10 + 'n' + #13#10 + 'd' + #13#10 + 'e' + #13#10 + 'n';
Width := 50; Height := 150; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin button1Click(button1); end;
end. |
Ansonsten nimm einem Timer.
Den stellt Du auf Intervall 1 und sorgt Dafür, daß er nur einmal
aufgerufen wird und dort erledigst Du das gewünschte.
Ist aber nicht die elegante Art so was zu lösen.
Wenn man alten Code mit solchen Schweinereien restaurieren muß (und das muß ich zum Teil) ist man arm dran.
Delete - Di 18.03.03 16:46
Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.FormCreate(Sender: TObject); begin SetWindowLong(Button1.Handle, GWL_STYLE, GetWindowLong(Button1.Handle, GWL_STYLE) or BS_MULTILINE); Button1.Caption := 'H'+#13#10+'o'+#13#10+'l'+#13#10+'l'+#13#10+'o'; end; |
Und das funktionniert bei mir im OnCreate. Ich weiß nicht, was ihr dafür Probleme habt. :shock:
Cash - Di 18.03.03 18:37
Hi,
Komisch wieso funktioniert das von LUCKIE jetzt?! Wieso funtzt meins nicht?
Hab dann noch ne Frage: Kann man die obige Leiste von der Form wo anders positionieren zB an den linken Rand?
Delete - Di 18.03.03 19:01
Neue Frage, neuer Thread.
Aber ohne ohne aufwendiges selber zeichnen wird das nichts werden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!