Autor Beitrag
magda
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 02.06.08 13:50 
Hallo,

ich möchte in meinem Memo-Feld auf den Tastendruck '+' die Schriftgröße im Memofeld vergrössern und auf den Tastendruck '-' die Schriftgröße verkleinern.
Ich habe mir aus einem Programm das rauskopiert, wie das gehen soll.
Die Prozedur, die das machen soll ist:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key='+' then Memo1.Font.Size:= Memo1.Font.Size+1;
  if Key='-' then Memo1.Font.Size:= Memo1.Font.Size-1;
end;


Das Programm lässt sich problemlos kompilieren und starten, doch leider tut es nicht das Gewünschte. Im Originall-Programm funktioniert es aber.
Ich habe im Objektinspektor alles verglichen und da keine Änderungen entdeckt.

Es ist wahrscheinlich eine schwer zu beantwortende Frage, doch vielleicht weiß jemand, was bei mir falsch sein kann.

Moderiert von user profile iconNarses: I- durch Delphi-Tags ersetzt
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 02.06.2008 um 14:05
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mo 02.06.08 13:55 
Hallo und willkommen!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key='+' then Memo1.Font.Size:= Memo1.Font.Size+1;
if Key='-' then Memo1.Font.Size:= Memo1.Font.Size-1;
end;


Der Code ist so vollkommen OK.

Welche Schriftart verwendest du?
Das Problem liegt darin, dass zum Beispiel MS Sans Serif nur gerade Schriftgrößen verwenden kann.

Wenn du jetzt also Schriftgröße 10 hast musst du zweimal Plus/Minus drücken, damit die Schrift sich vergrößert/verkleinert.

Vergiss nicht, den gedrückten Key wegzuwerfen, sonst hast du nachher ständig +/- im Memo stehen - oder du setzt es optional auf ReadOnly.

LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
GericasS
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 540

Windows Vista Home Premium
D2010, VisualStudio2008
BeitragVerfasst: Mo 02.06.08 13:56 
Bin leider nur ein Anfänger, aber haben Zeichen wie + und - nicht auch einen bestimmten Code wie z.B #13 oder sowas in die Richtung ?

Edit : okay okay Zeitgeist war schneller und weiß es außerdem besser :-D

_________________
Alexander N.
Neue Bewaffnung Amilo xi2428 T9300
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mo 02.06.08 13:58 
user profile iconGericasS hat folgendes geschrieben:
Bin leider nur ein Anfänger, aber haben Zeichen wie + und - nicht auch einen bestimmten Code wie z.B #13 oder sowas in die Richtung ?

Edit : okay okay Zeitgeist war schneller und weiß es außerdem besser :-D


Besser weiß ich gar nix, ich vermute und probier selbst schnell aus ;-)

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
GericasS
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 540

Windows Vista Home Premium
D2010, VisualStudio2008
BeitragVerfasst: Mo 02.06.08 13:59 
user profile iconZeitGeist87 hat folgendes geschrieben:
user profile iconGericasS hat folgendes geschrieben:
Bin leider nur ein Anfänger, aber haben Zeichen wie + und - nicht auch einen bestimmten Code wie z.B #13 oder sowas in die Richtung ?

Edit : okay okay Zeitgeist war schneller und weiß es außerdem besser :-D


Besser weiß ich gar nix, ich vermute und probier selbst schnell aus ;-)


okay =) ich dachte nur bei der realtiven längeren Erfahrung :wink:

_________________
Alexander N.
Neue Bewaffnung Amilo xi2428 T9300
magda Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 02.06.08 14:02 
Vielen dank für die schnellen Antworten.

user profile iconZeitGeist87 hat folgendes geschrieben:

Wenn du jetzt also Schriftgröße 10 hast musst du zweimal Plus/Minus drücken, damit die Schrift sich vergrößert/verkleinert.

Ich verwendete tatsächlich SansSerif, doch ich habe mehrmals hintereinander + und - gedrückt, ohne das sich da was geändert hat.
user profile iconZeitGeist87 hat folgendes geschrieben:

Vergiss nicht, den gedrückten Key wegzuwerfen, sonst hast du nachher ständig +/- im Memo stehen - oder du setzt es optional auf ReadOnly.

Wie kann ich das machen?
GericasS
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 540

Windows Vista Home Premium
D2010, VisualStudio2008
BeitragVerfasst: Mo 02.06.08 14:05 
Wäre das dann nicht das OnKeyUpEvent ?

_________________
Alexander N.
Neue Bewaffnung Amilo xi2428 T9300
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mo 02.06.08 14:12 
Geht nich gibts nich ;-)

Mehrmals hintereinander +/-/+/-/+/-/+ oder +/+/+/-/+/-/- :P

kannst du mal die ganze Unit posten?

Das es nicht funktioniert ist merkwürdig..

Füg mal bitte noch folgenden Code ein und sag mir, was danach in der Titelleiste steht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key='+' then Memo1.Font.Size:= Memo1.Font.Size+1;
  if Key='-' then Memo1.Font.Size:= Memo1.Font.Size-1;
  caption:= IntToStr(Memo1.Font.Size));
