![]() |
String zu Cardinal
Hallo, weiß jemand von euch, wie ich einen String in eine Cardinalfolge umwandle?
Cardinal ist ja eigentlich nichts anderes als Integer, jedoch funktionierte es mit StrToInt nicht! Danke für eure Antworten im Voraus! mfg hansklok |
Re: String zu Cardinal
Zitat:
Was genau funktioniert denn nicht? Was willst du machen? Wie lautet die Fehlermeldung? |
Re: String zu Cardinal
Ja also, ich schreib an nem Grafikprogramm. Wenn ich nun beim herkömmlichen Canvas die Pen.Width auf 30 Stelle und ne Linie zeichne, dann hat diese abgerundete Ecken. Deshalb nehme ich etwas aus dem System:
Delphi-Quellcode:
So ich möchte nun, dass der User über ne ComboBox das Brushstyle selbst auswählt, also bs_Clear oder BS_DiagCross etc. Das funktioniert aber nicht, wenn ich die hier mache:
const
PenStyle = PS_Geometric or PS_Solid; var sx,sy:integer; LogBrush: TLOGBRUSH; begin LogBrush.lbStyle := bs_Solid; //bsSolid ist ein Cardinalwert LogBrush.lbColor := clred; LogBrush.lbHatch := 0; with Form6.Bild.Canvas do begin Pen.Handle := ExtCreatePen(PS_Geometric+PS_Dash+PS_Endcap_Square+PS_Join_Round, StrToInt(Form4.ComboBox2.Text), LogBrush, 0, nil); end;
Delphi-Quellcode:
LogBrush.lbStyle := Combobox1.Text;
|
Re: String zu Cardinal
Funktioniert nur nicht wenn die Zahl größer als 2^31 ist. In dem Fall solltest du StrToInt64 nutzen und den Int64 dann zum Cardinal casten. Natürlich ist es dann gefährlich wenn die Zahl größer als 2^32 ist.
[edit] Eventuell musst du es noch zu dem richtigen Typen casten mit Typ(Wert). Den Typen bekommst du am einfachst denn raus, wenn du das Programm kompilierst dann steht ja da was von Inkompatible Typen. [/edit] |
Re: String zu Cardinal
@ jim_raynor:
Da stürzt mir das Programm ab, das hatte ich schon mal versucht! |
Re: String zu Cardinal
Delphi-Quellcode:
case Combobox1.ItemIndex of
0: LogBrush.lbStyle := BS_SOLID; 1: LogBrush.lbStyle := BS_CLEAR; 2: LogBrush.lbStyle := BS_IRGENDWAS; {...} else {...}; end; Mit StrToInt kannst du nicht die vom Editor verwendeten Namen von Konstanten in die entsprechenden Werte umwandeln. StrToInt liefert nur Integers aus Hexwert-Strings (z.B. '$AAF02') und Zahlen-Strings (z.B. '1234567'). Du könntest natürlich auch eine Komponente von TCombobox ableiten, die mit den Items verknüpfte Cardinal-Werte als Eigenschaft besitzt. |
Re: String zu Cardinal
funktionier nicht!
|
Re: String zu Cardinal
"funktionier nicht!" ist keine Fehlerbeschreibung :mrgreen:
|
Re: String zu Cardinal
Sorry, also sobald ich das Formular öffne, stürtzt das Programm wieder ab!
|
Re: String zu Cardinal
Wie lautet denn die Fehlermeldung? (kannst du mit STRG+C in die Zwischenablage kopieren)
An welcher Stelle im Code bleibt die Ausführung stehen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz