![]() |
Aussehen eines Labels überall gleich
Liste der Anhänge anzeigen (Anzahl: 1)
Gudden Abend,
ich schreib seit ein paar Tagen ein Countdown, der sein Ergebnis in einem Label ausgibt. Das funktioniert auch recht gut. Das Problem ist, dass das Label, je nachdem auf welchem PC ich das Programm installiere, anders aussieht. Mal steht der Text rechtsbündig, mal ist er so groß das man nur einen Teil sieht, usw... :gruebel: Weis jemand wie ich das ändern kann? :?: Hab mal einen Screenshot als Beispiel angehängt. |
Re: Aussehen eines Labels überall gleich
wenn du eine spezielle Schriftart verwendet, dann mußt du schon dafür sorgen, daß diese (der Font) auch installiert ist :zwinker:
dieses ist jedenfalls kein "Standard"-Font, welchen jeder hat Achtung: paß aber auf, daß du den Font auch weitergeben darfst |
Re: Aussehen eines Labels überall gleich
Hast Du das Label vielleicht auf eine "exotische" Schriftart eingestellt, die auf den meisten PCs nicht installiert ist?
[edit] Mal wieder zu spät :? [/edit] |
Re: Aussehen eines Labels überall gleich
Der Soll-Zustand ist doch kein System-Font? Steht der verwendete Font dem Projekt auch auf den anderen Rechnern zur Verfügung?
Wenn nicht: Die von Dir designte Umgebung für Deinen Timer ist auf Deinen verwendeten Font und die verwendete Schriftgröße ausgerichtet. Die Komponente TLabel ist std.mäßig mit auf AutoSize = True definiert. Daraus ergibt sich Dein Problem. Die Schrift, die auf einem anderen PC verwendet wird, ist in der Skalierung (das betrifft auch Diktengröße (Buchstabenbreite), Diktenabstand, etc.) nicht identisch mit Deiner SChriftart. Wird mehr Platz für die Schrift benötigt, wird das Label breiter und "läuft aus der Eltern-Komponente über". Dein Label ist nichts rechtsbündig, sondern linksbündig. Wäre es rechtsbündig, würde es nach links vergrößert werden und links überlaufen. Und da ich zu langsam war: Die zwei über mir haben recht. |
Re: Aussehen eines Labels überall gleich
Dann kann ich die "Font"-Datei doch auch bei der Installation mit installieren oder?
Wenn ja, dann kommt die doch nach zB "C:\WINDOWS\Fonts" oder? P.S.: Danke für die schnellen Antworten |
Re: Aussehen eines Labels überall gleich
Zitat:
Viel Erfolg! |
Re: Aussehen eines Labels überall gleich
Theoretisch kannst Du das natürlich machen. Alternativ kannst Du auch den Font als Ressource in die Echse einkompilieren und direkt aus dieser, ohne die Font-Datei auf der Festplatte zu speichern, benutzen.
Delphi-Quellcode:
Zum Erstellen einer Ressourcen-Datei und Einbinden in das Kompilat bitte die DP-Suche oder die Delphi-OH bemühen. Beispiele solltest Du genug finden.
var
MyFont: TFont; { ... } procedure LoadResFont; var Res : TResourceStream; ResFontCount: DWord; begin Res := TResourceStream.Create(hInstance, '_DEINFONT_', 'RT_FONT'); try FontRes_Size := Res.Size + 1; FontRes_Buffer := AllocMem(FontRes_Size); Res.Read(FontRes_Buffer^, FontRes_Size); finally Res.Free; end; ResFontCount := 1; FontRes_Fraktur := AddFontMemResourceEx(FontRes_Buffer, FontRes_Size, nil, @ResFontCount); MyFont:= TFont.Create; MyFont.Name:= 'xirod'; MyFont.Size:= 8; MyFont.Color:= clBlack; end; { ... } procedure TForm1.FormCreate(Sender: TObject); begin LoadResFont; Label1.Font:= MyFont; end; |
Re: Aussehen eines Labels überall gleich
Zitat:
![]() Oder ... einige Installer bieten dafür Funktionen an Man kann den Font aber auch ganz einfach im Programmverzeichnis (zur EXE) ablegen. Und ich weiß ja nicht wo du den font her hast, aber wie schon erwähnt, hast du auch die Berechtigung den Font mit deinem Programm weiterzugeben? |
Re: Aussehen eines Labels überall gleich
Danke für die Hilfe. Jetzt funktioniert alles so wie ich es möchte. Hab jetzt einfach das mit mit in den Installer gepackt. Muss nurnochmal gucken ob ich das Font weitergeben darf. :wink:
Danke Ferox :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz