LiquidCrystal.h-s library is playing games with me

The LiquidCrystal library is playing games with me, the LiquidCrystal-s library includes command (.setCursor) keep in mind this is my DisplayFunc.cpp file, so its not my main file. So if I for example:

DisplayFunclcd.setCursor(0, 0);
DisplayFunclcd.print("Door Opened!");

Do this then its all good. But if I try to set the cursor into row 1(second row) then it just stays in the row 0(first row)
Ive already tried to call the setCursor function in the main file and then print text in the cpp file but no luck.

Its supposed to be:
row 0 - Door Opened!
row 1 - Closing in: 8

But its like this:
row 0 - Closing in: 8
row 1 -

DisplayFunc.cpp


#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal.h>
#include "DisplayFunc.h"
LiquidCrystal DisplayFunclcd( 8,  9,  4,  5,  6,  7);

DisplayFunc::DisplayFunc(){
}

void DisplayFunc::DisplayOpenDoor(int &timing) {
  //int timing = 8;
  Serial.println(F("Displaying OpenDoor"));
  DisplayFunclcd.clear();
  DisplayFunclcd.setCursor(0, 0);
  DisplayFunclcd.print("Door Opened!");
  while (!timing == 0) {
    Serial.print(timing);
    DisplayFunclcd.setCursor(0, 1);
    DisplayFunclcd.print("Closing in: ");
    DisplayFunclcd.setCursor(12, 1);
    DisplayFunclcd.print(timing);
    delay(1000);
    timing -= 1;
  }
  DisplayFunclcd.clear();
}

This is not all the code.
We need to see the rest of the code.

DisplayFunc.h

#ifndef DisplayFunc_h
#define DisplayFunc_h

#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal.h>

class DisplayFunc
{
  public:
    DisplayFunc();
    void DisplayOpenDoor(int &timing);
    void ClearScreen();
    void UpTime(int sec_pos,int min_pos,int h_pos, int day_pos, int startline);
    //unsigned char serNum[5];  
    //unsigned char AserNum[5]; 
  
  private:
    //int _chipSelectPin;
    //int _NRSTPD;
  
};

#endif

And the code that uses the function:

DoorFunc.cpp

#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal.h>
#include "DoorFunc.h"
#include "DisplayFunc.h"
//LiquidCrystal DoorFunclcd( 8,  9,  4,  5,  6,  7);
DisplayFunc DoorFuncDisplayFunction;
DoorFunc::DoorFunc(){
}

void DoorFunc::OpenDoor(int &value) {
  int timing = 8;
    Serial.println(F("Success :-)"));
    digitalWrite(3, HIGH);
    DoorFuncDisplayFunction.DisplayOpenDoor(timing);
    digitalWrite(3, LOW);
    value = 0;
}

That still isn't a full sketch that can demonstrate the problem.
For example, where is the setup() and main() code?
There must be come code that calls begin() to initialize the library and the LCD.
We need to see all the code that is being used.

Oh my bad, thanks for mentioning that it needs .begin() function also in the file. Now its all working. Ive been trying to figure that out on my own for 3 days now lol.

ville3:
Oh my bad, thanks for mentioning that it needs .begin() function also in the file. Now its all working. Ive been trying to figure that out on my own for 3 days now lol.

I take nothing for granted when writing a program. Start small, load a library, create an instance of the object if needed and test it before adding more code and losing sight of the simple things