Autor |
Beitrag |
magda
Hält's aus hier
Beiträge: 5
|
Verfasst: 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:
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 Narses: I- durch Delphi-Tags ersetzt
Moderiert von Narses: Topic aus Sonstiges (Delphi) verschoben am Mo 02.06.2008 um 14:05
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 02.06.08 13:55
Hallo und willkommen!
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
      
Beiträge: 540
Windows Vista Home Premium
D2010, VisualStudio2008
|
Verfasst: 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 
_________________ Alexander N.
Neue Bewaffnung Amilo xi2428 T9300
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 02.06.08 13:58
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
GericasS
      
Beiträge: 540
Windows Vista Home Premium
D2010, VisualStudio2008
|
Verfasst: Mo 02.06.08 13:59
_________________ Alexander N.
Neue Bewaffnung Amilo xi2428 T9300
|
|
magda 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 02.06.08 14:02
Vielen dank für die schnellen Antworten.
ZeitGeist87 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.
ZeitGeist87 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
      
Beiträge: 540
Windows Vista Home Premium
D2010, VisualStudio2008
|
Verfasst: Mo 02.06.08 14:05
Wäre das dann nicht das OnKeyUpEvent ?
_________________ Alexander N.
Neue Bewaffnung Amilo xi2428 T9300
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 02.06.08 14:12
Geht nich gibts nich
Mehrmals hintereinander +/-/+/-/+/-/+ oder +/+/+/-/+/-/-
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:
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 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 02.06.08 14:13
Was wäre das OnKeyUpEvent? Tut mir leid, aber ich kenne mich nicht aus. 
|
|
Nico72
      
Beiträge: 50
Win XP, Vista
Delphi 7, Delphi 2006
|
Verfasst: 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
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 02.06.08 14:17
Nico72 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 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 02.06.08 14:19
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 public 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
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 02.06.08 14:23
magda hat folgendes geschrieben: | 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 public 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 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
      
Beiträge: 50
Win XP, Vista
Delphi 7, Delphi 2006
|
Verfasst: Mo 02.06.08 14:27
magda hat folgendes geschrieben: |
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); 
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Mo 02.06.08 14:35
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
magda 
Hält's aus hier
Beiträge: 5
|
Verfasst: Mo 02.06.08 14:48
Ich habe das nun nur auf die Memo bezogen und es klappt.
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
      
Beiträge: 50
Win XP, Vista
Delphi 7, Delphi 2006
|
Verfasst: Mo 02.06.08 14:53
ZeitGeist87 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 
|
|