TCalcEdit - Calculator

Rund um die LCL und andere Komponenten
Antworten
dietmar
Beiträge: 5
Registriert: Di 24. Apr 2012, 19:07

TCalcEdit - Calculator

Beitrag von dietmar »

Hallo

Ich bin Neueinsteiger in der Gui Programmierung.
Ich möchte die Komponente TCalcEdit verwenden. Ich weiss leider nicht wie ich den Pop-Up Calculator
des TCalcEdit Widgets relativ zum Fenster platzieren kann. Ich meine damit nach Kompilierung des
Programms und Ausführung wird die Teilkomponente Calculator immer in der Mitte des Bildschirms
platziert, unabhaengig davon wo mein Anwendungsfenster sich gerade befindet.

Da dies mein erster Beitrag ist möchte ich den Entwicklern und Schöpfern von FreePascal und der Lazarus-
IDE meinen Respekt und Dank aussprechen. Ich mag die Sprache Pascal und finde das FreePascal/Lazarus Projekt einfach nur Klasse!

Grüße
dietmar

Benutzeravatar
theo
Beiträge: 10906
Registriert: Mo 11. Sep 2006, 19:01

Re: TCalcEdit - Calculator

Beitrag von theo »

Ich glaube, das ist bei diesem Dialog nicht vorgesehen.

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: TCalcEdit - Calculator

Beitrag von corpsman »

Anderseits ist das schreiben eines Taschenrechners quasi eine der 1. Programieraufgaben die man einem Schüler so geben könnte => bevor ich da ewig rumsuche wie das geht würde ich einfach geschwind eine neue Form erstellen und das ding kurz nachprogrammieren *g*.
--
Just try it

dietmar
Beiträge: 5
Registriert: Di 24. Apr 2012, 19:07

Re: TCalcEdit - Calculator

Beitrag von dietmar »

theo hat geschrieben:Ich glaube, das ist bei diesem Dialog nicht vorgesehen.
schade :cry:

dietmar
Beiträge: 5
Registriert: Di 24. Apr 2012, 19:07

Re: TCalcEdit - Calculator

Beitrag von dietmar »

corpsman hat geschrieben:Anderseits ist das schreiben eines Taschenrechners quasi eine der 1. Programieraufgaben die man einem Schüler so geben könnte => bevor ich da ewig rumsuche wie das geht würde ich einfach geschwind eine neue Form erstellen und das ding kurz nachprogrammieren *g*.
da sind die Schüler aber heutzutage wesentlich weiter als zu meiner Schulzeit (digital Natives?)
Prinzipiell ist das natürlich eine gute Idee, wenn man weiß wie das geht, obwohl ich nicht gerne meine Zeit mit Dingen verschwende, die schon
x-male vorher ein anderer gemacht hat.
Kannst du mir vielleicht berichten, wie man ein Form-Template erstellt, das später in andere Formen eingebunden wird? Link wäre schon hilfreich.
Wie schon gesagt, ich habe erst gerade mit Lazarus angefangen und meine Pascal-Kenntnisse sind gering und schon angestaubt.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: TCalcEdit - Calculator

Beitrag von m.fuchs »

dietmar hat geschrieben:Kannst du mir vielleicht berichten, wie man ein Form-Template erstellt, das später in andere Formen eingebunden wird? Link wäre schon hilfreich.
Da könnten dir Frames weiterhelfen: http://wiki.freepascal.org/Frames" onclick="window.open(this.href);return false;

hth
Micha
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Bora4d
Beiträge: 290
Registriert: Mo 24. Dez 2007, 13:14
OS, Lazarus, FPC: WinXP-Pro-Sp3, Xubuntu 12.04, (Laz 1.1-SVN Mai2012, FPC 2.6.1 / 2.6.0-Linux)
CPU-Target: AMD64X2

Re: TCalcEdit - Calculator

Beitrag von Bora4d »

Wenn man Quelltexte wie im Fall von Lazarus hat geht alles.
Du mußt entweder in der Datei "lazarus\lcl\editbtn.pas" die Prozeudur "procedure TCalcEdit.RunDialog;" ändern oder in "lazarus\lcl\extdlgs.pas" die Prozur "function CreateCalculatorForm(AOwner: TComponent; ALayout : TCalculatorLayout; AHelpContext: THelpContext): TCalculatorForm;" ändern.

dietmar
Beiträge: 5
Registriert: Di 24. Apr 2012, 19:07

Re: TCalcEdit - Calculator

Beitrag von dietmar »

Bora4d hat geschrieben:Wenn man Quelltexte wie im Fall von Lazarus hat geht alles.
Du mußt entweder in der Datei "lazarus\lcl\editbtn.pas" die Prozeudur "procedure TCalcEdit.RunDialog;" ändern oder in "lazarus\lcl\extdlgs.pas" die Prozur "function CreateCalculatorForm(AOwner: TComponent; ALayout : TCalculatorLayout; AHelpContext: THelpContext): TCalculatorForm;" ändern.


Ich habe mal testweise die Funktion leicht verändert:
( Left:=100;
Top:=100; )
Dann alles neu kompiliert --> keine Änderung
Nur die LCL-Komponenten neu kompiliert --> keine Änderung

Code: Alles auswählen

function CreateCalculatorForm(AOwner: TComponent; ALayout : TCalculatorLayout; AHelpContext: THelpContext): TCalculatorForm;
begin
  Result:=TCalculatorForm.Create(AOwner);
  with Result do
    try
      HelpContext:=AHelpContext;
      if Screen.PixelsPerInch <> 96 then
      begin { scale to screen res }
        SetDefaultFont(Font, ALayout);
        // Left:=(Screen.Width div 2) - (Width div 2);
        // Top:=(Screen.Height div 2) - (Height div 2);
        Left:=100;     
        Top:=100;      
      end;
    except
      Free;
      raise;
    end;
end;

Das TCalcEdit-Widget soll sich in Bezug auf die Anordnung der Calculator-Komponente, wie das TDateEdit verhalten.
Beim TDateEdit-Widget wird die Calendar-Komponente nach Clicken des Buttons direkt an das TEdit Element platziert.
Kann mir jemand noch Tips geben, wie ich das hinbekommen?

Antworten