AGB  ·  Datenschutz  ·  Impressum  







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

Einträge aus Array in MessageBox

Ein Thema von Pfl · begonnen am 25. Mär 2014 · letzter Beitrag vom 7. Apr 2014
Antwort Antwort
Seite 1 von 2  1 2      
Pfl

Registriert seit: 5. Jun 2012
Ort: Berlin
65 Beiträge
 
Delphi XE6 Architect
 
#1

Einträge aus Array in MessageBox

  Alt 25. Mär 2014, 00:22
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:
type
PSEArray : Array [1..104] of String;
Vielen Dank im Voraus !!
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;
Miniaturansicht angehängter Grafiken
pse.jpg  
Friedrich
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Einträge aus Array in MessageBox

  Alt 25. Mär 2014, 00:40
Wie macht man denn aus mehreren Strings Einen?
Sx := S1 + S2 + S3 ...;

Also z.B. via FOR-Schleife über das Array rauschen und die Strings "zusammenrechnen".



Hast du dir die Parameter von Delphi-Referenz durchsuchenApplication.Messagebox angesehn?
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)
Delphi-Referenz durchsuchensLineBreak = noch besser
$2B or not $2B

Geändert von himitsu (25. Mär 2014 um 00:42 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Einträge aus Array in MessageBox

  Alt 25. Mär 2014, 00:49
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Einträge aus Array in MessageBox

  Alt 25. Mär 2014, 00:58
Je öfters du es verwendest, um so schneller fällt es dir ein.
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Pfl

Registriert seit: 5. Jun 2012
Ort: Berlin
65 Beiträge
 
Delphi XE6 Architect
 
#5

AW: Einträge aus Array in MessageBox

  Alt 25. Mär 2014, 22:57
Das mit der for-Schleife klingt doch schon mal nett... wie sähe das denn aus? Es sind ja 104 Elemente+ deren Informationen: Elementsymbol, rel. Atommasse, usw...
Friedrich
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Einträge aus Array in MessageBox

  Alt 25. Mär 2014, 23:22
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 (record ,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.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Einträge aus Array in MessageBox

  Alt 26. Mär 2014, 16:02
Um die ursprüngliche Idee aufzugreifen
Delphi-Quellcode:
type
  tElem:record
          Namedt:string;
          NameInt : string;
          Atomgew : integer;
          ....
        end;
var
  PSE : Array [1..104] of tElem;
Das sollte es eigentlich tun.

Nach einem Klick auf ein Element wird der Inhalt eines Records ausgegeben. Da braucht's keine Schleife!


Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Einträge aus Array in MessageBox

  Alt 26. Mär 2014, 16:15
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.



PPS: Wenn die Daten im Hintergrund so schön in einer Objektliste/Datenbank rumliegen, dann könnte man sogar eine nette Suchfunktion anbieten.
$2B or not $2B

Geändert von himitsu (26. Mär 2014 um 16:22 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

AW: Einträge aus Array in MessageBox

  Alt 26. Mär 2014, 16:47
Viele Wege führen nach Rom:
Delphi-Quellcode:
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;
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.

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:
Angehängte Dateien
Dateityp: zip ZweitesFensterAlsMessageBox.zip (4,1 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Einträge aus Array in MessageBox

  Alt 26. Mär 2014, 16:57
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.
Wenn ich mir die Ausgangsfrage anschaue
Dabei möchte ich die Informationen zu dem angeclickten Element in eine MessageBox schreiben
Dann weiß ich ehrlich nicht gesagt, wie du darauf kommst, dass er keine MessageBox und alle Elemente auf einen Schlag anzeigen will?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 22:32 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