end;


LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
magda Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 02.06.08 14:13 
Was wäre das OnKeyUpEvent? Tut mir leid, aber ich kenne mich nicht aus. :(
Nico72
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

Win XP, Vista
Delphi 7, Delphi 2006
BeitragVerfasst: Mo 02.06.08 14:14 
Hast du denn alle Einstellungen im OI verglichen? Auch das KeyPreview des Formulars? Das muss dazu auf True stehen..
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mo 02.06.08 14:17 
user profile iconNico72 hat folgendes geschrieben:
Hast du denn alle Einstellungen im OI verglichen? Auch das KeyPreview des Formulars? Das muss dazu auf True stehen..


Funktioniert bei mir auch ohne..

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
magda Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 02.06.08 14:19 
ausblenden volle Höhe Delphi-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:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    ButtonPlus: TButton;
    ButtonMinus: TButton;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure ButtonPlusClick(Sender: TObject);
    procedure ButtonMinusClick(Sender: TObject);
    
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key='+' then Memo1.Font.Size:= Memo1.Font.Size+1;
  if Key='-' then Memo1.Font.Size:= Memo1.Font.Size-1;
  caption:= IntToStr(Memo1.Font.Size);
end;

procedure TForm1.ButtonPlusClick(Sender: TObject);
begin
  Memo1.Font.Size:= Memo1.Font.Size+1;
end;

procedure TForm1.ButtonMinusClick(Sender: TObject);
begin
  Memo1.Font.Size:= Memo1.Font.Size-1;
end;

end.

Ich habe das auch mit einem Button versucht zu realisieren. Mit Hilfe der Buttons funktioniert das Ganze auch, doch leider nicht auf Tastendruck.

Key-Preview steht auf True.
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mo 02.06.08 14:23 
user profile iconmagda hat folgendes geschrieben:
ausblenden volle Höhe Delphi-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:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    ButtonPlus: TButton;
    ButtonMinus: TButton;
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure ButtonPlusClick(Sender: TObject);
    procedure ButtonMinusClick(Sender: TObject);
    
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key='+' then Memo1.Font.Size:= Memo1.Font.Size+1;
  if Key='-' then Memo1.Font.Size:= Memo1.Font.Size-1;
  caption:= IntToStr(Memo1.Font.Size);
end;

procedure TForm1.ButtonPlusClick(Sender: TObject);
begin
  Memo1.Font.Size:= Memo1.Font.Size+1;
end;

procedure TForm1.ButtonMinusClick(Sender: TObject);
begin
  Memo1.Font.Size:= Memo1.Font.Size-1;
end;

end.

Ich habe das auch mit einem Button versucht zu realisieren. Mit Hilfe der Buttons funktioniert das Ganze auch, doch leider nicht auf Tastendruck.

Key-Preview steht auf True.


Sag doch gleich, dass du das bei OnFormKeyPress machen willst =)
Ich dachte im Memo..ich hab jez auch nich genau aufgepasst *mich selber schimpf*

Würde der Focus im Memo liegen, würde es problemlos funktionieren.

Schau dir für dein Problem einfach mal den Suche in der Entwickler-Ecke ACTIONMANAGER an.

LG
Stefan

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Nico72
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

Win XP, Vista
Delphi 7, Delphi 2006
BeitragVerfasst: Mo 02.06.08 14:27 
user profile iconmagda hat folgendes geschrieben:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key='+' then Memo1.Font.Size:= Memo1.Font.Size+1;
  if Key='-' then Memo1.Font.Size:= Memo1.Font.Size-1;
end;


procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); :roll:
ZeitGeist87
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1593
Erhaltene Danke: 20

Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
BeitragVerfasst: Mo 02.06.08 14:35 
user profile iconNico72 hat folgendes geschrieben:
user profile iconmagda hat folgendes geschrieben:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key='+' then Memo1.Font.Size:= Memo1.Font.Size+1;
  if Key='-' then Memo1.Font.Size:= Memo1.Font.Size-1;
end;


procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); :roll:


user profile iconZeitGeist87 hat folgendes geschrieben:
Sag doch gleich, dass du das bei OnFormKeyPress machen willst =)
Ich dachte im Memo..ich hab jez auch nich genau aufgepasst *mich selber schimpf*


war darauf bezogen ;-)

Ich entschuldige mich.

_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
magda Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mo 02.06.08 14:48 
Ich habe das nun nur auf die Memo bezogen und es klappt. :)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key='+' then Memo1.Font.Size:= Memo1.Font.Size+1;
  if Key='-' then Memo1.Font.Size:= Memo1.Font.Size-1;
end;

Vielen dank für Eure Hilfe.
Nico72
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50

Win XP, Vista
Delphi 7, Delphi 2006
BeitragVerfasst: Mo 02.06.08 14:53 
user profile iconZeitGeist87 hat folgendes geschrieben:
Stefan Michalk
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.


Gilt auch für meine Beiträge :wink: