Discussion:
Text verschwindet aus DBMemo
(zu alt für eine Antwort)
Manfred Polak
2021-10-17 16:25:46 UTC
Permalink
Moin! Noch jemand hier?

Ich habe da ein VCL-Programm (Delphi 11 auf Win 10), wo ein DBMemo per
FireDAC auf MySQL zugreift und ein Feld aus einer Tabelle anzeigt. Das
funktioniert, wie es soll. Es gibt aber ein seltsames Problem. Sobald
ich in das DBMemo klicke, verschwindet der Inhalt komplett und taucht
auch nicht wieder auf, bevor die dahinterstehende SQL-Query erneut
ausgeführt wird. Ich habe aber kein OnClick, OnMouseDown oder sonst
irgendein Event dafür definiert. Außerdem ist das DBMemo auf ReadOnly
gesetzt. Was passiert hier, und wie kann ich es verhindern?

Falls das beim Original-DBMemo so sein soll (hoffentlich nicht), weiß
jemand, ob sich das von JVCL genauso verhält?


Manfred
Achim Kalwa
2021-10-18 19:14:32 UTC
Permalink
Post by Manfred Polak
Moin! Noch jemand hier?
Ich schaue immer mal wieder rein.
Post by Manfred Polak
Ich habe da ein VCL-Programm (Delphi 11 auf Win 10), wo ein DBMemo per
FireDAC auf MySQL zugreift und ein Feld aus einer Tabelle anzeigt. Das
funktioniert, wie es soll. Es gibt aber ein seltsames Problem. Sobald
ich in das DBMemo klicke, verschwindet der Inhalt komplett und taucht
auch nicht wieder auf, bevor die dahinterstehende SQL-Query erneut
ausgeführt wird. Ich habe aber kein OnClick, OnMouseDown oder sonst
irgendein Event dafür definiert. Außerdem ist das DBMemo auf ReadOnly
gesetzt. Was passiert hier, und wie kann ich es verhindern?
Kannst das Verhalten mit einer der Delphi-Demo-Anwendungen nachstellen?

C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Object
Pascal\Database\FireDAC\DB


Achim
Manfred Polak
2021-10-18 22:21:15 UTC
Permalink
Post by Achim Kalwa
Kannst das Verhalten mit einer der Delphi-Demo-Anwendungen nachstellen?
C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Object
Pascal\Database\FireDAC\DB
Ich hab mir mal

C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Object
Pascal\Database\FireDAC\Samples\Getting Started\MySQL

angesehen, aber da ist kein DBMemo dabei. Ansonsten scheint es keine
Demo-Anwendung für MySQL zu geben (oder sie ist gut versteckt).

Ein in meiner Anwendung befindliches DBGrid verhält sich übrigens
unauffällig. Das Problem betrifft nur das DBMemo (genauer gesagt
zwei davon, aber die sind in den Einstellungen und im Verhalten
identisch). Kann es sein, dass die DBMemos den Klick irgendwie an
die dahinter liegenden DataSources bzw. FDQuerys durchreichen und
als Reaktion ein leeres Record geliefert bekommen?


Manfred
Achim Kalwa
2021-10-24 17:09:26 UTC
Permalink
Post by Manfred Polak
angesehen, aber da ist kein DBMemo dabei. Ansonsten scheint es keine
Demo-Anwendung für MySQL zu geben (oder sie ist gut versteckt).
Ich habe gerade mal eine kleine Test-Anwendung gebaut; mit MySQL 8.0 für
Windows, FireDAC-Connection auf die Datenbank "World" (Demo-Datenbank
von MySQL), DataSource, DBGrid, DBMemo, DBNavigator.

Damit kann ich das von Dir beschriebene Verhalten NICHT nachstellen.

Probier das mal auf Deinem Rechner

Gruß
Achim
Manfred Polak
2021-10-29 01:00:59 UTC
Permalink
Post by Achim Kalwa
Ich habe gerade mal eine kleine Test-Anwendung gebaut; mit MySQL 8.0 für
Windows, FireDAC-Connection auf die Datenbank "World" (Demo-Datenbank
von MySQL), DataSource, DBGrid, DBMemo, DBNavigator.
Damit kann ich das von Dir beschriebene Verhalten NICHT nachstellen.
Probier das mal auf Deinem Rechner
Danke für deine Geduld. Durch weitgehend planloses Herumprobieren habe
ich das Problem jetzt gelöst. Ich hatte dem DBMemo seinen Wert durch

