AGB  ·  Datenschutz  ·  Impressum  







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

Geheimnisvolle TMemo

Ein Thema von Gast · begonnen am 25. Jun 2002 · letzter Beitrag vom 26. Jun 2002
Antwort Antwort
Seite 1 von 3  1 23      
Gast
(Gast)

n/a Beiträge
 
#1

Geheimnisvolle TMemo

  Alt 25. Jun 2002, 23:33
Hallo, 8)

ich habe ein sehr interessantes Problem.

Auf einem Formular habe ich ein TPageControl mit mehrere Seiten (tabShet).

Dieses PageControl wird immer wider um weitere Seiten erweitert...

Auf jeder Seite liegt immer NUR ein TMemo Komponente mit Inhalt (Verschiedene Texte)

Ab und zu nach der Compilierung habe ich ein merkwürdiges Effekt:

Auf manchen Seiten beinhalten die Memos kein Inhalt!!!


Erst nach mehrmaligen Compilieren (z.B. Menü Projekt: „Alle Projekte compilieren“ und dann „Alle Projekte erzeugen“ usw... bekomme ich eine EXE mit der gewünschten Memo Inhalten.

Das ist für uns sehr gefährliche Effekt..., da es ist schon passiert, dass man weiter na die Kunden ein fehlerhaften Update ausgeliefert hat!

Frage:

1.) Woran das liegen kann?

2.) Wie könnte man so was eventuel (fals die Frage Nr.1 ohne Antwort bleibt) automatisch überwachen?


Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2
  Alt 25. Jun 2002, 23:41
Hallo PaulJr,

das ist zwar nichts, um den Fehler zu beheben, aber wenigstens um ihn zu erkennen: Während der Initialisierung Deiner Anwendung rufst Du eine Prozedur auf, welche jedes Memo prüft, ob es Text enthält (Memo.Lines.Count > 0). Wenn ich Dich richtig verstanden habe, dann haben Deine Memos entweder gar keinen Text (Memo.Lines.Count = 0) oder aber den vollständigen Text (Memo.Lines.Count > 0). Stellt Deine Prozedur also fest, dass mindestens ein Memoo nicht den geforderten Inhalt hat, dann kannst Du mit ShowMessage('...') irgendetwas ausgeben.

Die Prozedur kann die Anzahl der Seiten des Controls abfragen (.PageCount) und dann nach und nach alle Seiten durchgehen und über die Eigenschaft "Controls" einer jeden Seite das darauf befindliche Memo ausmachen.

Wie gesagt, damit ist der Fehler zwar nicht behoben, aber die Gefahr, ein fehlerhaftes Release an die Kunden zu liefern, sinkt deutlich, da der Fehler vom Programm schon beim Start gemeldet wird.


Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
danielA

Registriert seit: 10. Jun 2002
Ort: Hamburg
72 Beiträge
 
Delphi XE7 Enterprise
 
#3
  Alt 25. Jun 2002, 23:56
Hallo Paul,

zu 1.) leider keine Idee,
Ist der Text fest einprogrammiert oder wird er irgendwo ausgelesen ???

zu 2.)

Code:

procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
begin
  for i:=0 to ComponentCount -1 do
  begin
    if (Components[i] is TMemo) and (Trim(TMemo(Components[i]).Lines.Text)='') then
       ShowMessage('Memo '+TMemo(Components[i]).Name+' enthält keinen Text !!!');
  end;
end;
Diese Funktion durchläuft alle Komponenten in deinem Projekt.
Ist die aktuelle Komponente vom Typ TMemo, so wird untersucht ob sie Text oder nur Leerzeichen enthält. Ist kein Text oder sind nur Leerzeichen enthalten, so wird eine Meldung ausgegeben.

Ich hoffe das hilft dir ein wenig weiter

Gruß Daniel
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#4
  Alt 26. Jun 2002, 00:02
Hallo Daniel,

Zitat:
(...)
Während der Initialisierung Deiner Anwendung rufst Du eine Prozedur auf, welche jedes Memo prüft, ob es Text enthält (Memo.Lines.Count > 0). Wenn ich Dich richtig verstanden habe, dann haben Deine Memos entweder gar keinen Text
(...)

Ja manche Memos erscheinen manchmal ohne Text.

Daniel, ich weiß was Du meinst... Das natürlich wäre eine Sache für unserer Support und wäre Zwar eine denkbare Lösung... die leider nur eine hilfslose Reaktion auf der Fehler wäre

Ich darf solche EXE nicht ausliefern... nicht mal an Support... und jedes Mal die Anwendung zu starten... ist echt sehr Aufwendig... und Zeitraubend... Du weiß wie es manchmal stressig in Software Firma ist... man muss immer an irgendwas denken...

Vielleicht finden wir hier eine andere Lösung...

Danke

Paul Jr.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5
  Alt 26. Jun 2002, 00:03
Wie kommt denn nun der Text in die Memos? Eventuell kommt man da weiter.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#6
  Alt 26. Jun 2002, 00:05
Hallo DanielA,

es handelt sich genau genomme um festen Text (SQL-SCripts) die dort integriert sind...

Danke für Deine Funktion, aber mit änlichen Konstrukten arbeite ich dort gerade...

Mein Problem entsteht irgendwie bei Compilierung...

Danke

Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#7
  Alt 26. Jun 2002, 00:06
Hallo Luckie,

Text kopiere ich ganz einfach (von Hand) in TMemo..., danach wird compiliert...

Danke

Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#8
  Alt 26. Jun 2002, 00:08
Hallo PaulJr,

... hast ja recht - brilliant war meine Idee keineswegs.
Du gibst eine Anwendung weiter ohne sie wenigstens einmal gestartet zu haben? Du wirst Deine Gründe haben - aber damit hatte ich nicht gerechnet

Du schreibst also zur Designzeit etwas in die Memos und zur Laufzeit ist es dann nicht mehr da. Kannst Du vielleicht mit Ressourcen arbeiten? Die werden ja recht zuverlässig eingebunden...


Grüße,
Daniel
Daniel R. Wolf
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9
  Alt 26. Jun 2002, 00:11
Wenn er es per Hand in den StringListen-Editor einträgt, ist es ja auch nichts anderes als eine Resource.
Aber gibt es denn was auffälliges wenn du mit F7 durchgehst? Ist der Text eventuell zu groß? Was für ein OS?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#10
  Alt 26. Jun 2002, 00:24
Hallo Luckie,

Text ist gewiß nicht zu groß (es sind nur bis jetzt 3 kleine Momos)

Hallo Daniel,

das mit Resourcen einbinden wäre vielleicht die Lösung... nun mit Resourcen Einbindung habe ich noch nicht gearbeitet...darum weiß ich überhaupt nicht wie ich das machen sollte und was ich dazu brauchen würde... (wäre vielleicht eine interessante Idee für ein sehr kleines Tutorial:

Resurce erstellen und Einbidnen...

Vielleicht hat jemand etwas Zeit um so was zu restellen ...

Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 16:37 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