AGB  ·  Datenschutz  ·  Impressum  







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

Konstruktor direkt aufrufen

Ein Thema von Tubos · begonnen am 17. Apr 2004 · letzter Beitrag vom 17. Apr 2004
Antwort Antwort
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#1

Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 14:10
Hallo!

Der Benutzer meines Programmes soll die Schriftart und -farbe der Hints selbst wählen können.
Dazu benutze ich folgenden Code:
Delphi-Quellcode:
Type
  TMyHintWindow = Class (THintWindow)
   Constructor Create (AOwner: TComponent) ; override ;
  end;
und
Delphi-Quellcode:
Constructor TMyHintWindow.Create(AOwner:TComponent) ;
begin
  Inherited Create (AOwner);
  Canvas.Font:=form1.fontdialog1.font;
 end;
Das funktioniert.
Beim Programmstart muss ich dann folgendes machen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
{ ... }
 HintWindowClass := TMyHintWindow;
  Application.ShowHint := false;
 Application.ShowHint := True;
{ ... }
damit das übernommen wird.
Was mache ich, wenn ich das während des Programmablaufes noch ändern will?
nochmal dasselbe aufrufen, nützt nichts.
Kann man den Konstruktor direkt aufrufen?
Wenn ja, was muss ich als AOwner übergeben?

Thx;
Tubos
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 14:32
Deine Form?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#3

Re: Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 15:19
Jetzt lässt es sich kompilieren und läuft ohne Absturz, die Schriftart der Hints ist aber immer noch die, die beim Programmstart festgelegt wurde.
Lukas
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 16:34
Moin Tubos,

wann wird denn das HintWindow erzeugt, bzw. wann wird der Font abgefragt?
Beim Programmstart ist mir zu ungenau.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#5

Re: Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 16:47
onformcreate - siehe erstes posting.
Lukas
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 17:06
Ich habe das gerade ausprobiert und bei mir funktioniert der Wechsel mit folgendem Code ohne Probleme:
Delphi-Quellcode:
if FontDialog1.Execute then
begin
  Application.ShowHint := false;
  Application.ShowHint := true;
end;
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#7

Re: Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 17:09
wo gehört das rein?
if fontdialog1.execute then ... <-- if execute, was heißt das?
Lukas
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 17:20
Moin Tubos,

Du könntest im TMyHintWindow.Create direkt die gewünschten Daten des Fonts eintragen.

Ich habe es gerade mal ausprobiert, und hatte den Effekt, dass es zuerst mit FontDialog.Font nicht funktioniert hat.
Erst nachdem ich einmal Canvas.Font.Name direkt zugewiesen hatte (ohne FontDialog im Create) ging es immer mit der Zuweisung von FontDialog.Font
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 17:33
Zitat von Christian Seehase:
Du könntest im TMyHintWindow.Create direkt die gewünschten Daten des Fonts eintragen.
Ich glaube, das will Tubos nicht, da er ja den Font zur Laufzeit ändern können möchte.

@Tubos:
Der Code sollte dahin, wo du dem Benutzer die Möglichkeit geben willst, einen neuen Font auszusuchen - also z.B. in ein Button.OnClick.
Fontdialog.Execute zeigt den Dialog an und gibt true zurück, falls der Benutzer OK gedrückt hat, sonst false. Wenn also der Font geändert wurde setze ich Application.ShowHint auf false und gleich wieder auf true, damit das HintWindow neu erzeugt und damit auch über TMyHintWindow.Create die neue Schrift eingesetzt wird.
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#10

Re: Konstruktor direkt aufrufen

  Alt 17. Apr 2004, 17:50
achso, execute hat einen rückgabewert

danke, mein programm muss übermorgen fertig sein und ich hab jetzt im moment keine zeit, aber ich werde das dann nächste woche ausprobieren und mich hier nochmal melden.
Lukas
  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 18:38 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