/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Udprintning
Fra : Henning Madsen


Dato : 20-06-01 22:47

Er det mugligt at få lidt hjælp til følgende ??

Følgende program skulle flytte enkelt cifrede datoer en lille smule til
højre.
Ved 2 cifrede datoer er programmet korekt også ved datoen 1 men ved
datoerne 2 til og med sker der entet (ingen flytning)
Der er garanteret noget jeg gør galt, men hvad.

// Datoerne udprintes;
X := 1;
X1 := 1416;
For XX := 1 To 12 Do Begin
For Y := 1 To Linier Do Begin
Z := IntToStr(X) + ',' + IntToStr(Y); // Orettelse af
søgekreterierne i INI filen.

Z1 := Aar.ReadString((AarLabel.Caption),(Z),''); // Datoen
tildeles Z1
If Z1 < IntToStr(10) Then Begin // Hvis datoen er mellem 1 og 9
X1 := X1 + 25; // Flytter udprintningen ca. en talbredde
længere til højre.
Printer.Canvas.TextOut(X1,1025 + (100 *
Y),Aar.ReadString((AarLabel.Caption),(Z),''));
X1 := X1 - 25; // Flytter udprintningen tilbage til
normalt.
End
Else // Hvis datoen er større end 9
Begin
Printer.Canvas.TextOut(X1,1025 + (100 *
Y),Aar.ReadString((AarLabel.Caption),(Z),''));
End;
Som det jo nok fremkommer af programmet må svaret gerne være på nybegynder
stadiet.
--
Med venlig hilsen
Henning Madsen
mailto:henning.k.madsen@teliamail.dk



 
 
Ken Madsen (21-06-2001)
Kommentar
Fra : Ken Madsen


Dato : 21-06-01 10:00

Hej Henning,

>> If Z1 < IntToStr(10) Then Begin // Hvis datoen er mellem 1 og 9

Det er kun '1' der er mindre end '10', '2' er faktisk større, måske skal du
i stedet

------ if Length(z1) < 2 then begin -------

Eller måske, hvis du kan riscikere at der står '02' prøve med

------- if StrToInt(Z1) < 10 then begin ---------

Og husk så at putte det i en "try except end" i fald at der ikke står et
"tal" i Z1 så du kan tage højde for det.


Mvh. Ken Madsen


"Henning Madsen" <henning.K.madsen@teliamail.dk> wrote in message
news:3b311a5f$0$4656$d40e179e@nntp01.dk.telia.net...
> Er det mugligt at få lidt hjælp til følgende ??
>
> Følgende program skulle flytte enkelt cifrede datoer en lille smule til
> højre.
> Ved 2 cifrede datoer er programmet korekt også ved datoen 1 men ved
> datoerne 2 til og med sker der entet (ingen flytning)
> Der er garanteret noget jeg gør galt, men hvad.
>
> // Datoerne udprintes;
> X := 1;
> X1 := 1416;
> For XX := 1 To 12 Do Begin
> For Y := 1 To Linier Do Begin
> Z := IntToStr(X) + ',' + IntToStr(Y); // Orettelse af
> søgekreterierne i INI filen.
>
> Z1 := Aar.ReadString((AarLabel.Caption),(Z),''); // Datoen
> tildeles Z1
> If Z1 < IntToStr(10) Then Begin // Hvis datoen er mellem 1 og
9
> X1 := X1 + 25; // Flytter udprintningen ca. en talbredde
> længere til højre.
> Printer.Canvas.TextOut(X1,1025 + (100 *
> Y),Aar.ReadString((AarLabel.Caption),(Z),''));
> X1 := X1 - 25; // Flytter udprintningen tilbage til
> normalt.
> End
> Else // Hvis datoen er større end 9
> Begin
> Printer.Canvas.TextOut(X1,1025 + (100 *
> Y),Aar.ReadString((AarLabel.Caption),(Z),''));
> End;
> Som det jo nok fremkommer af programmet må svaret gerne være på nybegynder
> stadiet.
> --
> Med venlig hilsen
> Henning Madsen
> mailto:henning.k.madsen@teliamail.dk
>
>



Claus Christiansen (21-06-2001)
Kommentar
Fra : Claus Christiansen


