AGB  ·  Datenschutz  ·  Impressum  







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

Missing operator in verbindung mit ORD

Ein Thema von EWeiss · begonnen am 7. Okt 2006 · letzter Beitrag vom 8. Okt 2006
Antwort Antwort
Seite 2 von 3     12 3      
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:10
Für die einzelnen Zeichen eines Strings s[i] kannst du mittels Ord(s[i]) den Codewert ermitteln. Wenn du aber den Platz berechnen möchtest, den eine Zeichenkette bei gegebenem Font einnimmt, dann geht das mit TCanvas.TextWidth(s) leichter.

Grüße
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:10
Zitat von Christian Seehase:
Moin EWeiss,

Zitat von EWeiss:
Verstehe ich nicht funktioniert in VB doch auch!
das liegt aber daran, dass ASC in VB bei einem String immer das erste Zeichen des Strings nimmt, also müsstest Du in Delphi

ord(UpperCase(StrS[1])) schreiben.

Ahhhh also IntX := IntX + BWidth(ORD(UpperCase(StrS[1])) - 65);

Dann wirds gehn... ?
Werde es mal testen.


Danke !

Gruß
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#13

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:16
PUSCH...

Nein geht trotzdem nicht.

Hmmm .. Steh jetzt auf den Schlauch

GRuß
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:19
Vielleicht
IntX := IntX + BWidth(ORD(UpperCase(StrS)[1]) - 65); ?
Markus Kinzler
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#15

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:21
Zitat von marabu:
Für die einzelnen Zeichen eines Strings s[i] kannst du mittels Ord(s[i]) den Codewert ermitteln. Wenn du aber den Platz berechnen möchtest, den eine Zeichenkette bei gegebenem Font einnimmt, dann geht das mit TCanvas.TextWidth(s) leichter.

Grüße
Es ist kein Font es ist ein Strip gezeichnet in einen Bitmap.
Da geht nichts mit TCanvas.TextWidth sorry.

gruß
Angehängte Grafiken
Dateityp: bmp gen_350.bmp (57,2 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#16

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:24
Zitat von mkinzler:
Vielleicht
IntX := IntX + BWidth(ORD(UpperCase(StrS)[1]) - 65); ?
Nein nichts zu machen

Zitat:
[Pascal Error] frmGen.pas(211): E2066 Missing operator or semicolon
[Pascal Error] frmGen.pas(211): E2015 Operator not applicable to this operand type
gruß

EDIT: Ja '1' wird nachher ersetzt mit dem richtigen wert aus dem ASCII zeichen satz
wäre bei "A" DEZ = 65
Das habe ic hschon verstanden ... Aber es läuft trotzdem nicht
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:31
Splitte diese Zeile doch mal auf eun führe einen Schritt nach dem anderen durch, um zu sehen, was den Fehler verursacht.
Markus Kinzler
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#18

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:42
Zitat von mkinzler:
Splitte diese Zeile doch mal auf eun führe einen Schritt nach dem anderen durch, um zu sehen, was den Fehler verursacht.
Danke für den Rat
Komme aber gar nicht erst zum debuggen umd das Problem beheben zu können.

Diese Zeile "Asc(UCase(StrS)) - 65)" wenn StrS = "E" ist
liefert den wert 4 zurück was ja auch richtig ist.

Verstehe nicht das da so probleme sind!

gruß
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#19

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:43
Hallo Emil,

als ich Beitrag #5 schrieb habe ich deinen Beitrag #4 noch nicht gekannt - alles wird klar:

Delphi-Quellcode:
begin
    // ...

    For IntI := 1 To Length(StrView) do // index läuft ab 1
    begin
      // StrS := MidStr(StrView, IntI + 1, 1); // nicht nötig
      if StrView[IntI] <> ' '
        then IntX := IntX + BWidth[Ord(UpCase(StrView[IntI])) - 65]; // nicht () sondern []
        else Inc(IntI(5); //Bei Leerstring 5 hinzufügen
    // ...
Grüße
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#20

Re: Missing operator in verbindung mit ORD

  Alt 7. Okt 2006, 19:57
Zitat von marabu:
Hallo Emil,

als ich Beitrag #5 schrieb habe ich deinen Beitrag #4 noch nicht gekannt - alles wird klar:

Delphi-Quellcode:
begin
    // ...

    For IntI := 1 To Length(StrView) do // index läuft ab 1
    begin
      // StrS := MidStr(StrView, IntI + 1, 1); // nicht nötig
      if StrView[IntI] <> ' '
        then IntX := IntX + BWidth[Ord(UpCase(StrView[IntI])) - 65]; // nicht () sondern []
        else Inc(IntI(5); //Bei Leerstring 5 hinzufügen
    // ...
Grüße
Danke das hat mir sehr geholfen.
werde es mal bei den anderen ebenfalls ändern und mal debuggen.

Wie immer Daumen hoch und Danke!
Wenns nicht klappt melde ich mich nochmal

EDIT: Was so ne klammer doch ausmacht

gruß
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 21:31 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