![]() |
Einträge aus Array in MessageBox
Liste der Anhänge anzeigen (Anzahl: 1)
Hi ^^
ich habe eine PSE-Übersicht aufgesetzt (sehr mühevoll :/) Dabei möchte ich die Informationen zu dem angeclickten Element in eine MessageBox schreiben; anbei ein Screenshot des PSE und ein Beispielsource. Wäre sowas denkbar, die Einträge aus einem String Array auszulesen? Das geht doch so, oder :
Delphi-Quellcode:
Vielen Dank im Voraus !!
type
PSEArray : Array [1..104] of String; Ach so, ich vergaß: Die MessageBox hier zeigt nur einen Beispieltext Source :
Delphi-Quellcode:
Temp :=
var temp : String; begin 'Informationen über die Autoren und das Programm' +#13+'========================================' +#13+'' +#13+'Aktuelle Version : 1.1.30 Build 189\2010 Update 1' +#13+'' +#13+'Alle Komponenten sind urheberrechtlich geschützt. ' +#13+'Das Copyright liegt bei :' +#13+'' +#13+'© by Friedrich Pfeil, 2010-2014' +#13+'© by Frank Schultz, 2010-2014.' +#13+'Alle Rechte vorbehalten.---' +#13+'' +#13+'Allgemeine Informationen finden Sie in der Hilfe (Tastenkürzel: F2),' +#13+'oder öffnen Sie das Alias auf Ihrem Schreibtisch.' +#13+'' +#13+'Vielen Dank, dass Sie sich für das GoetheQuiz entschieden haben. ' +#13+'EA Berlin.'; Application.Messagebox(PChar(temp),'Copyright-/Lizenzinformation',64); end; |
AW: Einträge aus Array in MessageBox
Wie macht man denn aus mehreren Strings Einen?
Delphi-Quellcode:
:zwinker:
Sx := S1 + S2 + S3 ...;
Also z.B. via FOR-Schleife über das Array rauschen und die Strings "zusammenrechnen". Hast du dir die Parameter von ![]() Möchte das lieber einen String oder einen PChar? Eine StringListe ist auch ganz nett? PS: #13 = Zeilenumbruch vom Mac #10 = Unix/Linux #13#10 = Windows, wobei #10 auch halbwegs verbreitet ist, aber die #13 gibt es im Windows ganz selten. (auch wenn Vieles alle Varianten versteht) ![]() |
AW: Einträge aus Array in MessageBox
himitsu, nichts gegen dein sLineBreak, aber jedes mal wenn ich es brauche, fällt mir der Name nicht ein. Deshalb bleibe ich vorerst bei ^j, alternativ #13#10. Eines Tages merke ich es mir aber.
|
AW: Einträge aus Array in MessageBox
Je öfters du es verwendest, um so schneller fällt es dir ein. :zwinker:
Nja, wenn es kurz sein muß, dann verwendet ich auch die #10. Aber es gibt auch einige Dinge, da muß man genau aufpassen was man nimmt, wobei es da meistens auch die #13#10 sein sollte. z.B. das Notepad (bis Win7) versteht kein #10, interpretiert Dieses als "normales" Zeichen und macht keinen Zeilenumbruch. |
AW: Einträge aus Array in MessageBox
Das mit der for-Schleife klingt doch schon mal nett... :thumb: wie sähe das denn aus? Es sind ja 104 Elemente+ deren Informationen: Elementsymbol, rel. Atommasse, usw...
|
AW: Einträge aus Array in MessageBox
Was diese Frage mit einem Array zu tun hat erschließt sich mir nun wirklich nicht ...
Für jedes Element gibt es Meta-Informationen (Name, Gewicht, ...). Diese Informationen sollten logisch zusammengefasst werden (
Delphi-Quellcode:
,
record
Delphi-Quellcode:
).
class
Dann noch eine Logik, die zum gewählten Element genau die zugehörigen Meta-Informationen liefert. Jetzt noch eine Logik die eine Meta-Information in einer MessageBox anzeigt. Ob diese Meta-Informationen nun in einem Array einer Liste oder wo auch immer stehen, sollte für die Anzeige keine Rolle spielen. |
AW: Einträge aus Array in MessageBox
Um die ursprüngliche Idee aufzugreifen
Delphi-Quellcode:
Das sollte es eigentlich tun.
type
tElem:record Namedt:string; NameInt : string; Atomgew : integer; .... end; var PSE : Array [1..104] of tElem; Nach einem Klick auf ein Element wird der Inhalt eines Records ausgegeben. Da braucht's keine Schleife! Gruß K-H |
AW: Einträge aus Array in MessageBox
In diesem Fall kann man auch gern eine INI, XML, Datenbank oder Sonstwas nehmen, darin die Daten erstmal zusammenstellen.
> Jeweils ein Abschnitt/Knoten pro Element und dazu die ganzen Eigenschaften. Diese Datei kommt dann entweder zur EXE ins verzeichnis oder als Resource in die EXE. Bei Programmstart läd man dann die Daten aus der Datei in eine Liste solcher Daten-Objekte. (bei der DB kann man sich das sparen) Man kann natürlich die Liste/Array der mit solchen Datenobjekten oder Records auch direkt im Quellcode füllen, aber das erstellen/bearbeiten dieser Daten gestaltet sich so nicht unbedingt einfacher. PS: Jedes Jahr werden neue Atome erfunden/entdeckt ... so bräuchte man nur die Datendatei/Datenbnk aktualisieren und wenn man auch noch die Anzeige aus den Daten generiert, erweitert sich das Programm ganz von alleine. :stupid: PPS: Wenn die Daten im Hintergrund so schön in einer Objektliste/Datenbank rumliegen, dann könnte man sogar eine nette Suchfunktion anbieten. |
AW: Einträge aus Array in MessageBox
Liste der Anhänge anzeigen (Anzahl: 1)
Viele Wege führen nach Rom:
Delphi-Quellcode:
Das Problem ist, dass es vermutlich gar nicht um eine MessageBox geht. Erstens bekommt man die 104 Zeilen nicht auf den Bildschirm, der OK Button wird unten verschluckt.
var
Test: PSEArray; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin for i := Low(Test) to High(Test) do Test[i] := IntToStr(i); end; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin with TStringList.Create do try for i := Low(Test) to High(Test) do Add(Test[i]); ShowMessage(Text); finally Free end; end; procedure TForm1.Button2Click(Sender: TObject); var i: Integer; s: String; begin s := ''; for i := Low(Test) to High(Test) do s := s + Test[i] + #13#10; ShowMessage(s); end; Zweiten gehe ich davon aus, dass der TE an einem zweiten Fenster interessiert ist, in dem er die Informationen vom angeklickten Element anzeigen möchte, so wie im Beispiel: |
AW: Einträge aus Array in MessageBox
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 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 by Thomas Breitkreuz