Autor Beitrag
ForenHeini
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28

Win XP
Delphi 7
BeitragVerfasst: So 26.11.06 16:21 
Hi 8)

Hab mein StringGrid mit abwechselnden Zeilenfarben gelb/grün ausgestattet.
Nun sollen die ganzen Sachen mit TextOut auch wieder angezeigt werden.
Komme aber damit nicht klar.

Wenn ich das Programm starte steht da unten mehrmals
"illegal character in input file" :( :(

Was mache ich falsch :?:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
procedure TForm1.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);

var
  Wert : Integer;

begin
  if (ARow>0and (ACol>0then
    begin
      Wert:=ARow mod 2;
      if (Wert=0)
        then
          begin
            StringGrid2.Canvas.Brush.Color := clMoneyGreen;
            StringGrid2.Canvas.FillRect(Rect);
          end
            else
              begin
                StringGrid2.Canvas.Brush.Color :=clInfoBk;
                StringGrid2.Canvas.FillRect(Rect);
              end;
      end;
        Stringgrid2.Canvas.TextOut(StringGrid2.Canvas,   Rect.Right - StringGrid2.Canvas.TextWidth(StringGrid2.Cells[ACol, ARow]) - 2,
        Rect.Top + 2, StringGrid2.Cells[ACol, ARow]);



end;


Zuletzt bearbeitet von ForenHeini am Fr 01.12.06 17:20, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 26.11.06 16:34 
Das hat nix mit deinem Quelltext als solchem zu tun...
Du musst da irgendwo ein ungültiges Zeichen, das Delphi in einem Quelltext nicht versteht, drin haben...
So ein Problem hatte ich auch mal, deshalb kenne ich das Problem, ich hatte da die Datei in einem anderen Programm geöffnet.
Ob das Zeichen hier auch in deinem Post noch drin steckt, ist eher fraglich. Vor allem: Wo genau kommt die Meldung?
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: So 26.11.06 16:36 
Verstehe den Source nicht recht. Bei mir geht das so :

ausblenden Delphi-Quelltext
1:
2:
with StringGrid do
  canvas.TextOut(rect.Left,Rect.bottom-canvas.Textheight('X')-1,' Text ');


Und die Delphi-Hilfe macht so was (auch nach setzen der Farben) :

ausblenden Delphi-Quelltext
1:
TextOut(Rect.Left + Font.Size, Rect.Top + 2'Owner Drawn text');					

_________________
Gruß
Hansa
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 26.11.06 16:43 
Wollte ich auch gerade schreiben, als mir per Mail deine Antwort angekündigt wurde... ;-)

@ForenHeini:
Zur Erklärung: Du schreibst in Zeile 23 "Stringgrid2.Canvas.TextOut(StringGrid2.Canvas", aber der erste Paraeter ist (neben der Tatsache, dass er eben auch wirklich nicht vorhanden ist) auch rein logisch nicht sinnvoll. Du sagst, dass etwas auf Stringgrid2.Canvas gezeichnet werden soll. Aber wenn du das sowieso dem Canvas sagst, warum solltest du dem Canvas nochmal sich selbst übergeben? Der Canvas weiß ja, dass sich der Befehl auf die Zeichenfläche, die das Objekt selbst repräsetiert, bezieht...

Das hat aber nichts mit der von dir geposteten Fehlermeldung zu tun, das ist nur ein weiterer Fehler...
Bei mir kommt die Fehlermeldung auch mit deinem Code nicht, das heißt, es reicht eventuell, wenn du einfach den geposteten Code wieder zurück in dein Programm kopierst und dabei den jetzt vorhandenen überschreibst...
ForenHeini Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28

Win XP
Delphi 7
BeitragVerfasst: Fr 01.12.06 17:18 
Also danke erst mal für die Beiträge 8)
Hansa´s Beitrag hat mir die Augen geöffnet :shock: :P
Jetzt geht es mit dem Text endlich.

ABER leider stellte sich da noch ein weiteres Problem ein.
(poste das einfach mal hier rein - wollte nicht noch einen Thread dazu öffen)

Im Verlauf des Programms und beim Starten wird das StringGrid-innere :roll: in Teilen
unsichtbar als wenn da sich was unsichtbares drüberschiebt.
Wenn ich ein anderes Programm über mein Programm schiebe und mein
Programm dann wieder in den Vordergrund hole wird alles normal angezeigt.

Muß ich da noch eine RePaint-Methode aufrufen oder so was?
Woran liegt das?
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Fr 01.12.06 19:38 
Hallo,

hast Du irgendwelche Komponenten in Deiner Anwendung die Du bei Bedarf in deinem StringGrid einblendest?

Ohne weitere Informationen/Code was/wie im Bereich des StringGrids veranstaltet,
bzw. wie in OnDrawcell gezeichnet wird,
kann man wenig dazu sagen.

Um das Problem mit Repaint lösen zu könnnen musst Du wissen wann, bzw. wo der Fehler auftritt.

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
ForenHeini Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28

Win XP
Delphi 7
BeitragVerfasst: Di 05.12.06 12:22 
Hat sich erledigt 8)

Hab an der richtigen Stelle ein Repaint gesetzt und jetzt funzt es :wink: