Memo Lade Anzeige
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Memo Lade Anzeige
Hallo,
ich lade sehr große Texst-Zeichen von einem String in ein Memo.txt
(und das dauert).
Nun kann das je nach Datenmenge bis zu 30 Sekunden oder länger dauern.
Wie kann man das (eventuell mit einer ProgressBar oder anders?) anzeigen lassen, dass der Rechner während er das Memo füllt beschäftigt ist?
Freue mich auf Antworten.
ich lade sehr große Texst-Zeichen von einem String in ein Memo.txt
(und das dauert).
Nun kann das je nach Datenmenge bis zu 30 Sekunden oder länger dauern.
Wie kann man das (eventuell mit einer ProgressBar oder anders?) anzeigen lassen, dass der Rechner während er das Memo füllt beschäftigt ist?
Freue mich auf Antworten.
- af0815
- Lazarusforum e. V.
- Beiträge: 6848
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Memo Lade Anzeige
Wie füllst du die Daten ein ? Zeile für Zeile ? Etwas Code von deiner Seite, entlastet die Kristallkugel. Weil ein Memo kann vernünftige Datenmengen sehr schnell aufnehmen, wenn es richtig gefüttert wird.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Memo Lade Anzeige
OK,
eine Zeile Code base64 sehr lang je nach Bildgrösse.
Memo.text := String.
eine Zeile Code base64 sehr lang je nach Bildgrösse.
Memo.text := String.
- af0815
- Lazarusforum e. V.
- Beiträge: 6848
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Memo Lade Anzeige
Im Prinzip gar nicht weil die Operation nicht in Teiloprationen vorliegt, daher arbeitet die einmal blocking.hbr hat geschrieben: Mo 22. Jul 2024, 08:05 eine Zeile Code base64 sehr lang je nach Bildgrösse.
Memo.text := String.
Ev.
Code: Alles auswählen
Cursor := crHourGlass;
try
Memo.Lines.BeginUpdate;
Memo.Lines.Text:= string;
Memo.Lines.EndUpdate;
finally
Cursor := crDefault;
end;
Über den Sinn diskutiere ich mal sicherlich nicht, weil du wirst deine Gründe dafür haben, die Daten in ein Memo zu quetschen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Memo Lade Anzeige
Super, vielen Dank.
Im Zusammenhang mit dem Memo habe ich ein weiteres Problem wenn das Memo gefüllt wird.
Es werden über eine Procedure mehrere Buttons (5 Stück) vor und nach dem Füllen diese auf disabled oder enabled geschaltet.
Mindestens zwei der Button werden nicht geschaltet.
Wahrscheinlich weil das Füllen viel Rechenleistung benötigt.
Gibt es dafür eine Lösung?
Im Zusammenhang mit dem Memo habe ich ein weiteres Problem wenn das Memo gefüllt wird.
Es werden über eine Procedure mehrere Buttons (5 Stück) vor und nach dem Füllen diese auf disabled oder enabled geschaltet.
Mindestens zwei der Button werden nicht geschaltet.
Wahrscheinlich weil das Füllen viel Rechenleistung benötigt.
Gibt es dafür eine Lösung?
Zuletzt geändert von hbr am Mo 22. Jul 2024, 09:44, insgesamt 1-mal geändert.
Re: Memo Lade Anzeige
Mich interessiert der Hintergrund eigentlich fast immer.af0815 hat geschrieben: Mo 22. Jul 2024, 09:24 Über den Sinn diskutiere ich mal sicherlich nicht, weil du wirst deine Gründe dafür haben, die Daten in ein Memo zu quetschen.
Ein TMemo ist ein Texteditor. Was man an Base64 codierten Daten händisch editieren will, kann ich nicht nachvollziehen.
Ich verstehe nicht einmal, warum man sich diese Codemengen anschauen möchte.
Was "sieht" man denn da?
Vllt. kann hbr das mal erklären.
EDIT: Wenn es um HTML geht, würde ich sowieso ein Synedit (Codeeditor) nehmen.
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Memo Lade Anzeige
Ja jetzt wo Du fragst,Mich interessiert der Hintergrund eigentlich fast immer.......
ich mache mir meinen Bildwandler für bas64 Code.
Die Idee war am Anfang und am Ende den Type des Bildes nicht nur Automatisch der Typen z.B. „data:image/jpeg;base64, oder url('data:image/jpeg;base64,..... ') „ einzutragen, sondern auch Händisch.
Du hast recht, hierfür reicht ein TEdit für die Eingabe des jeweiligen Typs.
Der gesamte Inhalt ist unrelevant.
Danke für die Inspiration.
Re: Memo Lade Anzeige
Händisch heißt, du willst den ewig langen String in ein TEdit laden und die Typ-Bezeichnungen von der Hand anfügen? Warum das denn? Du riskierst, dass der User Sch... baut, oder Lazarus wegen des langen Strings im TEdit zickt. Mache dir eine RadioGroup oder eine Combobox mit den in Frage kommenden Strings und einen Butten "Diesen String voranstellen", Dann erzeugst du einen ersten Stream, in den du den ausgewählten Typ-String schreibst, sowie einen zweiten, in den du den Base64-String einliest und den du dann in den ersten String kopierst. Es würde mich wundern, wenn das, auch bei einer großen Datei länger als eine Sekunde dauern würde.hbr hat geschrieben: Mo 22. Jul 2024, 10:08 Die Idee war am Anfang und am Ende den Type des Bildes nicht nur Automatisch der Typen z.B. „data:image/jpeg;base64, oder url('data:image/jpeg;base64,..... ') „ einzutragen, sondern auch Händisch.
Re: Memo Lade Anzeige
Genau deshalb interessiert mich immer der Hintergrund/Kontext der Frage.
Manchmal ist der Plan schon fragwürdig und das führt dann zu Verrenkungen beim programmieren, die eigentlich nicht sein müssten.
Dann palavert man seitenweise über irgendwelche Details ohne den Murks in der Grundidee zu erkennen.
Manchmal ist der Plan schon fragwürdig und das führt dann zu Verrenkungen beim programmieren, die eigentlich nicht sein müssten.
Dann palavert man seitenweise über irgendwelche Details ohne den Murks in der Grundidee zu erkennen.
-
- Beiträge: 6955
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Memo Lade Anzeige
Ist es nach Möglichkeit nicht besser, wen man eine StringList über Add Zeilenweise befüllt, als ein ganzer Block über StringList Text ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Memo Lade Anzeige
1. Warum? Bei welcher Ausgangslage?Mathias hat geschrieben: Di 23. Jul 2024, 08:42 Ist es nach Möglichkeit nicht besser, wen man eine StringList über Add Zeilenweise befüllt, als ein ganzer Block über StringList Text ?
2. Was hat ein TMemo mit einer TStringList zu tun?
3. Wie viele Zeilen hat ein Base64 Code?
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Memo Lade Anzeige
Ich habe es nun so gelöst, das man über zwei TEdit im Manuellen Modus den Anfang und das Ende eingeben kann "weil das Ende bei url(" die Zeichen ")')" enthält.
Aber für das anschauen eines base64 Files ohne jegliche Kopfdaten weis ich natürlich erst mal nicht, welches Bildformat in der Base64 Datei steckt.
Aber das TImage weis es!
Meine Frage also, wie frage ich das TImage ab, welcher Typ Bitmap steckt im TImage, da man es ja wissen muss, wenn man dieses mit Kopfdaten abspeichern will.
Zur Zeit ermittele ich diese aus der Bezeichnung der Kopfzeile.
Aber das geht ja nur, wenn es sich um ein base64 fiele für html handelt.
Anders wäre besser.
Aber für das anschauen eines base64 Files ohne jegliche Kopfdaten weis ich natürlich erst mal nicht, welches Bildformat in der Base64 Datei steckt.
Aber das TImage weis es!
Meine Frage also, wie frage ich das TImage ab, welcher Typ Bitmap steckt im TImage, da man es ja wissen muss, wenn man dieses mit Kopfdaten abspeichern will.
Zur Zeit ermittele ich diese aus der Bezeichnung der Kopfzeile.
Aber das geht ja nur, wenn es sich um ein base64 fiele für html handelt.
Anders wäre besser.
Re: Memo Lade Anzeige
hbr hat geschrieben: Di 23. Jul 2024, 10:10 Meine Frage also, wie frage ich das TImage ab, welcher Typ Bitmap steckt im TImage, da man es ja wissen muss, wenn man dieses mit Kopfdaten abspeichern will.
Code: Alles auswählen
Image1.Picture.Graphic.MimeType;
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Memo Lade Anzeige
Code: Alles auswählen
Image1.Picture.Graphic.MimeType;
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Memo Lade Anzeige
Also ich weis nicht, warum ich mir so viel Arbeit mit der Filterung der Verschiedenen Image Typen und so weiter, mache, wenn es überhaupt gar nicht nötig ist für das anzeigen einer Datei in Browser'n.
Ganz egal was es für Formate sind,
data:image/svg+xml;base64, funktioniert in allen gängigen Browser , egal ob url oder Imagetype
Es funktioniert auch immer data:image/;base64, .
Wozu gibt es denn so viele Deklarationen?
Nur zur Unterscheidung? Seltsam.
Ganz egal was es für Formate sind,
data:image/svg+xml;base64, funktioniert in allen gängigen Browser , egal ob url oder Imagetype
Es funktioniert auch immer data:image/;base64, .
Wozu gibt es denn so viele Deklarationen?
Nur zur Unterscheidung? Seltsam.