| DBMemo1.Text := Unit2.DataModule2.DataSource2.DataSet.FieldByName('header').AsString ;

zugewiesen, aber das war offensichtlich Blödsinn, weil da das erwähnte
Verhalten auftritt. Mit FireDAC hatte ich halt bisher keine Erfahrung.
Jetzt habe ich das durch

| DBMemo1.DataField := 'header' ;

ersetzt. Kaum macht man's richtig, schon funktionierts's ... :-Þ


Manfred
Jens Kallup
2021-11-07 17:43:12 UTC
Permalink
Hallo Manfred,

ich schaue auch noch täglich hier drüber.
Verwende aber freie Software.
Das Verhalten kenne ich von 32-Bit Delphi.
Also diese Varianten, die man sich auf magischen
Wegen besorgen kann.
Das Problem liegt aber meist an Windows 10 selbst.
Es wurden seit der Einführung mit Windows 7 einige
Änderungen vorgenommen, and der Win32-API.
Diese Win32 sollte wohl nun win64 heißen, weil aber
auch in der 64-Bit Version noch die 32-Bit Funktionen
verwendet werden, und teilweise mit den Neuen vermischt
werden, ist UB angesagt.
Zum Beispiel wurde auch der IPv4 Support von früheren
Versionen stark eingeschränkt.
Auch das Verhalten von 32-Bit Delphi 7 hat andere Ausmaße !
So werden zum Beispiel TabSheet Reiter nicht mehr so
gezeichnet wie unter XP.
Da muss dann in der Graphics.pas der Delphi 7 Sourcen ein
paar dingends geändert werden.
Aber das ist nur ein Beispiel von vielen.
Und ich weiß gerade auch nicht genau, ob ich einen Neuen,
Leistungsstärkeren Rechner kaufen soll, nur um ein vermorkstes
Windows 10 oder 11 zu Nutzen ... ?
Vielleicht wäre es ja sinnvoll, in Artgleiche BS'e mal rein-
zuschnuppern.
Damit meine ich nicht den Umweg von Windows nach Linux, sondern
den direkten Weg: also Linux.
Weil Microsoft mit seinen Neuen Funktionen recht wirres Zeug
machen will, ist das nur ein guter Tip - muss sich aber keiner
dran Halten !
Heißt dann noch am Ende, tja, der Kallup hat das doch so und so
geschrieben und gesagt ...
Nene den Schuh ziehe ich mir dann nicht an !
Es ist natürlich umbestritten, das Windows evtl. leichter zu
Bedienen ist. Aber das liegt ja auch an jedem selbst.
Ich will jetzt nicht sagen, das es immer einen dritten Weg gibt;
diesen will und kann ich nicht betretten oder verantworten !
Vielleicht aber der zweite Frühling mit FSF-Produkte.
Letzendens fährt man dann auch etwas sicherer, wenn man Original
Käis und Bropukte einsetzt.
Und wenn ich hier noch einen draufsetzen soll:
schaut Euch doch mal GNU Linux (Debian) an.
Dies ist das älteste Linux, das sehr stabiler als alle anderen
darumwerkelt, auf Euren Rechnern.
Was Ihr dann macht (Grafik, Spiele, Server), das dann ja ein
anderes Thema.
Ok, Ihr merkt schon - ich labbere schon wieder zu viel, und mekkere
an Microsoft.
Aber die haben halt mit kostenlosen Downloads und Käis, wohl sich
mal wieder selbst ins Knie geschossen, um nur Kunden zu fangen.
Viel Interesse haben die sicherlich an Ihren Kunden.
Naja, was soll man sagen: Alle wollen halt von Euch das Beste !
Egal ob Handy, TV, Musik, Praline, St. Paulie, Apple, Mic....
jojo das kenne ich (Lösung: Money - also solange der Rubel rollt
ist alles OK. wehe dem der nicht zahle will).
Und noch was: Gutes Essen gibts nur für Gutes Geld !
und für Gute Arbeit gibts gutes Geld, ...
prabbel prabbel ...

Jens, aka paule32 - der mit den roten Auto o_O

Loading...