Dato : 21-06-01 10:50

"Ken Madsen" <kenhvm@hotmail.com> wrote in message
news:9gsd28$2cfe$1@news.cybercity.dk...
> Hej Henning,
>
> >> If Z1 < IntToStr(10) Then Begin // Hvis datoen er mellem 1 og 9
>
> Det er kun '1' der er mindre end '10', '2' er faktisk større, måske skal
du
> i stedet
>
> ------ if Length(z1) < 2 then begin -------
>
> Eller måske, hvis du kan riscikere at der står '02' prøve med
>
> ------- if StrToInt(Z1) < 10 then begin ---------
>
> Og husk så at putte det i en "try except end" i fald at der ikke står et
> "tal" i Z1 så du kan tage højde for det.

Hvor (1) må være den hurtigste (direkte opslag), men (2) efter min mening
den pæneste (beregning), da den som nævnt netop ikke "går forkert i byen"
hvis Z1 = '01'.

PS: Jeg ved godt dette måske er lidt irrelevant i denne sammenhæng, men det
var bare en generel kommentar.

/Claus
--
Claus Christiansen, TeamD member <cch@unipeople.dk>

Pythia: http://www.pythia.dk/
Personal: http://www.bigfoot.com/~kruc
============================================-------------------------
"Computers are useless. They can only give you answers."
-- Pablo Picasso (1881-1973)



P.L. (22-07-2001)
Kommentar
Fra : P.L.


Dato : 22-07-01 00:47

Hej Henning

Har du ikke fundet løsningen, så se her.

Du har skrevet:
"Printer.Canvas.TextOut(X1,1025 + (100 *Y),Aar.ReadString((AarLabel.Caption),(Z),'')); "

Skriv istedet
"Printer.Canvas.TextOut(X1-Printer.Canvas.TextWidth(Aar.ReadString((AarLabel.Caption),(Z),'')),1025
+ (100 *Y),Aar.ReadString((AarLabel.Caption),(Z),'')); ", så vil teksten altid være højrestillet.

"Printer.Canvas.TextWidth(Aar.ReadString((AarLabel.Caption),(Z),'')) " læser bredden på af
"Aar.ReadString((AarLabel.Caption),(Z),'')", som så trækkes fra X1 dvs., jo breddere denne tekst er,
jo før starter printeren med at skrive fra venstre.

--
P.L.





"Henning Madsen" <henning.K.madsen@teliamail.dk> skrev i en meddelelse
news:3b311a5f$0$4656$d40e179e@nntp01.dk.telia.net...
> Er det mugligt at få lidt hjælp til følgende ??
>
> Følgende program skulle flytte enkelt cifrede datoer en lille smule til
> højre.
> Ved 2 cifrede datoer er programmet korekt også ved datoen 1 men ved
> datoerne 2 til og med sker der entet (ingen flytning)
> Der er garanteret noget jeg gør galt, men hvad.
>
> // Datoerne udprintes;
> X := 1;
> X1 := 1416;
> For XX := 1 To 12 Do Begin
> For Y := 1 To Linier Do Begin
> Z := IntToStr(X) + ',' + IntToStr(Y); // Orettelse af
> søgekreterierne i INI filen.
>
> Z1 := Aar.ReadString((AarLabel.Caption),(Z),''); // Datoen
> tildeles Z1
> If Z1 < IntToStr(10) Then Begin // Hvis datoen er mellem 1 og 9
> X1 := X1 + 25; // Flytter udprintningen ca. en talbredde
> længere til højre.
> Printer.Canvas.TextOut(X1,1025 + (100 *
> Y),Aar.ReadString((AarLabel.Caption),(Z),''));
> X1 := X1 - 25; // Flytter udprintningen tilbage til
> normalt.
> End
> Else // Hvis datoen er større end 9
> Begin
> Printer.Canvas.TextOut(X1,1025 + (100 *
> Y),Aar.ReadString((AarLabel.Caption),(Z),''));
> End;
> Som det jo nok fremkommer af programmet må svaret gerne være på nybegynder
> stadiet.
> --
> Med venlig hilsen
> Henning Madsen
> mailto:henning.k.madsen@teliamail.dk
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste