Autor Beitrag
Künne
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 02.04.07 12:38 
Hi @all,
bin neu hier im Forum und wage gerade meine ersten Schritte mit Delphi 6.
Versuche gerade ein Programm zu schreiben mit dem man Buchstebn inn Morsezeichen umwandeln kann und umgekehrt, Die Eingaben und Ausgaben habe ich in seperate Edit-Felder unterteilt. Für die Umwandlung wollte ich Buttons nehmen.

Kann mir jemand einen Tipp geben; ich bekomme keine funktionierende Procedure zustande und bin schon halb am verzweifeln

Danke schon im Vorraus für die Hilfe,

Furby.
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Mo 02.04.07 12:55 
Mal auf die schnelle, so oder so ähnlich - vieleicht hilft Dir das etwas.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
 if (Key='a'or (Key='A'then
 begin
 Memo1.Text:=Memo1.Text+'.-';
 Memo1.SelStart:=Length(Memo1.Text);
 Key:=#0;
 end
 else
 exit;
end;

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 02.04.07 13:17 
Moin und :welcome: im Forum!

Ich würde dir raten, ein Editfeld für die Eingabe zu nehmen und dann auf einen Buttonklick das Ganze in z.B. ein Memo umgeschlüsselt wieder auszugeben.

Ansatz für die Morsezeichen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
type
  TMorseZeichen = ('A'..'Z','0'..'9',' ');

const
  MorseCode: array[TMorseZeichen] of String = (
    '--.',
    '.--',
    ...
    ' '); // keine Ahnung, wie die Zeichen wirklich umgesetzt werden... ;)

Beim Umwandeln gehst du dann einfach die Eingabe Zeichen für Zeichen durch und schlüsselst über das konstante Array um, fertig. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Künne Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Mo 02.04.07 15:21 
Was meinst du mit überschlüsseln?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 02.04.07 15:55 
Moin!

Damit meine ich ungefähr sowas: ;)

Zunächst die Konstanten:
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:
49:
const
  MorseZeichen: set of Char = ['A'..'Z','0'..'9'];

  MorseCode: array['0'..'Z'of String = ( // aus Wikipedia
    '·----'// 1  - Zahlen
    '··---'// 2
    '···--'// 3
    '····-'// 4
    '·····'// 5
    '-····'// 6
    '--···'// 7
    '---··'// 8
    '----·'// 9
    '-----'// 0

    '',      // :  - Dummies
    '',      // ;
    '',      // <
    '',      // =
    '',      // >
    '',      // ?
    '',      // @

    '·-',    // A  - Buchstaben
    '-···',  // B
    '-·-·',  // C
    '-··',   // D
    '·',     // E
    '··-·',  // F
    '--·',   // G
    '····',  // H
    '··',    // I
    '·---',  // J
    '-·-',   // K
    '·-··',  // L
    '--',    // M
    '-·',    // N
    '---',   // O
    '·--·',  // P
    '--·-',  // Q
    '·-·',   // R
    '···',   // S
    '-',     // T
    '··-',   // U
    '···-',  // V
    '·--',   // W
    '-··-',  // X
    '-·--',  // Y
    '--··'); // Z

Und hier die Schleife:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
  var
    i: Integer;
    Zeile: String;
begin
  if (Edit1.Text <> ''then begin
    Zeile := '';
    for i := 1 to Length(Edit1.Text) do
      if (UpCase(Edit1.Text[i]) in MorseZeichen) then
        Zeile := Zeile +MorseCode[Upcase(Edit1.Text[i])]+' ';
    Memo1.Lines.Add(Zeile);
  end
  else
    MessageDlg('Bitte Text eingeben!',mtError,[mbCancel],0);

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Künne Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 03.04.07 10:22 
Erkläre mal bitte deine Vorgehensweise beim Programmieren ich kann es nicht ganz nachvollziehen.


Zuletzt bearbeitet von Künne am Di 03.04.07 10:50, insgesamt 1-mal bearbeitet
Künne Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 03.04.07 10:47 
Sorry wegen Doppelbeitrag, aber ich muss es so schnell wie es geht wissen. Wie muss ich es machen wenn ich zum Beispiel im ersten Editfeld ein 'a' eintippe und im zweiten Editfeld über einen Button dann das Morsezeichen '.-' ausgegeben haben will?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 03.04.07 11:04 
Moin!

:|

user profile iconKünne hat folgendes geschrieben:
Sorry wegen Doppelbeitrag, aber ich muss es so schnell wie es geht wissen.

Ich schau mal, ob ich heute abend Zeit und Lust habe, nochwas dazu zu schreiben... :?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 03.04.07 11:11 
Was in dem Beispiel hier passiert ist ja, den Text aus Edit1 zu nehmen und dann umgewandelt in Memo1 zu schreiben.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
var
    i: Integer;
    Zeile: String;
begin
  if (Edit1.Text <> ''then begin
    // Nur wenn in dem Edit-Feld was drin steht, weitermachen
    Zeile := '';
      // Die Ausgabezeile erstmal auf leer setzen, die Morsezeichen werden dann immer angehängt
    for i := 1 to Length(Edit1.Text) do
      // Die gesamte Länge des im Edit-Feld stehenden Strings durchgehen (Buchstabe für Buchstabe)
      if (UpCase(Edit1.Text[i]) in MorseZeichen) then
        // Wenn der aktuelle Buchstabe im Morsezeichen-Set steht, also ein im Code enthaltenes Zeichen ist, ...
        Zeile := Zeile +MorseCode[Upcase(Edit1.Text[i])]+' ';
          // ...den dazu passenden MorseCode an Zeile anhängen.
    Memo1.Lines.Add(Zeile);
      // Fertig, also die Zeile mit den Morsecodes ins Memo schreiben
  end
  else
    MessageDlg('Bitte Text eingeben!',mtError,[mbCancel],0);
Deine Frage werde ich allerdings nicht direkt beantworten. Ich denke, wenn du den Quelltext verstanden hast, kannst du das alleine machen. Wenn du Fragen zu dem Quelltext hast, dann stell sie ruhig.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 03.04.07 11:19 
user profile iconNarses hat folgendes geschrieben:
Zunächst die Konstanten:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
const
  MorseZeichen: set of Char = ['A'..'Z','0'..'9'];

  MorseCode: array['0'..'Z'of String = ( // aus Wikipedia
    '·----'// 1  - Zahlen
    '··---'// 2
    '···--'// 3
    '····-'// 4
    '·····'// 5
    '-····'// 6
    '--···'// 7
    '---··'// 8
    '----·'// 9
    '-----'// 0

...
Nicht ganz ;-)
Du fängst mit der 0 an...
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
  MorseCode: array['0'..'Z'of String = ( // aus Wikipedia
    '-----'// 0  - Zahlen
    '·----'// 1
    '··---'// 2
    '···--'// 3
    '····-'// 4
    '·····'// 5
    '-····'// 6
    '--···'// 7
    '---··'// 8
    '----·'// 9

...
Künne Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 03.04.07 11:43 
bei mir nimmt der Lines nicht an. als was muss ich das denn deklarieren?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 03.04.07 11:46 
user profile iconKünne hat folgendes geschrieben:
bei mir nimmt der Lines nicht an. als was muss ich das denn deklarieren?
Dann ist das kein Memo...
Ein Memo hat Memo1.Lines (da musst du nix selbst deklarieren), ein Edit natürlich nicht, das hat ja nur eine Zeile.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 03.04.07 12:13 
Moin!

user profile iconjaenicke hat folgendes geschrieben:
Du fängst mit der 0 an...

Mensch user profile iconjaenicke, das war doch die c&p-Sicherung... :lol: ;)

@user profile iconKünne: Aus meiner Sicht solltest du dein Auftreten hier mal überdenken... :| Bei mir kommst du als Code-Abzieher rüber! :shock:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 03.04.07 12:27 
user profile iconNarses hat folgendes geschrieben:
user profile iconjaenicke hat folgendes geschrieben:
Du fängst mit der 0 an...

Mensch user profile iconjaenicke, das war doch die c&p-Sicherung... :lol: ;)

^^, ok ;-) Aber wenn ich mir die Frage nach Lines ansehe: Da hast du ja eine weitere c&p-Sicherung eingebaut^^

An dieser Stelle vielleicht noch 2 Sachen:
1. Wie immer der Hinweis auf Christians Crashkurs: crashkurs.christian-stelzmann.de
2. Gibts auch die Taste F1, und in der Hilfe findet sich auch was zu den einzelnen Komponenten...
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 03.04.07 12:34 
ja, klar, aber da ich ihn für einen Code-Abzieher halte, der keinen Plan hat, was läuft, wollte ich es auch nicht einfacher machen... abgesehen davon ist es ja nun nicht wirklich schwer, den Button/Edit/Memo aus Form zu klatschen und dann läuft der Code ja so direkt - bis auf den logischen Fehler für die 2. c&p-Sicherungsinstanz... ;)

_________________
There are 10 types of people - those who understand binary and those who don´t.
Künne Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 03.04.07 12:53 
Tschuldigung aber ich bin nunmal nur kein Profi im Programmieren und wollte eigentlich nur Just for Fun so ein Morsegerät programmieren.

Zurück zu meiner Frage:
Die Deklaration für Memo1 funktioniert nicht. Hat jemand ein Beispiel dafür wie man ein Memo richtig deklariert?
Dies ist der einzige Haken den wir noch haben.

Deshalb danke ich schon mal im Vorraus.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 03.04.07 13:02 
Moin!

Frag doch mal deinen Info-Lehrer, wenn er das nächste mal an eurem PC vorbeikommt... ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 03.04.07 13:29 
user profile iconKünne hat folgendes geschrieben:
Die Deklaration für Memo1 funktioniert nicht. Hat jemand ein Beispiel dafür wie man ein Memo richtig deklariert?

Du deklarierst nix. Du packst statt einem TEdit ein TMemo aufs Formular... Sieh dir den Crashkurs an, dir fehlen offensichtlich die wichtigsten Grundlagen! :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: Di 03.04.07 13:54 
Hallo!

Hab mal schnell was programmiert..sehr rudimentär..als Denkanstoss

LG
Stefan
Einloggen, um Attachments anzusehen!
_________________
Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 03.04.07 14:06 
Ach user profile iconZeitGeist87, du bist mein Held... :roll:

Wenn wir nicht zusammen arbeiten und Leute, die nicht denken wollen, auflaufen lassen, dann werden die den Code nehmen und den kompletten Rest einfach vergessen... super Ergebnis... 8)

_________________
There are 10 types of people - those who understand binary and those who don´t.